From 1b108e8d7335d5a5a59dfcf2f4eeef034a53b9b8 Mon Sep 17 00:00:00 2001 From: zhaowc <526854230@qq.com> Date: 星期五, 06 九月 2024 12:33:06 +0800 Subject: [PATCH] 用户管理页角色问题和密码增加验证问题 --- Wms/WMS.BLL/SysServer/UserInforServer.cs | 74 ++++++++++++++++++++++++------------ 1 files changed, 49 insertions(+), 25 deletions(-) diff --git a/Wms/WMS.BLL/SysServer/UserInforServer.cs b/Wms/WMS.BLL/SysServer/UserInforServer.cs index 6d6ecac..29fbd2d 100644 --- a/Wms/WMS.BLL/SysServer/UserInforServer.cs +++ b/Wms/WMS.BLL/SysServer/UserInforServer.cs @@ -16,19 +16,18 @@ using WMS.Entity.BllTaskEntity; using WMS.DAL; using Utility; +using System.Text.RegularExpressions; namespace WMS.BLL.SysServer { public class UserInforServer : IUserInforServer { - public IUserInforRepository UserSvc { get; set; } readonly IMapper _mapper; private readonly IFunSettingServer _setting; private static readonly SqlSugarScope Db = DataContext.Db; private readonly UserManager _userManager; - public UserInforServer(IUserInforRepository userSvc, IMapper mapper, IFunSettingServer setting, UserManager userManager) + public UserInforServer(IMapper mapper, IFunSettingServer setting, UserManager userManager) { - UserSvc = userSvc; _mapper = mapper; _setting = setting; _userManager = userManager; @@ -37,7 +36,7 @@ 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); + var modUser = await Db.Queryable<SysUserInfor>().FirstAsync(m => m.UserName == loginName && m.PassWord == loginPwd &&m.IsDel=="0"); if (modUser != null) //璐﹀彿瀵嗙爜鏄惁姝g‘ { if (modUser.Status == "0") //褰撳墠璐﹀彿鏄惁姝e父鍚敤 @@ -56,13 +55,6 @@ return -1; } } - public SysUserInfor CeShi() - { - var date = UserSvc.ceshi(); - - return date; - - } /// <summary> /// 鑾峰彇鐢ㄦ埛瑙掕壊淇℃伅 @@ -70,16 +62,25 @@ /// <returns></returns> public async Task<List<UserInfoDto>> GetUserRoleList(string UserName, string DepartmentNo, string RoleNo, string Status) { + var modUser = await Db.Queryable<SysUserInfor>().FirstAsync(s => s.Id == _userManager.UserId); return await Db.Queryable<SysUserInfor>() .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") .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) .WhereIF(!string.IsNullOrEmpty(Status), a => a.Status == Status) + .WhereIF(modUser.UserName.ToUpper() != "ADMIN", a => a.CreateUser == _userManager.UserId) .Where(a => a.IsDel == "0") - .Select<UserInfoDto>() + .Select<UserInfoDto>((a, b, c, d) => new UserInfoDto() + { + RealName = a.RealName, + CreateUserName = b.RealName, + DepartmentName = c.DepartmentName, + RoleName = d.RoleName, + }, true) .ToListAsync(); } @@ -118,11 +119,10 @@ } else if (count == 0) { - //鏂板鐢ㄦ埛 - //i = await UserSvc.InsertUserInfo(userinfo); userinfo.PassWord = Md5Tools.CalcMd5("boxline"); userinfo.SetPasswordTime = DateTime.Now; userinfo.CreateTime = DateTime.Now; + userinfo.CreateUser = _userManager.UserId; i = await Db.Insertable(userinfo).ExecuteCommandAsync(); if (i <= 0) throw Oops.Bah("鏂板鐢ㄦ埛淇℃伅澶辫触"); @@ -167,9 +167,10 @@ } else if (count == 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 }) + .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 }) .ExecuteCommandAsync(); if (i <= 0) throw Oops.Bah("缂栬緫鐢ㄦ埛淇℃伅澶辫触"); @@ -182,28 +183,51 @@ /// </summary> /// <param name="userids">鐢ㄦ埛id</param> /// <returns></returns> - public async Task<SysUserInfor> GetUserInfoById(int userids) + public async Task<SysUserInfor> GetUserInfoById(int userid) { - return await Db.Queryable<SysUserInfor>().FirstAsync(s => s.Id == userids && s.IsDel == "0"); + return await Db.Queryable<SysUserInfor>().FirstAsync(s => s.Id == userid && s.IsDel == "0"); } /// <summary> /// 淇敼鐢ㄦ埛瀵嗙爜 /// </summary> - /// <param name="pwdOld">鍘熷瘑鐮�</param> /// <param name="pwdNew">鏂板瘑鐮�</param> - /// <param name="pwdNewTwo">纭瀵嗙爜</param> /// <param name="userId">鐢ㄦ埛id</param> /// <returns></returns> /// <exception cref="Exception">鎹曡幏寮傚父</exception> - public async Task<int> UptUserPassWord(string pwdNew, 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) + { + bool t = false; + switch (funSet.FunSetNo) + { + case "Fun052": //鏁板瓧锛屽瓧姣嶏紝绗﹀彿 + t = Regex.IsMatch(pwdNewTwo, @"^(?:(?=.*[0-9].*)(?=.*[A-Za-z].*)(?=.*[^0-9A-Za-z].*)).{3,}"); + break; + case "Fun053": //瀛楁瘝锛屾暟瀛� + t = Regex.IsMatch(pwdNewTwo, @"^(?:(?=.*[0-9].*)(?=.*[A-Za-z].*)).{2,}"); + break; + case "Fun051": //鏁板瓧锛屽瓧姣嶏紝绗﹀彿锛岄暱搴� + t = Regex.IsMatch(pwdNewTwo, @"^(?=.*[0-9])(?=.*[a-zA-Z])(?=([\x21-\x7e]+)[^a-zA-Z0-9]).{8,30}"); + break; + default: + break; + } + if (!t) + { + throw Oops.Bah("杈撳叆瀵嗙爜涓嶇鍚堝瘑鐮佽鍒�"); + } + } return await Db.Updateable<SysUserInfor>() - .Where(s => s.Id == userId) - .SetColumns(s => s.UpdateTime == DateTime.Now) - .SetColumns(s => s.UpdateUser == _userManager.UserId) - .SetColumns(s => s.SetPasswordTime == DateTime.Now) - .ExecuteCommandAsync(); + .Where(s => s.Id == userId) + .SetColumns(s => s.UpdateTime == DateTime.Now) + .SetColumns(s => s.UpdateUser == _userManager.UserId) + .SetColumns(s => s.PassWord == pwdNew) + .SetColumns(s => s.SetPasswordTime == DateTime.Now) + .ExecuteCommandAsync(); + } /// <summary> /// x澶╁悗鎻愰啋鐢ㄦ埛淇敼瀵嗙爜 -- Gitblit v1.8.0