public List<menu> getMenuTree() {
List<menu> list = menuService.findAll();
List<menu> baseLists = new ArrayList<>();
List<menu> result = new ArrayList<>();
// 总菜单,查出一级菜单,一级菜单没有父id(判断条件可以改为pid为0)
for (menu e : list) {
if (e.getPid() == null) {
baseLists.add(e);
}
}
// 遍历一级菜单
for (menu e : baseLists) {
// 将子菜单放进进一级菜单里面
e.setChilds(getChild(e.getId(), list));
result.add(e);
}
return result;
}
// 获取子级菜单
private List<menu> getChild(String pid, List<menu> menus) {
List<menu> childs = new ArrayList<>();
for (menu e : menus) {
if (e.getPid() != null) {
if (e.getPid().equals(pid)) {
// 子菜单的下级菜单
e.setChilds(getChild(e.getId(), menus));
childs.add(e);
}
}
}
//如果没有子级菜单就停止查找
if (childs.size() == 0) {
return null;
}
return childs;
}
}
递归拼装无限层级菜单树
猜你喜欢
转载自blog.csdn.net/qq_37126480/article/details/104524341
今日推荐
周排行