From e1dc2e04948de332fb561a7a8cc6537e7fff9d2c Mon Sep 17 00:00:00 2001 From: WenG <450292408@qq.com> Date: Mon, 5 Apr 2021 23:15:09 +0800 Subject: [PATCH] user menu --- .../route/IndexRouteController.java | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/login-base/src/main/java/ink/wgink/login/base/controller/route/IndexRouteController.java b/login-base/src/main/java/ink/wgink/login/base/controller/route/IndexRouteController.java index a3b3a25e..c52f76cd 100644 --- a/login-base/src/main/java/ink/wgink/login/base/controller/route/IndexRouteController.java +++ b/login-base/src/main/java/ink/wgink/login/base/controller/route/IndexRouteController.java @@ -1,12 +1,15 @@ package ink.wgink.login.base.controller.route; import ink.wgink.common.component.SecurityComponent; +import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.interfaces.menu.IMenuBaseService; +import ink.wgink.interfaces.role.IRoleMenuBaseService; import ink.wgink.login.base.config.properties.SystemProperties; import ink.wgink.login.base.consts.IUserCenterConst; import ink.wgink.login.base.manager.ConfigManager; import ink.wgink.pojo.bos.UserInfoBO; import ink.wgink.pojo.dtos.menu.MenuDTO; +import ink.wgink.pojo.pos.RolePO; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -14,6 +17,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.RedirectView; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; @@ -37,6 +41,8 @@ public class IndexRouteController { private SystemProperties systemProperties; @Autowired(required = false) private IMenuBaseService menuBaseService; + @Autowired(required = false) + private IRoleMenuBaseService roleMenuBaseService; @GetMapping("index") public ModelAndView goIndex() { @@ -75,7 +81,29 @@ public class IndexRouteController { } mv.addObject("ws", systemProperties.getWs()); if (menuBaseService != null) { - List menus = menuBaseService.listAllByParentId(IMenuBaseService.MENU_UNIFIED_USER); + List menus; + if (StringUtils.equalsIgnoreCase(ISystemConstant.ADMIN, userInfoBO.getUserUsername())) { + // 管理员 + List menuIds = roleMenuBaseService.listMenuId(ISystemConstant.ADMIN); + if (menuIds.isEmpty()) { + menus = menuBaseService.listAllByParentId(IMenuBaseService.MENU_UNIFIED_USER); + } else { + menus = menuBaseService.listAllByParentIdAndIds(IMenuBaseService.MENU_UNIFIED_USER, menuIds); + } + } else { + // 普通用户 + List rolePOs = securityComponent.getCurrentUser().getRoles(); + if (!rolePOs.isEmpty()) { + menus = new ArrayList<>(); + } else { + List roleIds = new ArrayList<>(); + for (RolePO rolePO : rolePOs) { + roleIds.add(rolePO.getRoleId()); + } + List menuIds = roleMenuBaseService.listMenuId(roleIds); + menus = menuBaseService.listAllByParentIdAndIds("0", menuIds); + } + } mv.addObject("menus", menus); } return mv;