user menu

This commit is contained in:
WenG 2021-04-05 23:15:09 +08:00
parent 965d9dd0d1
commit e1dc2e0494

View File

@ -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<MenuDTO> menus = menuBaseService.listAllByParentId(IMenuBaseService.MENU_UNIFIED_USER);
List<MenuDTO> menus;
if (StringUtils.equalsIgnoreCase(ISystemConstant.ADMIN, userInfoBO.getUserUsername())) {
// 管理员
List<String> 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<RolePO> rolePOs = securityComponent.getCurrentUser().getRoles();
if (!rolePOs.isEmpty()) {
menus = new ArrayList<>();
} else {
List<String> roleIds = new ArrayList<>();
for (RolePO rolePO : rolePOs) {
roleIds.add(rolePO.getRoleId());
}
List<String> menuIds = roleMenuBaseService.listMenuId(roleIds);
menus = menuBaseService.listAllByParentIdAndIds("0", menuIds);
}
}
mv.addObject("menus", menus);
}
return mv;