| | |
| | | |
| | | public async Task<int> LoginAdmin(string loginName, string loginPwd) |
| | | { |
| | | //loginPwd = Md5Tools.CalcMd5(loginPwd); |
| | | var modUser = await Db.Queryable<SysUserInfor>().FirstAsync(m => m.UserName == loginName && m.PassWord == loginPwd &&m.IsDel=="0"); |
| | | if (modUser != null) //账号密码是否正确 |
| | | //查询密码已错误次数 |
| | | string pwdErrNumSql = $@"select PwdErrNum from SysUserInfor where UserName='{loginName}'"; |
| | | int pwdErrNum = Db.Ado.GetInt(pwdErrNumSql); |
| | | //设定密码错误的次数 |
| | | string funNumSql = $@"select SetValue from SysFunSetting where IsDel='0' and IsEnable='NO' and FunSetNo='pwdErrNum' and GroupNo='pwdErrNum'"; |
| | | int funNum = Db.Ado.GetInt(funNumSql); |
| | | |
| | | //比较设定次数和已错误次数 |
| | | if (pwdErrNum < funNum) |
| | | { |
| | | if (modUser.Status == "0") //当前账号是否正常启用 |
| | | //loginPwd = Md5Tools.CalcMd5(loginPwd); |
| | | var modUser = await Db.Queryable<SysUserInfor>().FirstAsync(m => m.UserName == loginName && m.PassWord == loginPwd && m.IsDel == "0"); |
| | | if (modUser != null) //账号密码是否正确 |
| | | { |
| | | //最后登陆时间 |
| | | await Db.Updateable(modUser).UpdateColumns(s => s.LoginTime == DateTime.Now).ExecuteCommandAsync(); |
| | | return modUser.Id; |
| | | if (modUser.Status == "0") //当前账号是否正常启用 |
| | | { |
| | | //密码错误次数+1 |
| | | string uptErrNumSql = $@"update SysUserInfor set PwdErrNum=0 where UserName='{loginName}'"; |
| | | int uptErrNum = Db.Ado.ExecuteCommand(uptErrNumSql); |
| | | |
| | | //最后登陆时间 |
| | | await Db.Updateable(modUser).UpdateColumns(s => s.LoginTime == DateTime.Now).ExecuteCommandAsync(); |
| | | return modUser.Id; |
| | | } |
| | | else //当前账号被禁用 |
| | | { |
| | | return 0; |
| | | } |
| | | } |
| | | else //当前账号被禁用 |
| | | else //账号密码不正确或没有此账号 |
| | | { |
| | | return 0; |
| | | //密码错误次数+1 |
| | | string addErrNumSql = $@"update SysUserInfor set PwdErrNum+=1 where UserName='{loginName}'"; |
| | | int addErrNum = Db.Ado.ExecuteCommand(addErrNumSql); |
| | | |
| | | return -1; |
| | | } |
| | | } |
| | | else //账号密码不正确或没有此账号 |
| | | else//锁定账号 |
| | | { |
| | | return -1; |
| | | //账号改为停用 |
| | | string uptUserStatusSql = $@"update SysUserInfor set Status=1 where UserName='{loginName}'"; |
| | | int uptUserStatus = Db.Ado.ExecuteCommand(uptUserStatusSql); |
| | | return -2; |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id) |
| | | .LeftJoin<SysDepartment>((a, b, c) => a.DepartmentNo == c.DepartmentNo) |
| | | .LeftJoin<SysRoles>((a, b, c, d) => a.RoleNo == d.RoleNo) |
| | | .Where((a,b,c,d)=>d.IsDel == "0") |
| | | .Where((a, b, c, d) => d.IsDel == "0") |
| | | .WhereIF(!string.IsNullOrEmpty(UserName), a => a.UserName.Contains(UserName)) |
| | | .WhereIF(!string.IsNullOrEmpty(DepartmentNo), a => a.DepartmentNo == DepartmentNo) |
| | | .WhereIF(!string.IsNullOrEmpty(RoleNo), a => a.RoleNo == RoleNo) |
| | |
| | | public async Task<int> UpdateUserinfo(UserInfoDto userdto) |
| | | { |
| | | //映射数据模型 |
| | | SysUserInfor userlist = _mapper.Map<SysUserInfor>(userdto); |
| | | SysUserInfor userInfo = _mapper.Map<SysUserInfor>(userdto); |
| | | //判断用户号是否唯一 |
| | | int count = await GetUserInfoByNo(userdto.UserNo, userdto.UserName, userdto.Id); |
| | | int i = 0; |
| | |
| | | { |
| | | userdto.UpdateUser = _userManager.UserId; |
| | | userdto.UpdateTime = DateTime.Now; |
| | | i = await Db.Updateable(userlist) |
| | | .UpdateColumns(s => new { s.UserName, s.UserNo, s.Sex, s.RoleNo, s.RealName, s.Phone, s.Paper, s.Nationality, s.JobNo, s.Email, s.Demo, s.Addres, s.UpdateUser, s.UpdateTime }) |
| | | |
| | | //状态恢复正常,清除密码错误次数 |
| | | if (userdto.Status == "0") |
| | | { |
| | | userInfo.PwdErrNum = 0; |
| | | i = await Db.Updateable(userInfo) |
| | | .UpdateColumns(s => new { s.UserName, s.UserNo, s.Sex, s.RoleNo, s.RealName, s.Phone, s.Paper, s.Nationality, s.JobNo, s.Email, s.Demo, s.Addres, s.Status, s.PwdErrNum, s.UpdateUser, s.UpdateTime }) |
| | | .ExecuteCommandAsync(); |
| | | } |
| | | else |
| | | { |
| | | i = await Db.Updateable(userInfo) |
| | | .UpdateColumns(s => new { s.UserName, s.UserNo, s.Sex, s.RoleNo, s.RealName, s.Phone, s.Paper, s.Nationality, s.JobNo, s.Email, s.Demo, s.Addres, s.Status, s.UpdateUser, s.UpdateTime }) |
| | | .ExecuteCommandAsync(); |
| | | } |
| | | |
| | | if (i <= 0) |
| | | throw Oops.Bah("编辑用户信息失败"); |
| | | } |
| | |
| | | /// <param name="userId">用户id</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception">捕获异常</exception> |
| | | public async Task<int> UptUserPassWord(string pwdNew,string pwdNewTwo, int userId) |
| | | public async Task<int> UptUserPassWord(string pwdNew, string pwdNewTwo, int userId) |
| | | { |
| | | var funSet = Db.Queryable<SysFunSetting>().Where(m => m.IsDel == "0" && m.FunSetName == "密码规则" && m.IsEnable == "NO").ToList().FirstOrDefault(); |
| | | if (funSet != null) |