From 37680113891424e73d660a0cb38735c13cb70fb5 Mon Sep 17 00:00:00 2001 From: zywu <1061096367@qq.com> Date: Sat, 26 Mar 2022 18:35:04 +0800 Subject: [PATCH] =?UTF-8?q?bugfix:for=E5=BE=AA=E7=8E=AF=E5=86=85=E8=B0=83?= =?UTF-8?q?=E7=94=A8TreeUtil.build=E4=BC=9A=E5=AF=BC=E8=87=B4=E6=A0=91?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../security/common/util/TreeUtil.java | 31 +++++++++++++++++++ .../admin/rpc/service/PermissionService.java | 4 +-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/ace-dev-base/ace-common/src/main/java/com/github/wxiaoqi/security/common/util/TreeUtil.java b/ace-dev-base/ace-common/src/main/java/com/github/wxiaoqi/security/common/util/TreeUtil.java index aac35b44..400c04c3 100644 --- a/ace-dev-base/ace-common/src/main/java/com/github/wxiaoqi/security/common/util/TreeUtil.java +++ b/ace-dev-base/ace-common/src/main/java/com/github/wxiaoqi/security/common/util/TreeUtil.java @@ -4,6 +4,7 @@ import com.github.wxiaoqi.security.common.vo.TreeNode; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * Created by Ace on 2017/6/12. @@ -37,6 +38,36 @@ public class TreeUtil{ return trees; } + /** + * 两层循环实现建树 + * + * @param + * @param treeNodes + * @param root 根结点list + * @return + */ + public static List bulid(List treeNodes, List root) { + + List trees = new ArrayList(); + + for (T treeNode : treeNodes) { + + if (root.stream().filter(n -> n.equals(treeNode.getParentId())).collect(Collectors.toList()).size() > 0) { + trees.add(treeNode); + } + + for (T it : treeNodes) { + if (it.getParentId() == treeNode.getId()) { + if (treeNode.getChildren() == null) { + treeNode.setChildren(new ArrayList()); + } + treeNode.add(it); + } + } + } + return trees; + } + /** * 使用递归方法建树 * diff --git a/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/modules/admin/rpc/service/PermissionService.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/modules/admin/rpc/service/PermissionService.java index bf2409ba..382dc164 100644 --- a/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/modules/admin/rpc/service/PermissionService.java +++ b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/modules/admin/rpc/service/PermissionService.java @@ -213,9 +213,7 @@ public class PermissionService { } // 配置路由权限 List accessRoutes = new ArrayList<>(); - for (Integer menuId : menuIds) { - accessRoutes.addAll(TreeUtil.bulid(routeTrees, menuId)); - } + accessRoutes.addAll(TreeUtil.bulid(routeTrees, menuIds)); frontUser.setAccessMenus(TreeUtil.bulid(menuTrees, AdminCommonConstant.ROOT)); frontUser.setAccessHeader(header); frontUser.setAccessRoutes(accessRoutes); -- Gitee