Exemplo n.º 1
0
        /// <summary>
        /// 用户登陆验证
        /// </summary>
        /// <param name="account"></param>
        /// <param name="password"></param>
        /// <param name="platform">0:web,1:app</param>
        /// <returns></returns>
        public (bool Status, string Message, Entities.Sys_User User, Entities.Sys_UserJwt Jwt) ValidateUser(string account, string password, int platform = 0)
        {
            var user = _dbContext.Sys_User.Where(o => o.Account == account && !o.IsDeleted).FirstOrDefault();

            if (user == null)
            {
                return(false, "账号或密码错误", null, null);
            }

            var r_item = _dbContext.Sys_UserR.FirstOrDefault(o => o.UserId == user.Id && o.Platform == platform);

            if (r_item == null)
            {
                return(false, "非法操作,因子不存在,请重试", null, null);
            }

            var pwd = EncryptorHelper.GetMD5((user.Password ?? "") + r_item.R);
            var log = new Sys_UserLogin()
            {
                Id        = CombGuid.NewGuid(),
                UserId    = user.Id,
                IpAddress = _webHelper.GetIPAddress(),
                LoginTime = DateTime.Now,
                Status    = false
            };

            Entities.Sys_UserJwt jwt = null;
            string msg = "账号或密码错误";

            if (password.Equals(pwd, StringComparison.InvariantCultureIgnoreCase))
            {
                log.Status         = true;
                msg                = "登陆成功";
                user.LastIpAddress = log.IpAddress;
                _dbContext.Sys_UserR.Remove(r_item);
                jwt = new Sys_UserJwt()
                {
                    Jti          = EncryptorHelper.GetMD5(Guid.NewGuid().ToString()),
                    Expiration   = DateTime.Now.AddDays(30),
                    RefreshToken = EncryptorHelper.GetMD5(Guid.NewGuid().ToString()),
                    Platform     = platform,
                    UserId       = user.Id
                };
                _dbContext.Sys_UserJwt.Add(jwt);
            }
            _dbContext.Sys_UserLogin.Add(log);
            _dbContext.SaveChanges();
            return(log.Status, msg, user, jwt);
        }
Exemplo n.º 2
0
 /// <summary>
 /// 初始化
 /// </summary>
 public void Initialize()
 {
     using (var connection = _dbContext.Database.GetDbConnection())
     {
         connection.Open();
         var table = connection.GetSchema("Tables");
         connection.Close();
         List <string> tables = new List <string>();
         foreach (DataRow row in table.Rows)
         {
             tables.Add(row["TABLE_NAME"].ToString());
         }
         var ac_comments = _dbContext.Sys_ActivityLogComment.ToList();
         ac_comments.ForEach(del =>
         {
             if (!tables.Any(o => o == del.EntityName))
             {
                 _dbContext.Sys_ActivityLogComment.Remove(del);
             }
         });
         tables.ForEach(name =>
         {
             if (!ac_comments.Any(o => o.EntityName == name))
             {
                 _dbContext.Sys_ActivityLogComment.Add(new Sys_ActivityLogComment()
                 {
                     EntityName = name
                 });
             }
         });
         _dbContext.SaveChanges();
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// 开启任务
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public (bool Status, string Message) Start(Guid id)
        {
            var item = _dbContext.QuarztSchedule.Find(id);

            if (item == null)
            {
                return(Fail("任务不存在"));
            }

            var res = _jobCenter.AddScheduleJobAsync(_mapper.Map <QuarztScheduleMapping>(item)).Result;

            if (res.Status)
            {
                item.RunStatus = (int)JobStatus.执行任务中;
                _dbContext.SaveChanges();
            }
            return(res);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="bucket"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public (bool Status, string Message) UpdateBucket(BucketMapping bucket, Guid userId)
        {
            var item = _dbContext.Bucket.Find(bucket.Id);

            if (item == null)
            {
                return(Fail("数据不存在"));
            }
            string oldLog = JsonConvert.SerializeObject(item);

            item.Description = bucket.Description;
            item.IsCompress  = bucket.IsCompress;
            string newLog = JsonConvert.SerializeObject(item);

            _dbContext.SaveChanges();
            _activityLogService.UpdatedEntity <Entities.Bucket>(item.Id, oldLog, newLog, userId);
            _cacheManager.Remove(MODEL_KEY);
            return(Success("修改成功"));
        }
Exemplo n.º 5
0
 /// <summary>
 /// 新增
 /// </summary>
 /// <param name="bucketImage"></param>
 public void AddImage(Entities.BucketImage bucketImage)
 {
     lock (lockObj)
     {
         if (!_dbContext.BucketImage.Any(o => o.SHA1 == bucketImage.SHA1))
         {
             _dbContext.BucketImage.Add(bucketImage);
             _dbContext.SaveChanges();
         }
     }
 }
Exemplo n.º 6
0
        /// <summary>
        /// 强制用户下线所有平台
        /// </summary>
        /// <param name="userId"></param>
        public void CompelOut(Guid userId)
        {
            var jwtList = _dbContext.Sys_UserJwt.Where(o => o.UserId == userId).ToList();

            _dbContext.Sys_UserJwt.RemoveRange(jwtList);
            _dbContext.SaveChanges();
            jwtList.ForEach(item =>
            {
                RemoveCahce(item.Jti);
            });
        }
Exemplo n.º 7
0
        /// <summary>
        /// 保存基数设置的值
        /// </summary>
        /// <param name="name"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public (bool Status, string Message) SaveSetting(string name, string value)
        {
            var item = _dbContext.Sys_Setting.FirstOrDefault(o => o.Name == name);

            if (item == null)
            {
                _dbContext.Sys_Setting.Add(new Entities.Sys_Setting()
                {
                    Id    = Guid.NewGuid(),
                    Name  = name,
                    Value = value
                });
            }
            else
            {
                item.Value = value;
            }
            _dbContext.SaveChanges();
            _cacheManager.Remove(MODEL_KEY);
            return(Success("保存成功"));
        }
Exemplo n.º 8
0
 /// <summary>
 /// 配置用户角色
 /// </summary>
 /// <param name="userRoles"></param>
 public void SetUserRoles(Guid userId, List <Guid> roleIds, Guid modifier)
 {
     try
     {
         using (var trans = _dbContext.Database.BeginTransaction())
         {
             _dbContext.Database.ExecuteSqlRaw($"DELETE FROM [Sys_UserRole] WHERE [UserId]='{userId}'");
             if (roleIds != null && roleIds.Any())
             {
                 roleIds.ForEach(roleId =>
                 {
                     _dbContext.Sys_UserRole.Add(new Sys_UserRole()
                     {
                         Id     = CombGuid.NewGuid(),
                         RoleId = roleId,
                         UserId = userId
                     });
                 });
             }
             _dbContext.SaveChanges();
             trans.Commit();
             _cacheManager.Remove(USER_ROLES_ALL);
         }
     }
     catch (Exception ex)
     {
         _logger.LogError(ex, ex.Message);
     }
 }
Exemplo n.º 9
0
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="sysCategories"></param>
 public void Init(List <Entities.Sys_Category> sysCategories)
 {
     using (var tarns = _dbContext.Database.BeginTransaction())
     {
         var oldList = _dbContext.Sys_Category.ToList();
         oldList.ForEach(del =>
         {
             var item = sysCategories.FirstOrDefault(o => o.UID == del.UID);
             if (item == null)
             {
                 _dbContext.Database.ExecuteSqlRaw($"DELETE FROM [Sys_Permission] WHERE [CategoryId]='{del.Id}'");
                 _dbContext.Sys_Category.Remove(del);
             }
         });
         sysCategories.ForEach(entity =>
         {
             var item = oldList.FirstOrDefault(o => o.UID == entity.UID);
             if (item == null)
             {
                 _dbContext.Sys_Category.Add(entity);
             }
             else
             {
                 item.RouteTemplate = entity.RouteTemplate ?? "";
                 item.Name          = entity.Name;
                 item.Code          = entity.Code;
                 item.FatherCode    = entity.FatherCode;
                 item.Target        = entity.Target ?? "0";
                 item.Sort          = entity.Sort;
                 item.IsMenu        = entity.IsMenu ?? "0";
                 item.Controller    = entity.Controller ?? "";
                 item.Action        = entity.Action ?? "";
                 item.RouteName     = entity.RouteName ?? "";
                 item.IconClass     = entity.IconClass ?? "";
             }
         });
         _dbContext.SaveChanges();
         tarns.Commit();
     }
 }
Exemplo n.º 10
0
 /// <summary>
 /// 私有方法
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="logService"></param>
 /// <param name="method"></param>
 /// <param name="entity"></param>
 public void InsertActivityLog <T>(string method, object primaryKey, string oldValue, string newValue, Guid?userId = null)
 {
     try
     {
         var log = new Entities.Sys_ActivityLog()
         {
             Id           = CombGuid.NewGuid(),
             PrimaryKey   = primaryKey.ToString(),
             CreationTime = DateTime.Now,
             Method       = method,
             OldValue     = oldValue,
             NewValue     = newValue,
             EntityName   = typeof(T).Name,
             Creator      = userId
         };
         _dbContext.Sys_ActivityLog.Add(log);
         _dbContext.SaveChanges();
     }
     catch
     {
     }
 }