一般我们都习惯于自己手写工具类生成树形结构,Hutool自带的TreeUtil其实已经基本够用了。
1.引入依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.17</version>
</dependency>
2.代码
@GetMapping("tree")
@ResponseBody
@ApiOperation("树形")
public Result tree(){
List<Dept> depts = deptService.list();
//配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
treeNodeConfig.setIdKey("deptId");
// 最大递归深度
treeNodeConfig.setDeep(3);
treeNodeConfig.setParentIdKey("parentId");
//转换器
List<Tree<String>> treeNodes = TreeUtil.build(depts, "0", treeNodeConfig,
(treeNode, tree) -> {
tree.setId(treeNode.getDeptId().toString());
tree.setParentId(treeNode.getParentId().toString());
// tree.setWeight(treeNode.getStatus());
tree.setName(treeNode.getDeptName());
// // 扩展属性 ...
tree.putExtra("extraField", 666);
// tree.putExtra("other", new Object());
}
);
return Result.ok().data(treeNodes);
}
3.测试