From 26bd491f38294bda6729936099d6ebca67e4e57a Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期六, 11 一月 2025 10:48:35 +0800 Subject: [PATCH] 1 --- /dev/null | 0 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/HostedService/PermissionDataHostService.cs | 45 +++++++++++++++++++++++++++++++++++++++++++++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_UserService.cs | 5 ++++- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs | 2 +- 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/3ba3019c-440c-48eb-82b3-06cc25ec7301.vsidx | 0 5 files changed, 50 insertions(+), 2 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/157ae1fd-6c00-4a8d-bfe7-e0b23990d57b.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/157ae1fd-6c00-4a8d-bfe7-e0b23990d57b.vsidx" deleted file mode 100644 index 363e52e..0000000 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/157ae1fd-6c00-4a8d-bfe7-e0b23990d57b.vsidx" +++ /dev/null Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/3ba3019c-440c-48eb-82b3-06cc25ec7301.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/3ba3019c-440c-48eb-82b3-06cc25ec7301.vsidx" new file mode 100644 index 0000000..249ddd8 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/3ba3019c-440c-48eb-82b3-06cc25ec7301.vsidx" Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/HostedService/PermissionDataHostService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/HostedService/PermissionDataHostService.cs" index 1656f81..0ff7fb6 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/HostedService/PermissionDataHostService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/HostedService/PermissionDataHostService.cs" @@ -87,6 +87,51 @@ return userRoles; } + public static List<UserRole> GetUserRoles(ISqlSugarClient db, int userId) + { + List<ExpandoObject> roles = db.Queryable("Sys_Role", "x").Select(RoleSelectModes).ToList(); + List<dynamic> roleDynamics = new List<dynamic>(); + foreach (var item in roles) + { + roleDynamics.Add(item); + } + + List<dynamic> roleDataDynamics = new List<dynamic>(); + List<ExpandoObject> roleDatas = db.Queryable("Sys_RoleDataPermission", "x").Select(RoleDataSelectModes).ToList(); + foreach (var item in roleDatas) + { + roleDataDynamics.Add(item); + } + + List<ExpandoObject> users = db.Queryable("Sys_User", "x").Where($"UserId={userId}").Select(UserSelectModes).ToList(); + + List<UserRole> userRoles = new List<UserRole>(); + foreach (var item in users) + { + dynamic user = item; + dynamic? role = roleDynamics.FirstOrDefault(x => x.RoleId == user.RoleId); + List<object> warehouseIds = roleDataDynamics.Where(x => x.RoleId == user.RoleId).Select(x => x.WarehouseId).ToList(); + List<int> ids = new List<int>(); + for (int i = 0; i < warehouseIds.Count; i++) + { + ids.Add(Convert.ToInt32(warehouseIds[i])); + } + if (role != null) + { + userRoles.Add(new UserRole + { + RoleId = role.RoleId, + RoleName = role.RoleName, + ParentId = role.ParentId, + UserId = user.UserId, + UserName = user.UserName, + WarehouseIds = ids + }); + } + } + return userRoles; + } + static List<SelectModel> RoleSelectModes = new List<SelectModel>() { new SelectModel() 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 fe09cc4..c97b27c 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,7 @@ using SqlSugar; using ICacheService = WIDESEA_Core.Caches.ICacheService; using HslCommunication.WebSocket; +using WIDESEA_Core.HostedService; namespace WIDESEA_SystemService { @@ -74,8 +75,10 @@ }); _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, trueNmae = user.UserTrueName }); } else { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs" index d6f884a..c8b83e9 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs" @@ -43,7 +43,7 @@ builder.Services.AddWebSocketSetup(); builder.Services.AddSqlsugarSetup();//SqlSugar 启动服务 builder.Services.AddDbSetup();//Db 启动服务 -builder.Services.AddInitializationHostServiceSetup();//应用初始化服务注入 +//builder.Services.AddInitializationHostServiceSetup();//应用初始化服务注入 builder.Services.AddHostedService<PermissionDataHostService>();//应用初始化服务注入 builder.Services.AddAutoMapperSetup(); -- Gitblit v1.9.3