From a7ceaaa38a4394b82501ca60230e97d25a6871e3 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期六, 18 一月 2025 17:30:33 +0800
Subject: [PATCH] 1

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_UserService.cs |   80 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 77 insertions(+), 3 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_UserService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_UserService.cs"
index c97b27c..b71f4e9 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_UserService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_UserService.cs"
@@ -14,6 +14,11 @@
 using SqlSugar;
 using ICacheService = WIDESEA_Core.Caches.ICacheService;
 using HslCommunication.WebSocket;
+using System.Drawing.Drawing2D;
+using System.Linq;
+using MailKit.Search;
+using OrderByType = SqlSugar.OrderByType;
+using System.Drawing.Printing;
 using WIDESEA_Core.HostedService;
 
 namespace WIDESEA_SystemService
@@ -23,14 +28,16 @@
         private readonly IUnitOfWorkManage _unitOfWorkManage;
         private readonly ICacheService _cacheService;
         private readonly ISys_MenuService _menuService;
+        private readonly ISys_RoleService _roleService;
 
         public ISys_UserRepository Repository => BaseDal;
 
-        public Sys_UserService(ISys_UserRepository repository, IUnitOfWorkManage unitOfWorkManage, ICacheService cacheService, ISys_MenuService menuService) : base(repository)
+        public Sys_UserService(ISys_UserRepository repository, IUnitOfWorkManage unitOfWorkManage, ICacheService cacheService, ISys_MenuService menuService, ISys_RoleService roleService) : base(repository)
         {
             _unitOfWorkManage = unitOfWorkManage;
             _cacheService = cacheService;
             _menuService = menuService;
+            _roleService = roleService;
         }
 
         public WebResponseContent Login(LoginInfo loginInfo)
@@ -73,12 +80,12 @@
                         UserName = user.UserName,
                         TenantId = user.TenantId,
                     });
+                    App.User.UpdateToke(token, user.UserId);
 
-                    _cacheService.AddOrUpdate(user.UserId.ToString(), token);
                     if (PermissionDataHostService.UserRoles.FirstOrDefault(x => x.UserId == user.UserId) == null)
                         PermissionDataHostService.UserRoles.AddRange(PermissionDataHostService.GetUserRoles(Db, user.UserId));
 
-                    content = WebResponseContent.Instance.OK(data: new { token, userName = user.UserName, img = user.HeadImageUrl, trueNmae = user.UserTrueName });
+                    content = WebResponseContent.Instance.OK(data: new { token, userName = user.UserName, img = user.HeadImageUrl, user.UserTrueName });
                 }
                 else
                 {
@@ -104,6 +111,40 @@
                 };
             };
             return base.UpdateData(saveModel);
+        }
+
+        public override PageGridData<Sys_User> GetPageData(PageDataOptions options)
+        {
+            int roleId = -1;
+            //鏍戝舰鑿滃崟浼犳煡璇㈣鑹蹭笅鎵�鏈夌敤鎴�
+            if (options.Value != null)
+            {
+                roleId = options.Value.ObjToInt();
+            }
+
+            if (roleId <= 0)
+            {
+                if (App.User.IsHighestRole) return base.GetPageData(options);
+                roleId = App.User.RoleId;
+            }
+            int totalCount = 0;
+            List<int> roleIds = _roleService.GetAllChildrenRoleId(roleId).Where(x => x != roleId).ToList();
+            ISugarQueryable<Sys_User> sugarQueryable = Db.Queryable<Sys_User>();
+            ValidatePageOptions(options, TProperties, ref sugarQueryable);
+
+            Dictionary<string, OrderByType> orderbyDic = options.GetPageDataSort(TProperties);
+            List<OrderByModel> orderByModels = new List<OrderByModel>();
+            foreach (var item in orderbyDic)
+            {
+                OrderByModel orderByModel = new OrderByModel()
+                {
+                    FieldName = item.Key,
+                    OrderByType = item.Value
+                };
+                orderByModels.Add(orderByModel);
+            }
+            List<Sys_User> users = sugarQueryable.Where(x => roleIds.Contains(x.RoleId) || x.UserId == App.User.UserId).OrderBy(orderByModels).ToPageList(options.Page, options.Rows, ref totalCount);
+            return new PageGridData<Sys_User> { Rows = users, Total = totalCount };
         }
 
         public override WebResponseContent AddData(SaveModel saveModel)
@@ -192,5 +233,38 @@
             }
             return content;
         }
+        public WebResponseContent ModifyUserPwd(string password, string userName)
+        {
+            WebResponseContent content = new WebResponseContent();
+            string message = "";
+            password = password?.Trim();
+            try
+            {
+                if (string.IsNullOrEmpty(password)) return WebResponseContent.Instance.Error("瀵嗙爜涓嶈兘涓虹┖");
+                //鑾峰彇鐢ㄦ埛
+                Sys_User user = BaseDal.QueryFirst(x => x.UserName == userName);
+                if (user == null) return WebResponseContent.Instance.Error("鐢ㄦ埛涓嶅瓨鍦�");
+                user.UserPwd = password.EncryptDES(AppSecret.User);
+                BaseDal.UpdateData(user);
+                if (App.User.UserId == user.UserId)
+                {
+                    string token = JwtHelper.IssueJwt(new TokenModelJwt()
+                    {
+                        UserId = user.UserId,
+                        RoleId = user.RoleId,
+                        UserName = user.UserName,
+                        TenantId = user.TenantId,
+                    });
+                    _cacheService.AddOrUpdate(user.UserId.ToString(), token);
+                }
+                return content.OK("鏇存敼鎴愬姛");
+            }
+            catch (Exception ex)
+            {
+                message = ex.Message;
+                content.Error("鏈嶅姟鍣ㄤ簡鐐归棶棰�,璇风◢鍚庡啀璇�");
+            }
+            return content;
+        }
     }
 }

--
Gitblit v1.9.3