From 961073ec96bfbb920f9afd952052c20b3791eb4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 15 Feb 2022 10:45:04 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20TreeBuildUtils=20?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=20=E4=BD=BF=E7=94=A8=E5=8F=8D=E5=B0=84?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=8E=B7=E5=8F=96=E9=A1=B6=E7=BA=A7=E7=88=B6?= =?UTF-8?q?id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/common/utils/TreeBuildUtils.java | 10 ++++++++-- .../ruoyi/system/service/impl/SysDeptServiceImpl.java | 3 +-- .../ruoyi/system/service/impl/SysMenuServiceImpl.java | 3 +-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/TreeBuildUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/TreeBuildUtils.java index 76bf864f4..f9f8fa140 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/TreeBuildUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/TreeBuildUtils.java @@ -1,9 +1,11 @@ package com.ruoyi.common.utils; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.TreeNodeConfig; import cn.hutool.core.lang.tree.TreeUtil; import cn.hutool.core.lang.tree.parser.NodeParser; +import com.ruoyi.common.utils.reflect.ReflectUtils; import lombok.AccessLevel; import lombok.NoArgsConstructor; @@ -22,8 +24,12 @@ public class TreeBuildUtils extends TreeUtil { */ public static final TreeNodeConfig DEFAULT_CONFIG = TreeNodeConfig.DEFAULT_CONFIG.setNameKey("label"); - public static List> build(List list, Long parentId, NodeParser nodeParser) { - return TreeUtil.build(list, parentId, DEFAULT_CONFIG, nodeParser); + public static List> build(List list, NodeParser nodeParser) { + if (CollUtil.isEmpty(list)) { + return null; + } + K k = ReflectUtils.invokeGetter(list.get(0), "parentId"); + return TreeUtil.build(list, k, DEFAULT_CONFIG, nodeParser); } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index 0dd441baf..621dc078d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -60,8 +60,7 @@ public class SysDeptServiceImpl implements ISysDeptService { if (CollUtil.isEmpty(depts)) { return CollUtil.newArrayList(); } - Long parentId = depts.get(0).getParentId(); - return TreeBuildUtils.build(depts, parentId, (dept, tree) -> + return TreeBuildUtils.build(depts, (dept, tree) -> tree.setId(dept.getDeptId()) .setParentId(dept.getParentId()) .setName(dept.getDeptName()) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index a171a936b..0029ecd36 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -181,8 +181,7 @@ public class SysMenuServiceImpl implements ISysMenuService { if (CollUtil.isEmpty(menus)) { return CollUtil.newArrayList(); } - Long parentId = menus.get(0).getParentId(); - return TreeBuildUtils.build(menus, parentId, (menu, tree) -> + return TreeBuildUtils.build(menus, (menu, tree) -> tree.setId(menu.getMenuId()) .setParentId(menu.getParentId()) .setName(menu.getMenuName())