| | |
| | | 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; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | 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) { |
| | |
| | | |
| | | @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)); |
| | | } |
| | | |
| | |
| | | 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(); |
| | | } |
| | | } |
| | | |
| | | } |