删除 MenuUtil
parent
b91ab22354
commit
8414fcb010
|
@ -1,61 +0,0 @@
|
||||||
package xyz.zhouxy.plusone.system.application.common.util;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import xyz.zhouxy.plusone.domain.IWithOrderNumber;
|
|
||||||
import xyz.zhouxy.plusone.system.application.query.result.MenuViewObject;
|
|
||||||
import xyz.zhouxy.plusone.system.domain.model.menu.Menu.MenuType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 菜单工具类
|
|
||||||
*
|
|
||||||
* @author <a href="https://gitee.com/zhouxy108">ZhouXY</a>
|
|
||||||
*/
|
|
||||||
public class MenuUtil {
|
|
||||||
private MenuUtil() {
|
|
||||||
throw new IllegalStateException("Utility class");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 构建菜单树
|
|
||||||
*
|
|
||||||
* @param allMenus 菜单列表
|
|
||||||
* @return 菜单树
|
|
||||||
*/
|
|
||||||
public static List<MenuViewObject> buildMenuTree(Collection<MenuViewObject> allMenus) {
|
|
||||||
// 先排序,保证添加到 rootMenus 中的顺序,以及 addChild 添加的子菜单的顺序
|
|
||||||
allMenus = allMenus.stream()
|
|
||||||
.sorted(Comparator.comparing(IWithOrderNumber::getOrderNumber))
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
// 一级菜单
|
|
||||||
List<MenuViewObject> rootMenus = new ArrayList<>();
|
|
||||||
// key: 菜单 id; value: 菜单对象. 方便根据 id 查找相应对象。
|
|
||||||
Map<Long, MenuViewObject> menuListMap = new HashMap<>();
|
|
||||||
|
|
||||||
for (var menu : allMenus) {
|
|
||||||
// 添加 MENU_LIST 到 map 中,方便后面调用对象的方法
|
|
||||||
if (menu.getType() == MenuType.MENU_LIST.ordinal()) {
|
|
||||||
menuListMap.put(menu.getId(), menu);
|
|
||||||
}
|
|
||||||
// 一级菜单
|
|
||||||
if (menu.getParentId() == 0) {
|
|
||||||
rootMenus.add(menu);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (var menu : allMenus) {
|
|
||||||
var parent = menuListMap.getOrDefault(menu.getParentId(), null);
|
|
||||||
// 父菜单存在于 map 中,调用父菜单的 addChild 方法将当前菜单添加为父菜单的子菜单。
|
|
||||||
if (parent != null) {
|
|
||||||
parent.addChild(menu);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return rootMenus;
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue