public async Task <ResponseModel <string> > Login([FromForm] SysLoginEntity entity)
        {
            string tokenString = string.Empty;

            //var userList = await _baseRepository.BaseQueryAsync<HjsfSysUserInfo>(a => a.Id == 3);
            var userList = await base.QueryListAsync <HjsfSysUserInfo>(a => a.Id == 3);

            var user = userList.Data.FirstOrDefault();

            if (user != null)
            {
                var claims = new[]
                {
                    new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                    new Claim(JwtRegisteredClaimNames.Iat, $"{new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()}"),
                    new Claim(JwtRegisteredClaimNames.Nbf, $"{new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()}"),
                    new Claim(JwtRegisteredClaimNames.Exp, $"{new DateTimeOffset(DateTime.Now.AddMinutes(Utility.Constant.AppSetting.Jwt.ExpiresTime)).ToUnixTimeSeconds()}"),
                    new Claim(JwtRegisteredClaimNames.Iss, Utility.Constant.AppSetting.Jwt.JwtIssuer),
                    new Claim(JwtRegisteredClaimNames.Aud, Utility.Constant.AppSetting.Jwt.JwtAudience),
                    new Claim("UserId", user.Id.ToString()),
                    new Claim("UserName", user.UserName),
                    new Claim("OrgId", user.OrgId.ToString()),
                };
                var key   = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Utility.Constant.AppSetting.Jwt.JwtSecurityKey));
                var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
                var token = new JwtSecurityToken(
                    //颁发者
                    issuer: Utility.Constant.AppSetting.Jwt.JwtIssuer,
                    //接收者
                    audience: Utility.Constant.AppSetting.Jwt.JwtAudience,
                    //过期时间
                    expires: DateTime.Now.AddMinutes(Utility.Constant.AppSetting.Jwt.ExpiresTime),
                    //签名证书
                    signingCredentials: creds,
                    //自定义参数
                    claims: claims
                    );
                tokenString = new JwtSecurityTokenHandler().WriteToken(token);
                tokenString = $"Bearer {tokenString}";

                HttpContext.Session.Set("User", Other.SerializeToByte(user));
            }
            return(new ResponseModel <string>(Enum.ResponseCode.Success, "", tokenString));
        }
        public async Task <ResultObj <int> > LoginReg(LogingDto inEnt, DapperHelper <SysUserEntity> dbHelperUser, DapperHelper <SysLoginEntity> dbHelper)
        {
            ResultObj <int> reObj = new ResultObj <int>();

            #region 验证值
            ModelHelper <LogingDto> modelHelper = new ModelHelper <LogingDto>(inEnt);
            var errList = modelHelper.Validate();
            if (errList.Count() > 0)
            {
                reObj.success = false;
                reObj.code    = "-1";
                reObj.msg     = string.Format(",", errList.Select(x => x.ErrorMessage));
                return(reObj);
            }
            #endregion

            #region 检测输入


            if (!inEnt.loginName.IsOnlyNumber() || inEnt.loginName.Length != 11)
            {
                reObj.success = false;
                reObj.code    = "-1";
                reObj.msg     = "电话号码格式不正确";
                return(reObj);
            }

            if (!Fun.CheckPassword(inEnt.password, appConfig.BaseConfig.PwdComplexity))
            {
                reObj.success = false;
                reObj.code    = "-2";
                reObj.msg     = string.Format("密码复杂度不够:{0}", appConfig.BaseConfig.PwdComplexity);
                return(reObj);
            }
            #endregion

            #region 检测验证码
            //if (AppSettingsManager.self.BaseConfig.VerifyCode)
            //{
            //    var nowDate = DateTime.Now.AddMinutes(-30);

            //    var codeNum = await new SmsSendRepository().Count(inEnt.loginName, inEnt.code);
            //    if (codeNum == 0)
            //    {
            //        reObj.success = false;
            //        reObj.code = "-3";
            //        reObj.msg = string.Format("验证码无效");
            //        return reObj;
            //    }
            //}
            #endregion

            var userList = await dbHelperUser.FindAll(x => x.loginName == inEnt.loginName);

            #region 检测电话号码是否存在
            if (userList.Count() > 0)
            {
                reObj.success = false;
                reObj.code    = "-4";
                reObj.msg     = string.Format("电话号码已经存在,请更换电话号码");
                return(reObj);
            }
            #endregion

            //开始事务
            try
            {
                var loginList = await FindAll(x => x.loginName == inEnt.loginName);

                #region 添加登录账号
                if (loginList.Count() == 0)
                {
                    SysLoginEntity inLogin = new SysLoginEntity();
                    inLogin.id = await SequenceRepository.GetNextID <SysLoginEntity>();

                    inLogin.loginName = inEnt.loginName;
                    inLogin.password  = inEnt.password.Md5();
                    inLogin.isLocked  = 0;
                    inLogin.failCount = 0;
                    reObj.success     = await dbHelper.Save(new DtoSave <SysLoginEntity>()
                    {
                        data = inLogin
                    }) > 0 ? true : false;

                    if (!reObj.success)
                    {
                        reObj.success = false;
                        reObj.code    = "-5";
                        reObj.msg     = string.Format("添加账号失败");
                        return(reObj);
                    }
                }
                #endregion

                #region 添加user

                SysUserEntity inUser = new SysUserEntity();
                inUser.loginName = inEnt.loginName;
                inUser.name      = inEnt.userName;
                inUser.id        = await SequenceRepository.GetNextID <SysUserEntity>();

                inUser.districtId = 1;
                inUser.createTime = Helper.DataTimeHelper.getDateLong(DateTime.Now);
                inUser.status     = 1;
                reObj.success     = await dbHelperUser.Save(new DtoSave <SysUserEntity>
                {
                    data            = inUser,
                    ignoreFieldList = new List <string>()
                }) > 0 ? true : false;

                if (!reObj.success)
                {
                    reObj.success = false;
                    reObj.code    = "-6";
                    reObj.msg     = string.Format("添加user失败");
                    return(reObj);
                }
                #endregion

                reObj.data = inUser.id;
            }
            catch (Exception e)
            {
                reObj.success = false;
                reObj.msg     = e.Message;
            }


            return(reObj);
        }
        /// <summary>
        /// 更新登录名
        /// </summary>
        /// <param name="oldLoginName"></param>
        /// <param name="NewLoginName"></param>
        /// <param name="name"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        async public Task <Result> UserEditLoginName(string oldLoginName, string NewLoginName, string name, int userId, string pwd, string iconFiles)
        {
            DapperHelper <SysUserEntity> userDapper = new DapperHelper <SysUserEntity>();
            Result reObj = new Result();

            #region 检测输入
            if (string.IsNullOrEmpty(oldLoginName) && userId == 0)
            {
                reObj.success = false;
                reObj.code    = "-2";
                reObj.msg     = "用户主键有误";
                return(reObj);
            }
            if (!NewLoginName.IsOnlyNumber() || NewLoginName.Length != 11)
            {
                reObj.success = false;
                reObj.code    = "-1";
                reObj.msg     = "电话号码格式不正确";
                return(reObj);
            }

            #endregion

            #region 检测电话号码是否存在
            IEnumerable <SysUserEntity> userList = await userDapper.FindAll(x => x.loginName == NewLoginName);

            if (userList.Count() > 0)
            {
                reObj.success = false;
                reObj.code    = "-4";
                reObj.msg     = string.Format("电话号码已经存在,请更换电话号码");
                return(reObj);
            }
            #endregion

            #region 检测用户是否存在

            SysUserEntity user = new SysUserEntity();
            if (userId != 0)
            {
                user = await userDapper.Single(x => x.id == userId);
            }
            else
            {
                user = await userDapper.Single(x => x.loginName == oldLoginName);
            }

            if (user == null)
            {
                reObj.success = false;
                reObj.code    = "-5";
                reObj.msg     = string.Format("用户不存在");
                return(reObj);
            }
            #endregion

            userDapper.TranscationBegin();

            #region 修改用户账号

            user.name      = name;
            user.loginName = NewLoginName;
            user.iconFiles = iconFiles;

            reObj.success = await userDapper.Update(new DtoSave <SysUserEntity>()
            {
                data             = user,
                saveFieldListExp = x => new object[] { x.name, x.loginName, x.iconFiles },
                whereListExp     = x => new object[] { x.id },
            }) > 0 ? true : false;

            if (!reObj.success)
            {
                userDapper.TranscationRollback();
                reObj.msg = "保存用户失败";
                return(reObj);
            }
            #endregion


            #region 修改登录账号
            DapperHelper <SysLoginEntity> loginDapper = new DapperHelper <SysLoginEntity>(userDapper.GetConnection(), userDapper.GetTransaction());
            var login = await loginDapper.Single(x => x.loginName == oldLoginName);

            if (login == null)
            {
                SysLoginEntity inLogin = new SysLoginEntity();
                inLogin.id = await SequenceRepository.GetNextID <SysLoginEntity>();

                inLogin.loginName = NewLoginName;
                inLogin.password  = string.IsNullOrEmpty(pwd) ? NewLoginName.Md5() : pwd.Md5();
                inLogin.isLocked  = 0;
                inLogin.failCount = 0;
                reObj.success     = await loginDapper.Save(new DtoSave <SysLoginEntity>()
                {
                    data = inLogin
                }) > 0 ? true : false;
            }
            else
            {
                login.loginName = NewLoginName;
                login.password  = string.IsNullOrEmpty(pwd) ? NewLoginName.Md5() : pwd.Md5();
                reObj.success   = await loginDapper.Update(new DtoSave <SysLoginEntity>
                {
                    data             = login,
                    saveFieldListExp = x => new object[] { x.loginName, x.password },
                    whereList        = null
                }) > 0 ? true : false;
            }

            if (!reObj.success)
            {
                reObj.msg = "保存账号失败";
                userDapper.TranscationRollback();
                return(reObj);
            }
            #endregion
            userDapper.TranscationCommit();

            reObj.success = true;
            reObj.msg     = user.id.ToString();
            return(reObj);
        }