From 0c183798fde1a5c413e83b18dd60d9ba9b81a341 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期四, 04 七月 2024 13:40:02 +0800 Subject: [PATCH] # --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/AuthController.java | 38 +++++++++++++++++++++++++++++++++----- 1 files changed, 33 insertions(+), 5 deletions(-) diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/AuthController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/AuthController.java index 8474230..8b4a520 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/AuthController.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/AuthController.java @@ -75,7 +75,21 @@ @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)); } @@ -131,16 +145,30 @@ 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()); + } } } -- Gitblit v1.9.1