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];