diff --git a/OpenAuth.App/RoleManager/RoleApp.cs b/OpenAuth.App/RoleManager/RoleApp.cs index 4dca5c12..b5cd1912 100644 --- a/OpenAuth.App/RoleManager/RoleApp.cs +++ b/OpenAuth.App/RoleManager/RoleApp.cs @@ -52,6 +52,16 @@ namespace OpenAuth.App return result; } + /// + /// 根据ID加载角色 + /// + /// + /// + public List LoadByIds(string[] ids) + { + return UnitWork.Find(u => ids.Contains(u.Id)).ToList(); + } + /// /// 添加角色,如果当前登录用户不是System,则直接把新角色分配给当前登录用户 diff --git a/OpenAuth.App/UserManager/UserManagerApp.cs b/OpenAuth.App/UserManager/UserManagerApp.cs index 113e9989..dfbe9b97 100644 --- a/OpenAuth.App/UserManager/UserManagerApp.cs +++ b/OpenAuth.App/UserManager/UserManagerApp.cs @@ -340,5 +340,49 @@ namespace OpenAuth.App var users = UnitWork.FromSql(sql); return users.Select(u=>u.Id).ToList(); } + + public List LoadByIds(string[] ids) + { + var users = Repository.Find(u => ids.Contains(u.Id)); + + //获取用户及用户关联的机构 + var userOrgs = from user in users + join relevance in UnitWork.Find(u => u.RelKey == "UserOrg") + on user.Id equals relevance.FirstId into temp + from r in temp.DefaultIfEmpty() + join org in UnitWork.Find(null) + on r.SecondId equals org.Id into orgtmp + from o in orgtmp.DefaultIfEmpty() + select new + { + user.Id, + user.Account, + user.Name, + user.Sex, + user.Status, + user.CreateTime, + user.CreateId, + user.ParentId, + OrgId = o.Id, + OrgName = o.Name + }; + + var userViews = userOrgs.GroupBy(b => b.Account).Select(u => new UserView + { + Id = u.First().Id, + Account = u.Key, + Name = u.First().Name, + Sex = u.First().Sex, + Status = u.First().Status, + CreateTime = u.First().CreateTime, + CreateUser = u.First().CreateId, + ParentName = u.First().ParentId, + ParentId = u.First().ParentId, + OrganizationIds = string.Join(",", u.Select(x=>x.OrgId)) + ,Organizations = string.Join(",", u.Select(x=>x.OrgName)) + }); + + return userViews.ToList(); + } } } \ No newline at end of file diff --git a/OpenAuth.WebApi/Controllers/RolesController.cs b/OpenAuth.WebApi/Controllers/RolesController.cs index efef305e..e4870c51 100644 --- a/OpenAuth.WebApi/Controllers/RolesController.cs +++ b/OpenAuth.WebApi/Controllers/RolesController.cs @@ -40,6 +40,24 @@ namespace OpenAuth.WebApi.Controllers result.Message = ex.InnerException?.Message ?? ex.Message; } + return result; + } + + [HttpPost] + public Response LoadByIds([FromBody]string[] ids) + { + var result = new Response>(); + try + { + result.Data = _app.LoadByIds(ids); + + } + catch (Exception ex) + { + result.Code = 500; + result.Message = ex.InnerException?.Message ?? ex.Message; + } + return result; } diff --git a/OpenAuth.WebApi/Controllers/UsersController.cs b/OpenAuth.WebApi/Controllers/UsersController.cs index 8cb4c952..0bb9d608 100644 --- a/OpenAuth.WebApi/Controllers/UsersController.cs +++ b/OpenAuth.WebApi/Controllers/UsersController.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Threading.Tasks; using Infrastructure; using Microsoft.AspNetCore.Mvc; @@ -139,6 +140,24 @@ namespace OpenAuth.WebApi.Controllers return result; } + [HttpPost] + public Response LoadByIds([FromBody]string[] ids) + { + var result = new Response>(); + try + { + result.Data = _app.LoadByIds(ids); + + } + catch (Exception ex) + { + result.Code = 500; + result.Message = ex.InnerException?.Message ?? ex.Message; + } + + return result; + } + /// /// 加载指定角色的用户 ///