Пример #1
0
 public IActionResult SQL([FromQuery] SQLModel model)
 {
     return(new Result <string>
     {
         code = ErrorCodeConst.ERROR_200,
         status = ErrorCodeConst.ERROR_200,
         data = Common.AESEncrypt(model.str, model.guid)
     });
 }
Пример #2
0
 /// <summary>
 /// @xis 加密密码 2020-3-25 07:54:39
 /// </summary>
 /// <param name="id"></param>
 /// <param name="pwd"></param>
 /// <param name="salt"></param>
 /// <returns></returns>
 private string EncPassword(int id, string pwd, string salt)
 {
     return(Common.AESEncrypt(Common.MakeMd5(pwd, id.ToString()), Common.MakeMd5(salt + id + salt)));
 }
Пример #3
0
        /// <summary>
        /// @xis 登录 2020-3-25 07:52:00
        /// </summary>
        /// <param name="reqmodel"></param>
        /// <returns></returns>
        public async Task <Result> LoginAsync(reqmodel <LoginModel> reqmodel)
        {
            const string         modelname = "UserServerImpl.LoginAsync";
            Result <LoginResult> result    = new Result <LoginResult> {
                status = ErrorCodeConst.ERROR_403, code = ErrorCodeConst.ERROR_100
            };

            string sql_user_select = g_sqlMaker.Select <t_user>(s => new
            {
                s.id,
                s.user_name,
                s.real_name,
                s.salt,
                s.log_pwd,
                s.position_id
            })
                                     .Where($"user_name", "=", "@user_name")
                                     .And("state", "=", "@state")
                                     .ToSQL();

            t_user user = await g_dbHelper.QueryAsync <t_user>(sql_user_select, new { reqmodel.Data.user_name, state = (int)EnumState.Normal });

            if (user == null)
            {
                g_logServer.Log(modelname, "登录失败", new { msg = $"用户名:{reqmodel.Data.user_name}" }, EnumLogType.Debug);
                result.code = ErrorCodeConst.ERROR_1004;
                return(result);
            }

            string pwd = EncPassword(user.id, reqmodel.Data.password, user.salt);

            if (user.log_pwd != pwd)
            {
                g_logServer.Log(modelname, "登录失败", new { msg = $"用户名:{reqmodel.Data.user_name}" }, EnumLogType.Debug);
                result.code = ErrorCodeConst.ERROR_1004;
                return(result);
            }

            //获取职位信息
            IPositionServer positionServer = new PositionServerImpl(g_dbHelper, g_logServer);
            t_position      position_model = await positionServer.GetPosition(s => new { s.id, s.position_name, s.department_id }, user.position_id);

            if (position_model == null)
            {
                g_logServer.Log(modelname, "登录失败", new { msg = $"用户名:{reqmodel.Data.user_name},获取职位信息失败" }, EnumLogType.Debug);
                result.code = ErrorCodeConst.ERROR_1022;
                return(result);
            }

            //获取部门信息
            IDepartmentServer departmentServer = new DepartmentServerImpl(g_dbHelper, g_logServer);
            t_department      depart_model     = await departmentServer.GetDepartment(s => new { s.id, s.department_name }, position_model.department_id);

            if (depart_model == null)
            {
                g_logServer.Log(modelname, "登录失败", new { msg = $"用户名:{reqmodel.Data.user_name},获取部门信息失败" }, EnumLogType.Debug);
                result.code = ErrorCodeConst.ERROR_1022;
                return(result);
            }

            //token
            string token = Common.AESEncrypt(Common.MakeMd5(Common.MakeGuid()), Common.MakeGuid());

            LoginResult login_info = new LoginResult
            {
                user_id         = user.id,
                user_name       = user.user_name,
                avatar          = user.avatar,
                real_name       = user.real_name,
                department_id   = depart_model.id,
                department_name = depart_model.department_name,
                position_id     = position_model.id,
                position_name   = position_model.position_name,
                token           = token
            };

            bool login_flag = await TokenRenewalAsync(token, login_info);

            if (!login_flag)
            {
                g_logServer.Log(modelname, "登录失败", new { msg = $"用户名:{reqmodel.Data.user_name},存Redis失败" }, EnumLogType.Debug);
                result.code = ErrorCodeConst.ERROR_1022;
                return(result);
            }

            result.data   = login_info;
            result.status = ErrorCodeConst.ERROR_200;
            result.code   = ErrorCodeConst.ERROR_1008;
            return(result);
        }