引言
- 通用于菜单树、机构树、组织树等
方法
/**
* 返回层级结构树
*/
public List<实体> getTree() {
//查询所有数据
List<实体> allList = userMapper.selectList(Wrappers.lambdaQuery());
// 生成菜单树
return getChild(0, allList);
}
/**
* 调用递归
*/
private List<实体> getChild(int id, List<实体> allList) {
List<实体> array = new ArrayList<>();
allList.forEach(list -> {
if (!id.equals(list.getPid())) return;
list.setChildren(getChild(list.getId(), allList));
array.add(list);
});
return ObjectUtil.isEmpty(array) ? null : array;
}