public class Menu{
private Integer id;
private String menuId;
private String name;
private String pId;
private String pName;
private List<Menu> childs;
}
@Select("select * from menu")
List<Menu> getTree();
@Override
public List<Menu> getTree() {
List<Menu> list = menuMapper.getTree();
ArrayList<Menu> menus = new ArrayList<>();
for (Menu menu: list) {
if(menu.getpName() == null ){
menus.add(menu);
}
}
for (Menu menu: menus) {
menu.setChilds(getChild(menu.getMenuId(),list) );
}
return menus;
}
private List<Menu> getChild(String pid, List<Menu> menuList){
List<Menu> childs = new ArrayList<>();
for (Menu menu: menuList) {
if(menu.getpName() != null){
if(menu.getpId().equals(pid)){
childs.add(menu);
}
}
}
for (Menu menu: childs) {
menu.setChilds(getChild(menu.getMenuId(), menuList));
}
if( childs.size() == 0 ){
return null;
}
return childs;
}