构建树(一般用于层级菜单)
- 结果如图所示
public static List<Tree<String>> ldapOutees(List<LdapCatalogue> catalogueList,String parentId) {
List<TreeNode<String>> nodeList = CollUtil.newArrayList();
catalogueList.forEach(v -> {
TreeNode<String> treeNode = new TreeNode<>(Convert.toStr(v.getCode()), Convert.toStr(v.getParentId()), v.getName(), 5);
HashMap<String, Object> tagMap = new HashMap<>();
tagMap.put("dnName",v.getDnName());
tagMap.put("id",v.getId().toString());
tagMap.put("code",v.getCode());
tagMap.put("instanceType",v.getInstanceType());
tagMap.put("sourceId",v.getSourceId());
treeNode.setExtra(tagMap);
nodeList.add(treeNode);
});
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
treeNodeConfig.setIdKey("rid");
treeNodeConfig.setDeep(10);
List<Tree<String>> treeNodes = cn.hutool.core.lang.tree.TreeUtil.build(nodeList, parentId, treeNodeConfig,
(treeNode, tree) -> {
tree.setId(String.valueOf(treeNode.getId()));
tree.setParentId(String.valueOf(treeNode.getParentId()));
tree.setName(treeNode.getName());
tree.setWeight(treeNode.getWeight());
tree.putExtra("id",treeNode.getExtra().get("id").toString());
tree.putExtra("code",treeNode.getExtra().get("code"));
tree.putExtra("dnName",treeNode.getExtra().get("dnName"));
tree.putExtra("instanceType",treeNode.getExtra().get("instanceType"));
tree.putExtra("sourceId",treeNode.getExtra().get("sourceId"));
});
return treeNodes;
}