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