Commit 3b55a0be authored by 李德才's avatar 李德才

一级菜单为空造成程序空指针

parent d1c486e7
...@@ -180,44 +180,52 @@ public class MenuController extends Controller { ...@@ -180,44 +180,52 @@ public class MenuController extends Controller {
} }
public void getMenuGroup() { public void getMenuGroup() {
try {
String userName = this.getAttrForStr("username"); String userName = this.getAttrForStr("username");
Integer userId = InfoUser.getUser(userName).getId(); Integer userId = InfoUser.getUser(userName).getId();
List<Menu> allMenuList=null ; List<Menu> allMenuList = null;
if("admin".equals(userName)) { if ("admin".equals(userName)) {
allMenuList = new Menu().dao().template("getMenuAll").find(); allMenuList = new Menu().dao().template("getMenuAll").find();
}else { } else {
allMenuList = new Menu().dao().template("getMenuGroup", Kv.by("userId", userId)).find(); allMenuList = new Menu().dao().template("getMenuGroup", Kv.by("userId", userId)).find();
} }
List<System> systems = System.dao.template("getSystems").find(); List<System> systems = System.dao.template("getSystems").find();
Map<Integer, System> systemMap = systems.stream().collect(Collectors.toMap(System::getId, System -> System)); Map<Integer, System> systemMap = systems.stream().collect(Collectors.toMap(System::getId, System -> System));
List<MenuStar> stars = MenuStar.dao.template("getMenuStar", userId).find(); List<MenuStar> stars = MenuStar.dao.template("getMenuStar", userId).find();
// 系统中的菜单,用于系统正常跳转 // 系统中的菜单,用于系统正常跳转
Map<String, Map<String, List<Menu>>> menuGroup = new LinkedHashMap<>(); Map<String, Map<String, List<Menu>>> menuGroup = new LinkedHashMap<>();
// 页面中显示的菜单,过滤隐藏的菜单 // 页面中显示的菜单,过滤隐藏的菜单
Map<String, Map<String, List<Menu>>> viewApps = new LinkedHashMap<>(); Map<String, Map<String, List<Menu>>> viewApps = new LinkedHashMap<>();
allMenuList.forEach(menu -> { for (Menu menu : allMenuList) {
// 处理菜单属性 // 处理菜单属性
System system = systemMap.get(menu.getSystemId()); System system = systemMap.get(menu.getSystemId());
// CP-1679 lidecai 20201211
if (system == null || menu.getFirstLevelName() == null) {
continue;
}
menu.put("system", system.getName()); menu.put("system", system.getName());
menu.put("url", system.getUrl()); menu.put("url", system.getUrl());
// 过滤不需要显示的菜单 // 过滤不需要显示的菜单
if (menu.getHidden() == null || menu.getHidden() != 1) { if (menu.getHidden() == null || menu.getHidden() != 1) {
menu.put("star", exist(menu.getId(), stars)); menu.put("star", exist(menu.getId(), stars));
// 一级菜单组 // 一级菜单组
viewApps.putIfAbsent(menu.getFirstLevelName()==null?"":menu.getFirstLevelName(), new HashMap<String, List<Menu>>()); viewApps.putIfAbsent(menu.getFirstLevelName() == null ? "" : menu.getFirstLevelName(),new HashMap<String, List<Menu>>());
// 二级菜单组 // 二级菜单组
viewApps.get(menu.getFirstLevelName()).putIfAbsent(menu.getSecondLevelName()==null?"":menu.getSecondLevelName(), new ArrayList<Menu>()); viewApps.get(menu.getFirstLevelName()).putIfAbsent(menu.getSecondLevelName() == null ? "" : menu.getSecondLevelName(),new ArrayList<Menu>());
// 最终菜单 // 最终菜单
viewApps.get(menu.getFirstLevelName()).get(menu.getSecondLevelName()==null?"":menu.getSecondLevelName()).add(menu); viewApps.get(menu.getFirstLevelName()).get(menu.getSecondLevelName() == null ? "" : menu.getSecondLevelName()).add(menu);
} }
// 一级菜单组 // 一级菜单组
menuGroup.putIfAbsent(menu.getFirstLevelName()==null?"":menu.getFirstLevelName(), new HashMap<String, List<Menu>>()); menuGroup.putIfAbsent(menu.getFirstLevelName() == null ? "" : menu.getFirstLevelName(),new HashMap<String, List<Menu>>());
// 二级菜单组 // 二级菜单组
menuGroup.get(menu.getFirstLevelName()).putIfAbsent(menu.getSecondLevelName(), new ArrayList<Menu>()); menuGroup.get(menu.getFirstLevelName()).putIfAbsent(menu.getSecondLevelName(), new ArrayList<Menu>());
// 最终菜单 // 最终菜单
menuGroup.get(menu.getFirstLevelName()).get(menu.getSecondLevelName()).add(menu); menuGroup.get(menu.getFirstLevelName()).get(menu.getSecondLevelName()).add(menu);
}); }
renderJson(Ret.ok("apps", menuGroup).set("viewApps", viewApps).set("allMenu", allMenuList)); renderJson(Ret.ok("apps", menuGroup).set("viewApps", viewApps).set("allMenu", allMenuList));
} catch (Exception e) {
e.printStackTrace();
renderJson(Ret.fail("msg", e.getMessage()));
}
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment