|  |  | 
 |  |  |  | 
 |  |  |         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) | 
 |  |  |             { | 
 |  |  | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             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) | 
 |  |  | 
 |  |  |                     }); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             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() | 
 |  |  |             { | 
 |  |  | 
 |  |  |             }, | 
 |  |  |         }; | 
 |  |  |  | 
 |  |  |         List<SelectModel> UserSelectModes = new List<SelectModel>() | 
 |  |  |         static List<SelectModel> UserSelectModes = new List<SelectModel>() | 
 |  |  |         { | 
 |  |  |             new SelectModel() | 
 |  |  |             { | 
 |  |  | 
 |  |  |             } | 
 |  |  |         }; | 
 |  |  |  | 
 |  |  |         List<SelectModel> RoleDataSelectModes = new List<SelectModel>() | 
 |  |  |         static List<SelectModel> RoleDataSelectModes = new List<SelectModel>() | 
 |  |  |         { | 
 |  |  |             new SelectModel() | 
 |  |  |             { |