public static List<SysMenu> makeTree(List<SysMenu> menuList, Integer pid) {
/**
* 目录结构是有标识的,顺序结构
* 从最开始出发,条件过滤出每一层根节点的目录
* 遍历每一层的根节点
* 先将每个根的局部信息保存起来,再从以余下的目录中寻找以当前根节点为父节点的子节点
*/
List<SysMenu> list = new ArrayList<>();
Optional.ofNullable(menuList).orElse(new ArrayList<>())
.stream()
.filter(item -> item != null && item.getParentId() == pid)
.forEach(dom -> {
SysMenu menu = new SysMenu();
BeanUtils.copyProperties(dom, menu);
List<SysMenu> menus = makeTree(menuList, dom.getMenuId());
menu.setChildren(menus);
list.add(menu);
});
return list;
}
目录工具类
最新推荐文章于 2024-09-02 16:33:05 发布