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 48136779..6193fe98 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 @@ -46,6 +46,7 @@ import vip.xiaonuo.sys.api.SysRoleApi; import javax.annotation.Resource; import java.util.List; +import java.util.Set; import java.util.stream.Collectors; /** @@ -97,17 +98,18 @@ public class BizOrgServiceImpl extends ServiceImpl impleme @Override public List> tree() { - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + // 获取所有机构 + List allOrgList = this.list(); + // 定义机构集合 + Set bizOrgSet = CollectionUtil.newHashSet(); // 校验数据范围 List loginUserDataScope = StpLoginUserUtil.getLoginUserDataScope(); if(ObjectUtil.isNotEmpty(loginUserDataScope)) { - lambdaQueryWrapper.in(BizOrg::getId, loginUserDataScope); + loginUserDataScope.forEach(orgId -> bizOrgSet.addAll(this.getParentListById(allOrgList, orgId, true))); } else { return CollectionUtil.newArrayList(); } - lambdaQueryWrapper.orderByAsc(BizOrg::getSortCode); - List bizOrgList = this.list(lambdaQueryWrapper); - List> treeNodeList = bizOrgList.stream().map(bizOrg -> + List> treeNodeList = bizOrgSet.stream().map(bizOrg -> new TreeNode<>(bizOrg.getId(), bizOrg.getParentId(), bizOrg.getName(), bizOrg.getSortCode()).setExtra(JSONUtil.parseObj(bizOrg))) .collect(Collectors.toList());