From 5ab6b36c0c4bd80a31dcdd9f15cc835b7352c4e7 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期四, 16 一月 2025 11:08:02 +0800 Subject: [PATCH] 1 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/HostedService/PermissionDataHostService.cs | 81 +++++++++++++++++++++++++++++++--------- 1 files changed, 63 insertions(+), 18 deletions(-) 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 f583a3a..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" @@ -30,7 +30,21 @@ public Task StartAsync(CancellationToken cancellationToken) { - List<ExpandoObject> roles = _dbContext.Db.Queryable("Sys_Role", "x").Select(RoleSelectModes).ToList(); + List<UserRole> userRoles = GetUserRoles(_dbContext.Db); + UserRoles = userRoles; + _cacheService.AddOrUpdate("UserRoles", userRoles.Serialize()); + + return Task.CompletedTask; + } + + public Task StopAsync(CancellationToken cancellationToken) + { + throw new NotImplementedException(); + } + + public static List<UserRole> GetUserRoles(ISqlSugarClient db) + { + List<ExpandoObject> roles = db.Queryable("Sys_Role", "x").Select(RoleSelectModes).ToList(); List<dynamic> roleDynamics = new List<dynamic>(); foreach (var item in roles) { @@ -38,13 +52,13 @@ } List<dynamic> roleDataDynamics = new List<dynamic>(); - List<ExpandoObject> roleDatas = _dbContext.Db.Queryable("Sys_RoleDataPermission", "x").Select(RoleDataSelectModes).ToList(); + List<ExpandoObject> roleDatas = db.Queryable("Sys_RoleDataPermission", "x").Select(RoleDataSelectModes).ToList(); foreach (var item in roleDatas) { roleDataDynamics.Add(item); } - List<ExpandoObject> users = _dbContext.Db.Queryable("Sys_User", "x").Select(UserSelectModes).ToList(); + List<ExpandoObject> users = db.Queryable("Sys_User", "x").Select(UserSelectModes).ToList(); List<UserRole> userRoles = new List<UserRole>(); foreach (var item in users) @@ -61,7 +75,6 @@ { userRoles.Add(new UserRole { - AuthorityScope = role.AuthorityScope, RoleId = role.RoleId, RoleName = role.RoleName, ParentId = role.ParentId, @@ -71,19 +84,55 @@ }); } } - - UserRoles = userRoles; - _cacheService.AddOrUpdate("UserRoles", userRoles.Serialize()); - - return Task.CompletedTask; + return userRoles; } - public Task StopAsync(CancellationToken cancellationToken) + public static List<UserRole> GetUserRoles(ISqlSugarClient db, int userId) { - throw new NotImplementedException(); + 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; } - List<SelectModel> RoleSelectModes = new List<SelectModel>() + static List<SelectModel> RoleSelectModes = new List<SelectModel>() { new SelectModel() { @@ -97,13 +146,9 @@ { FieldName = "RoleName", }, - new SelectModel() - { - FieldName = "AuthorityScope", - } }; - List<SelectModel> UserSelectModes = new List<SelectModel>() + static List<SelectModel> UserSelectModes = new List<SelectModel>() { new SelectModel() { @@ -123,7 +168,7 @@ } }; - List<SelectModel> RoleDataSelectModes = new List<SelectModel>() + static List<SelectModel> RoleDataSelectModes = new List<SelectModel>() { new SelectModel() { -- Gitblit v1.9.3