| | |
| | | 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() |