From b88ace30fda6a91600ae2cab55427b88d101136e Mon Sep 17 00:00:00 2001 From: caihaohan Date: Fri, 22 Dec 2023 10:04:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BD=93=E7=B3=BB=E6=A0=91=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=A0=B9=E6=8D=AE=E5=AD=97=E6=AE=B5nodeOrder=E6=8E=92?= =?UTF-8?q?=E5=BA=8F=EF=BC=8C=E5=A6=82=E6=9E=9C=E5=AD=97=E6=AE=B5=E4=B8=BA?= =?UTF-8?q?null=E5=88=99=E8=A7=86=E4=B8=BA0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/LawsTreeNodeServiceImpl.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsTreeNodeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsTreeNodeServiceImpl.java index d9b3a92d..efa9346a 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsTreeNodeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsTreeNodeServiceImpl.java @@ -70,6 +70,7 @@ public class LawsTreeNodeServiceImpl extends ServiceImpl lawsTreeNodeModels = FindsTreeNodeChildrenUtil.wrapTreeDataToTreeList(lawsTreeNodes); + this.sortTreeNodes(lawsTreeNodeModels); // 添加我的收藏节点 if ("我的收藏".contains(nodeName) && StringUtils.isBlank(option)) { LawsTreeNodeModel myCollect = new LawsTreeNodeModel(); @@ -83,6 +84,25 @@ public class LawsTreeNodeServiceImpl extends ServiceImpl nodes) { + if (nodes == null || nodes.isEmpty()) { + return; + } + + // 对当前层级的节点按 nodeOrder 排序,将 null 视为 0 + nodes.sort(Comparator.comparingInt(node -> + node.getNodeOrder() != null ? node.getNodeOrder() : 0)); + + // 递归对每个节点的子节点进行排序 + for (LawsTreeNodeModel node : nodes) { + sortTreeNodes(node.getChildren()); + } + } + private Set findPathToRoot(List allNodes, LawsTreeNode node) { Set pathNodes = new HashSet<>(); LawsTreeNode[] currentHolder = new LawsTreeNode[1];