From 565c3a3d0e7fb13effb526d2d6014f70a4d23f3b Mon Sep 17 00:00:00 2001 From: hutongqing <hutongqing@hnkhzn.com> Date: 星期一, 13 一月 2025 22:06:46 +0800 Subject: [PATCH] 板材仓 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/HostedService/PermissionDataHostService.cs | 76 +++++++++++++++++++++++++++++++------ 1 files changed, 63 insertions(+), 13 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 95b79b2..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) @@ -70,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() { @@ -98,7 +148,7 @@ }, }; - List<SelectModel> UserSelectModes = new List<SelectModel>() + static List<SelectModel> UserSelectModes = new List<SelectModel>() { new SelectModel() { @@ -118,7 +168,7 @@ } }; - List<SelectModel> RoleDataSelectModes = new List<SelectModel>() + static List<SelectModel> RoleDataSelectModes = new List<SelectModel>() { new SelectModel() { -- Gitblit v1.9.3