优化:减少菜单树的build次数

This commit is contained in:
shenghao 2021-12-16 17:55:57 +08:00
parent d27d349b06
commit 96f0cfd759

View File

@ -75,8 +75,8 @@ public class TreeBuildFactory<T extends BaseTreeNode> {
if (ObjectUtil.isNotEmpty(nodeSubLists)) { if (ObjectUtil.isNotEmpty(nodeSubLists)) {
nodeSubLists.forEach(t -> this.buildChildNodes(totalNodes, t, CollectionUtil.newArrayList())); nodeSubLists.forEach(t -> this.buildChildNodes(totalNodes, t, CollectionUtil.newArrayList()));
} }
childNodeLists.addAll(nodeSubLists); // childNodeLists.addAll(nodeSubLists);
node.setChildren(childNodeLists); node.setChildren(nodeSubLists);
} }
/** /**
@ -104,8 +104,9 @@ public class TreeBuildFactory<T extends BaseTreeNode> {
* @date 2020/4/5 14:13 * @date 2020/4/5 14:13
*/ */
private List<T> executeBuilding(List<T> nodes) { private List<T> executeBuilding(List<T> nodes) {
nodes.forEach(t -> this.buildChildNodes(nodes, t, CollectionUtil.newArrayList())); List<T> parentNodes = afterBuild(nodes);
return nodes; parentNodes.forEach(t -> this.buildChildNodes(nodes, t, CollectionUtil.newArrayList()));
return parentNodes;
} }
/** /**