hutongqing
2025-01-11 97b9f7d9650b426fa540e7aaba7739a2e7080ab0
代码管理/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()