feat: 体系树支持根据字段nodeOrder排序,如果字段为null则视为0
This commit is contained in:
+20
@@ -70,6 +70,7 @@ public class LawsTreeNodeServiceImpl extends ServiceImpl<LawsTreeNodeMapper, Law
|
||||
}
|
||||
// 调用wrapTreeDataToTreeList方法生成树状数据
|
||||
List<LawsTreeNodeModel> 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<LawsTreeNodeMapper, Law
|
||||
return lawsTreeNodeModels;
|
||||
}
|
||||
|
||||
/**
|
||||
* 对树形结构中的每个节点的子节点按照 nodeOrder 进行排序
|
||||
* @param nodes 树节点列表
|
||||
*/
|
||||
public void sortTreeNodes(List<LawsTreeNodeModel> 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<LawsTreeNode> findPathToRoot(List<LawsTreeNode> allNodes, LawsTreeNode node) {
|
||||
Set<LawsTreeNode> pathNodes = new HashSet<>();
|
||||
LawsTreeNode[] currentHolder = new LawsTreeNode[1];
|
||||
|
||||
Reference in New Issue
Block a user