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 | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 109 insertions(+), 9 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 02cd552..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 @@ -1,21 +1,19 @@ package com.zy.asrs.wms.system.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zy.asrs.common.domain.enums.LoginSystemType; +import com.zy.asrs.framework.annotations.ManagerAuth; import com.zy.asrs.framework.common.Cools; import com.zy.asrs.framework.common.R; +import com.zy.asrs.framework.exception.CoolException; import com.zy.asrs.wms.common.annotation.OperationLog; import com.zy.asrs.wms.common.config.ConfigProperties; import com.zy.asrs.wms.common.security.JwtSubject; import com.zy.asrs.wms.system.controller.param.LoginParam; import com.zy.asrs.wms.system.controller.param.UpdatePasswordParam; import com.zy.asrs.wms.system.controller.result.LoginResult; -import com.zy.asrs.wms.system.entity.Host; -import com.zy.asrs.wms.system.entity.Menu; -import com.zy.asrs.wms.system.entity.User; -import com.zy.asrs.wms.system.entity.UserLogin; -import com.zy.asrs.wms.system.service.HostService; -import com.zy.asrs.wms.system.service.RoleMenuService; -import com.zy.asrs.wms.system.service.UserLoginService; -import com.zy.asrs.wms.system.service.UserService; +import com.zy.asrs.wms.system.entity.*; +import com.zy.asrs.wms.system.service.*; import com.zy.asrs.wms.utils.JwtUtil; import com.zy.asrs.wms.utils.Utils; import org.springframework.security.access.prepost.PreAuthorize; @@ -23,6 +21,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; import java.util.List; /** @@ -44,6 +43,10 @@ private RoleMenuService roleMenuService; @Resource private HostService hostService; + @Resource + private UserRoleService userRoleService; + @Resource + private MenuService menuService; @PostMapping("/login") public R login(@RequestBody LoginParam param, HttpServletRequest request) { @@ -72,7 +75,21 @@ @GetMapping("/auth/menu") public R userMenu() { - List<Menu> menus = roleMenuService.listMenuByUserId(getLoginUserId(), Menu.TYPE_MENU); + 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)); } @@ -122,4 +139,87 @@ return R.error("淇敼澶辫触"); } + @GetMapping("/auth/router") + public R router() { + List<UserRole> userRoles = userRoleService.list(new LambdaQueryWrapper<UserRole>().eq(UserRole::getUserId, getLoginUserId())); + 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<>(); + 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()); + } + } + } + + List<Menu> menuList = menuService.list(new LambdaQueryWrapper<Menu>() + .in(Menu::getId, menus) + .eq(Menu::getType, Menu.TYPE_MENU) + .orderByAsc(Menu::getId)); + + return R.ok().add(menuList); + } + + @RequestMapping("/show/host.action") + @ManagerAuth + public R showHosts() { + Long hostId = getHostId(); + String hostName = null; + if (hostId != null) { + Host host = hostService.getById(hostId); + if (host != null) { + hostName = host.getName(); + } + } + boolean root = false; + List<Role> roles = userRoleService.listByUserId(getLoginUserId()); + for (Role role : roles) { + if (role.getId() == 1) { + root = true; + break; + } + } + return R.ok().add(Cools + .add("root", root) + .add("host", hostId == null) + .add("hostId", hostId) + .add("hostName", hostName) + ); + } + + @RequestMapping(value = "/root/change/host/auth") + @ManagerAuth + public R rootChangeHost(@RequestParam Long hostId) { + UserLogin userLogin = userLoginService.superFindByUserId(getLoginUserId(), String.valueOf(LoginSystemType.WMS)); + if (userLogin != null) { + userLogin.setHostId(hostId); + if (!userLoginService.updateById(userLogin)) { + throw new CoolException("淇敼鍟嗘埛澶辫触"); + } + return R.ok(); + } else { + return R.error(); + } + } + } -- Gitblit v1.9.1