From 5eb8ed8d1e0b1d82ceb634c5e39e60cb6b0e06f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E7=8E=89=E7=A5=A5?= Date: Thu, 29 Jun 2023 23:36:26 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=A2=9E=E5=BC=BA=E3=80=91=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E3=80=81=E6=9C=BA=E6=9E=84=E9=80=89=E6=8B=A9=E5=99=A8?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modular/org/service/BizOrgService.java | 50 ++++++++++++++++++- .../org/service/impl/BizOrgServiceImpl.java | 9 +++- .../org/service/impl/SysOrgServiceImpl.java | 8 +-- .../role/service/impl/SysRoleServiceImpl.java | 4 +- 4 files changed, 63 insertions(+), 8 deletions(-) diff --git a/snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/org/service/BizOrgService.java b/snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/org/service/BizOrgService.java index 0f7ef555..0f0209d4 100644 --- a/snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/org/service/BizOrgService.java +++ b/snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/org/service/BizOrgService.java @@ -94,13 +94,61 @@ public interface BizOrgService extends IService { List getAllOrgList(); /** - * 根据机构全名称获取机构id,有则返回,无则创建 + * 根据组织全名称获取组织id,有则返回,无则创建 * * @author xuyuxiang * @date 2023/3/7 15:44 **/ String getOrgIdByOrgFullNameWithCreate(String orgFullName); + /** + * 根据id获取父子数据列表 + * + * @author xuyuxiang + * @date 2022/8/15 14:55 + **/ + List getParentAndChildListById(List originDataList, String id, boolean includeSelf); + + /** + * 根据id获取所有的子数据列表 + * + * @author xuyuxiang + * @date 2022/8/15 14:55 + **/ + List getChildListById(List originDataList, String id, boolean includeSelf); + + /** + * 根据id获取所有的父数据列表 + * + * @author xuyuxiang + * @date 2022/8/15 14:55 + **/ + List getParentListById(List originDataList, String id, boolean includeSelf); + + /** + * 根据id获取数据 + * + * @author xuyuxiang + * @date 2022/8/15 14:55 + **/ + BizOrg getById(List originDataList, String id); + + /** + * 根据id获取父数据 + * + * @author xuyuxiang + * @date 2022/8/15 14:55 + **/ + BizOrg getParentById(List originDataList, String id); + + /** + * 根据id获取子数据 + * + * @author xuyuxiang + * @date 2022/8/15 14:55 + **/ + BizOrg getChildById(List originDataList, String id); + /** * 获取机构树选择器 * diff --git a/snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/org/service/impl/BizOrgServiceImpl.java b/snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/org/service/impl/BizOrgServiceImpl.java index ee0acc28..ed5649ed 100644 --- a/snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/org/service/impl/BizOrgServiceImpl.java +++ b/snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/org/service/impl/BizOrgServiceImpl.java @@ -389,13 +389,15 @@ public class BizOrgServiceImpl extends ServiceImpl impleme /* ====以下为各种递归方法==== */ + @Override public List getParentAndChildListById(List originDataList, String id, boolean includeSelf) { List parentListById = this.getParentListById(originDataList, id, false); List childListById = this.getChildListById(originDataList, id, true); parentListById.addAll(childListById); return parentListById; } - + + @Override public List getChildListById(List originDataList, String id, boolean includeSelf) { List resultList = CollectionUtil.newArrayList(); execRecursionFindChild(originDataList, id, resultList); @@ -408,6 +410,7 @@ public class BizOrgServiceImpl extends ServiceImpl impleme return resultList; } + @Override public List getParentListById(List originDataList, String id, boolean includeSelf) { List resultList = CollectionUtil.newArrayList(); execRecursionFindParent(originDataList, id, resultList); @@ -420,6 +423,7 @@ public class BizOrgServiceImpl extends ServiceImpl impleme return resultList; } + public void execRecursionFindChild(List originDataList, String id, List resultList) { originDataList.forEach(item -> { if(item.getParentId().equals(id)) { @@ -441,16 +445,19 @@ public class BizOrgServiceImpl extends ServiceImpl impleme }); } + @Override public BizOrg getById(List originDataList, String id) { int index = CollStreamUtil.toList(originDataList, BizOrg::getId).indexOf(id); return index == -1?null:originDataList.get(index); } + @Override public BizOrg getParentById(List originDataList, String id) { BizOrg self = this.getById(originDataList, id); return ObjectUtil.isNotEmpty(self)?self:this.getById(originDataList, self.getParentId()); } + @Override public BizOrg getChildById(List originDataList, String id) { int index = CollStreamUtil.toList(originDataList, BizOrg::getParentId).indexOf(id); return index == -1?null:originDataList.get(index); diff --git a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/org/service/impl/SysOrgServiceImpl.java b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/org/service/impl/SysOrgServiceImpl.java index dd21d7bc..b2ace19e 100644 --- a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/org/service/impl/SysOrgServiceImpl.java +++ b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/org/service/impl/SysOrgServiceImpl.java @@ -314,11 +314,11 @@ public class SysOrgServiceImpl extends ServiceImpl impleme return sysUserService.getAllUserSelectorList(); } else { if(ObjectUtil.isNotEmpty(sysOrgSelectorUserParam.getOrgId())) { - // 如果组织id不为空,则查询该组织所在顶级组织下的所有人 - List parentAndChildOrgIdList = CollStreamUtil.toList(this.getParentAndChildListById(this + // 如果组织id不为空,则查询该组织及其子组织下的所有人 + List childOrgIdList = CollStreamUtil.toList(this.getChildListById(this .getCachedAllOrgList(), sysOrgSelectorUserParam.getOrgId(), true), SysOrg::getId); - if (ObjectUtil.isNotEmpty(parentAndChildOrgIdList)) { - lambdaQueryWrapper.in(SysUser::getOrgId, parentAndChildOrgIdList); + if (ObjectUtil.isNotEmpty(childOrgIdList)) { + lambdaQueryWrapper.in(SysUser::getOrgId, childOrgIdList); } else { return new Page<>(); } diff --git a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/service/impl/SysRoleServiceImpl.java b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/service/impl/SysRoleServiceImpl.java index f996bfc1..8a63b521 100644 --- a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/service/impl/SysRoleServiceImpl.java +++ b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/service/impl/SysRoleServiceImpl.java @@ -463,8 +463,8 @@ public class SysRoleServiceImpl extends ServiceImpl impl // 如果组织id不为空,则查询该组织及其子极其子下的所有人 List childOrgIdList = CollStreamUtil.toList(sysOrgService.getChildListById(sysOrgService .getCachedAllOrgList(), sysRoleSelectorUserParam.getOrgId(), true), SysOrg::getId); - if (ObjectUtil.isNotEmpty(parentAndChildOrgIdList)) { - lambdaQueryWrapper.in(SysUser::getOrgId, parentAndChildOrgIdList); + if (ObjectUtil.isNotEmpty(childOrgIdList)) { + lambdaQueryWrapper.in(SysUser::getOrgId, childOrgIdList); } else { return new Page<>(); }