From 6b2c50252bf1fabd52c4a81a9b93ed4eb842bc86 Mon Sep 17 00:00:00 2001 From: yubaolee Date: Mon, 21 Jul 2025 00:42:35 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9A=A0=EF=B8=8Ffeat:=20=E4=B8=BA=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E7=A9=BF=E6=A2=AD=E6=A1=86=E6=8F=90=E4=BE=9B=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OpenAuth.App/RoleManager/RoleApp.cs | 10 +++++ OpenAuth.App/UserManager/UserManagerApp.cs | 44 +++++++++++++++++++ .../Controllers/RolesController.cs | 18 ++++++++ .../Controllers/UsersController.cs | 19 ++++++++ 4 files changed, 91 insertions(+) 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; + } + /// /// 加载指定角色的用户 ///