From aea1887a412d2550e45432ef8ceb08edbb3d9d72 Mon Sep 17 00:00:00 2001 From: HuangXin <13189450868@163.com> Date: Tue, 15 Feb 2022 01:59:14 +0000 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=A0=91=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=B1=BB=E6=B7=BB=E5=8A=A0=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E6=A0=B9=E8=8A=82=E7=82=B9=EF=BC=8C=E4=BB=A5=E5=8F=8A=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=AD=97=E7=AC=A6=E4=B8=B2=E7=B1=BB=E5=9E=8B=E7=9A=84?= =?UTF-8?q?=E6=A0=91=E5=9E=8B=E7=BB=93=E6=9E=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/constant/Constants.java | 10 ++++++ .../ruoyi/common/utils/TreeBuildUtils.java | 32 +++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java index 5e07c96c0..ade320c47 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java @@ -122,5 +122,15 @@ public interface Constants { */ String SYS_DICT_KEY = "sys_dict:"; + /** + * Long数据类型默认根节点 + */ + Long LongRootId = 0L; + + /** + * String数据类型默认根节点 + */ + String StringRootId = "0"; + } 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..59c00e134 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.lang.Validator; 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.constant.Constants; import lombok.AccessLevel; import lombok.NoArgsConstructor; @@ -22,7 +24,37 @@ public class TreeBuildUtils extends TreeUtil { */ public static final TreeNodeConfig DEFAULT_CONFIG = TreeNodeConfig.DEFAULT_CONFIG.setNameKey("label"); + /** + * 构建整型类型的树型结构 + * @param list 数据列表 + * @param parentId 父级ID + * @param nodeParser 节点解析 + * @param 实体 + * @return + */ public static List> build(List list, Long parentId, NodeParser nodeParser) { + // 默认设为根节点 + if (Validator.isNull(parentId)) { + parentId = Constants.LongRootId; + } + + return TreeUtil.build(list, parentId, DEFAULT_CONFIG, nodeParser); + } + + /** + * 构建字符串类型的树型结构 + * @param list 数据列表 + * @param parentId 父级ID + * @param nodeParser 节点解析 + * @param 实体 + * @return + */ + public static List> buildStrTree(List list, String parentId, NodeParser nodeParser) { + // 默认设为根节点 + if (Validator.isEmpty(parentId)) { + parentId = Constants.StringRootId; + } + return TreeUtil.build(list, parentId, DEFAULT_CONFIG, nodeParser); }