| | |
| | | |
| | | @GetMapping("/auth/menu") |
| | | public R userMenu() { |
| | | List<Menu> menus = roleMenuService.listMenuByUserId(getLoginUserId(), Menu.TYPE_MENU, getHostId()); |
| | | boolean superRole = false;//超级管理员 |
| | | User loginUser = getLoginUser(); |
| | | List<Role> roles = userRoleService.listByUserId(loginUser.getId()); |
| | | for (Role role : roles) { |
| | | if (role.getId() == 1) { |
| | | superRole = true; |
| | | } |
| | | } |
| | | |
| | | List<Menu> menus = null; |
| | | if (superRole) { |
| | | menus = roleMenuService.listMenuByUserId(null, Menu.TYPE_MENU, getHostId()); |
| | | }else { |
| | | menus = roleMenuService.listMenuByUserId(getLoginUserId(), Menu.TYPE_MENU, getHostId()); |
| | | } |
| | | return R.ok().add(Utils.toTreeData(menus, 0L, Menu::getParentId, Menu::getId, Menu::setChildren)); |
| | | } |
| | | |
| | |
| | | if (userRoles.isEmpty()) { |
| | | return R.error(); |
| | | } |
| | | |
| | | boolean superRole = false;//超级管理员 |
| | | ArrayList<Long> roles = new ArrayList<>(); |
| | | for (UserRole userRole : userRoles) { |
| | | roles.add(userRole.getRoleId()); |
| | | if (userRole.getRoleId() == 1) { |
| | | superRole = true; |
| | | } |
| | | } |
| | | |
| | | ArrayList<Long> menus = new ArrayList<>(); |
| | | List<RoleMenu> roleMenus = roleMenuService.list(new LambdaQueryWrapper<RoleMenu>().in(RoleMenu::getRoleId, roles)); |
| | | for (RoleMenu roleMenu : roleMenus) { |
| | | if(!menus.contains(roleMenu.getMenuId())) { |
| | | menus.add(roleMenu.getMenuId()); |
| | | if(superRole) { |
| | | List<Menu> allMenus = menuService.selectByHostId(getHostId()); |
| | | for (Menu menu : allMenus) { |
| | | if(!menus.contains(menu.getId())) { |
| | | menus.add(menu.getId()); |
| | | } |
| | | } |
| | | }else { |
| | | List<RoleMenu> roleMenus = roleMenuService.list(new LambdaQueryWrapper<RoleMenu>().in(RoleMenu::getRoleId, roles)); |
| | | for (RoleMenu roleMenu : roleMenus) { |
| | | if(!menus.contains(roleMenu.getMenuId())) { |
| | | menus.add(roleMenu.getMenuId()); |
| | | } |
| | | } |
| | | } |
| | | |