实体类
@Data
public class MenuDto {
private String menuId;
private String menuCode;
private String menuName;
private String menuDescription;
private List<MenuDto> children;
}
Mappr层
List<MenuDto> selectAll();
业务层
public List<MenuDto> selectAll() {
List<MenuDto> menuList = portalMenuMapper.selectAll();
List<MenuDto> treeList = new ArrayList<>();
for (int i = 0; i < menuList.size(); i++) {
if ("0".equals(menuList.get(i).getMenuParentId())) {
menuList.get(i).setChildren(new ArrayList<>());
treeList.add(menuList.get(i));
}
}
for (MenuDto menuDto : menuList) {
List<MenuDto> child = getChild(menuDto.getMenuId(), menuList);
if (child != null) {
menuDto.setChildren(child);
}
}
return treeList,;
}
private static List<MenuDto> getChild(String id, List<MenuDto> rootMenu) {
List<MenuDto> childList = new ArrayList<>();
for (MenuDto menu : rootMenu) {
if (StringUtils.isNotBlank(menu.getMenuParentId())) {
if (menu.getMenuParentId().equals(id)) {
menu.setChildren(new ArrayList<>());
childList.add(menu);
}
}
}
for (MenuDto menu : childList) {
if (StringUtils.isBlank(menu.getRouteLink())) {
List<MenuDto> child = getChild(menu.getMenuId(), rootMenu);
menu.setChildren(child);
}
}
if (childList.size() == 0) {
return null;
}
return childList;
}