|  |  |  | 
|---|
|  |  |  | 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.*; | 
|---|
|  |  |  | 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 org.springframework.web.bind.annotation.*; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import javax.annotation.Resource; | 
|---|
|  |  |  | import javax.servlet.http.HttpServletRequest; | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 认证控制器 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * Created by vincent on 1/30/2024 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @RestController | 
|---|
|  |  |  | @RequestMapping("/api") | 
|---|
|  |  |  | public class AuthController extends BaseController { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private ConfigProperties configProperties; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private UserService userService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private UserLoginService userLoginService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | 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) { | 
|---|
|  |  |  | String username = param.getUsername(); | 
|---|
|  |  |  | Long hostId = param.getHostId(); | 
|---|
|  |  |  | User user = userService.getByUsername(username, hostId); | 
|---|
|  |  |  | if (user == null) { | 
|---|
|  |  |  | return R.error("账号不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!user.getStatus().equals(1)) { | 
|---|
|  |  |  | return R.error("账号被冻结"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!userService.comparePassword(user.getPassword(), param.getPassword())) { | 
|---|
|  |  |  | return R.error("密码错误"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String accessToken = JwtUtil.buildToken(new JwtSubject(username, user.getHostId()), | 
|---|
|  |  |  | configProperties.getTokenExpireTime(), configProperties.getTokenKey()); | 
|---|
|  |  |  | userLoginService.saveAsync(user.getId(), accessToken, UserLogin.TYPE_LOGIN, hostId, null, request); | 
|---|
|  |  |  | return R.ok("登录成功").add(new LoginResult(accessToken, user)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("/auth/user") | 
|---|
|  |  |  | public R userInfo() { | 
|---|
|  |  |  | return R.ok(userService.getByIdRel(getLoginUserId())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("/auth/menu") | 
|---|
|  |  |  | public R userMenu() { | 
|---|
|  |  |  | List<Menu> menus = roleMenuService.listMenuByUserId(getLoginUserId(), Menu.TYPE_MENU, getHostId()); | 
|---|
|  |  |  | return R.ok().add(Utils.toTreeData(menus, 0L, Menu::getParentId, Menu::getId, Menu::setChildren)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("/auth/host") | 
|---|
|  |  |  | public R authHost() { | 
|---|
|  |  |  | List<Host> list = hostService.list(); | 
|---|
|  |  |  | return R.ok().add(list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PreAuthorize("hasAuthority('sys:auth:user')") | 
|---|
|  |  |  | @OperationLog | 
|---|
|  |  |  | @PutMapping("/auth/user") | 
|---|
|  |  |  | public R updateInfo(@RequestBody User user) { | 
|---|
|  |  |  | user.setId(getLoginUserId()); | 
|---|
|  |  |  | // 不能修改的字段 | 
|---|
|  |  |  | user.setUsername(null); | 
|---|
|  |  |  | user.setPassword(null); | 
|---|
|  |  |  | user.setEmailVerified(null); | 
|---|
|  |  |  | user.setHostId(null); | 
|---|
|  |  |  | user.setStatus(null); | 
|---|
|  |  |  | if (userService.updateById(user)) { | 
|---|
|  |  |  | return R.ok().add(userService.getByIdRel(user.getId())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.error("保存失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PreAuthorize("hasAuthority('sys:auth:password')") | 
|---|
|  |  |  | @OperationLog | 
|---|
|  |  |  | @PutMapping("/auth/password") | 
|---|
|  |  |  | public R updatePassword(@RequestBody UpdatePasswordParam param) { | 
|---|
|  |  |  | if (Cools.isEmpty(param.getOldPassword(), param.getPassword())) { | 
|---|
|  |  |  | return R.error("参数不能为空"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Long userId = getLoginUserId(); | 
|---|
|  |  |  | if (userId == null) { | 
|---|
|  |  |  | return R.error("未登录"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!userService.comparePassword(userService.getById(userId).getPassword(), param.getOldPassword())) { | 
|---|
|  |  |  | return R.error("原密码输入不正确"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | User user = new User(); | 
|---|
|  |  |  | user.setId(userId); | 
|---|
|  |  |  | user.setPassword(userService.encodePassword(param.getPassword())); | 
|---|
|  |  |  | if (userService.updateById(user)) { | 
|---|
|  |  |  | return R.ok("修改成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ArrayList<Long> roles = new ArrayList<>(); | 
|---|
|  |  |  | for (UserRole userRole : userRoles) { | 
|---|
|  |  |  | roles.add(userRole.getRoleId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | package com.zy.asrs.wms.system.controller; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
|---|
|  |  |  | import com.zy.asrs.common.domain.CodeRes; | 
|---|
|  |  |  | import com.zy.asrs.common.domain.enums.LoginSystemType; | 
|---|
|  |  |  | import com.zy.asrs.common.utils.BarcodeUtils; | 
|---|
|  |  |  | import com.zy.asrs.common.utils.QrCode; | 
|---|
|  |  |  | import com.zy.asrs.framework.annotations.ManagerAuth; | 
|---|
|  |  |  | import com.zy.asrs.framework.common.BaseRes; | 
|---|
|  |  |  | 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.*; | 
|---|
|  |  |  | import com.zy.asrs.wms.system.license.timer.LicenseTimer; | 
|---|
|  |  |  | import com.zy.asrs.wms.system.service.*; | 
|---|
|  |  |  | import com.zy.asrs.wms.utils.JwtUtil; | 
|---|
|  |  |  | import com.zy.asrs.wms.utils.Utils; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.security.access.prepost.PreAuthorize; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.*; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import javax.annotation.Resource; | 
|---|
|  |  |  | import javax.imageio.ImageIO; | 
|---|
|  |  |  | import javax.servlet.http.HttpServletRequest; | 
|---|
|  |  |  | import javax.servlet.http.HttpServletResponse; | 
|---|
|  |  |  | import java.awt.image.BufferedImage; | 
|---|
|  |  |  | import java.io.IOException; | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 认证控制器 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * Created by vincent on 1/30/2024 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @RestController | 
|---|
|  |  |  | @RequestMapping("/api") | 
|---|
|  |  |  | public class AuthController extends BaseController { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private ConfigProperties configProperties; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private UserService userService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private UserLoginService userLoginService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private RoleMenuService roleMenuService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private HostService hostService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private UserRoleService userRoleService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private MenuService menuService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private LicenseTimer licenseTimer; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostMapping("/login") | 
|---|
|  |  |  | public R login(@RequestBody LoginParam param, HttpServletRequest request) { | 
|---|
|  |  |  | if (!licenseTimer.getSystemSupport()) {//许可证已失效 | 
|---|
|  |  |  | return R.parse(CodeRes.SYSTEM_20001); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String username = param.getUsername(); | 
|---|
|  |  |  | Long hostId = param.getHostId(); | 
|---|
|  |  |  | User user = userService.getByUsername(username, hostId); | 
|---|
|  |  |  | if (user == null) { | 
|---|
|  |  |  | return R.error("账号不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!user.getStatus().equals(1)) { | 
|---|
|  |  |  | return R.error("账号被冻结"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!userService.comparePassword(user.getPassword(), param.getPassword())) { | 
|---|
|  |  |  | return R.error("密码错误"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String accessToken = JwtUtil.buildToken(new JwtSubject(username, user.getHostId()), | 
|---|
|  |  |  | configProperties.getTokenExpireTime(), configProperties.getTokenKey()); | 
|---|
|  |  |  | userLoginService.saveAsync(user.getId(), accessToken, UserLogin.TYPE_LOGIN, hostId, null, request); | 
|---|
|  |  |  | return R.ok("登录成功").add(new LoginResult(accessToken, user)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("/auth/user") | 
|---|
|  |  |  | public R userInfo() { | 
|---|
|  |  |  | return R.ok(userService.getByIdRel(getLoginUserId())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("/auth/menu") | 
|---|
|  |  |  | public R userMenu() { | 
|---|
|  |  |  | 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)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("/auth/host") | 
|---|
|  |  |  | public R authHost() { | 
|---|
|  |  |  | List<Host> list = hostService.list(); | 
|---|
|  |  |  | return R.ok().add(list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PreAuthorize("hasAuthority('sys:auth:user')") | 
|---|
|  |  |  | @OperationLog | 
|---|
|  |  |  | @PutMapping("/auth/user") | 
|---|
|  |  |  | public R updateInfo(@RequestBody User user) { | 
|---|
|  |  |  | user.setId(getLoginUserId()); | 
|---|
|  |  |  | // 不能修改的字段 | 
|---|
|  |  |  | user.setUsername(null); | 
|---|
|  |  |  | user.setPassword(null); | 
|---|
|  |  |  | user.setEmailVerified(null); | 
|---|
|  |  |  | user.setHostId(null); | 
|---|
|  |  |  | user.setStatus(null); | 
|---|
|  |  |  | if (userService.updateById(user)) { | 
|---|
|  |  |  | return R.ok().add(userService.getByIdRel(user.getId())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.error("保存失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PreAuthorize("hasAuthority('sys:auth:password')") | 
|---|
|  |  |  | @OperationLog | 
|---|
|  |  |  | @PutMapping("/auth/password") | 
|---|
|  |  |  | public R updatePassword(@RequestBody UpdatePasswordParam param) { | 
|---|
|  |  |  | if (Cools.isEmpty(param.getOldPassword(), param.getPassword())) { | 
|---|
|  |  |  | return R.error("参数不能为空"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Long userId = getLoginUserId(); | 
|---|
|  |  |  | if (userId == null) { | 
|---|
|  |  |  | return R.error("未登录"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!userService.comparePassword(userService.getById(userId).getPassword(), param.getOldPassword())) { | 
|---|
|  |  |  | return R.error("原密码输入不正确"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | User user = new User(); | 
|---|
|  |  |  | user.setId(userId); | 
|---|
|  |  |  | user.setPassword(userService.encodePassword(param.getPassword())); | 
|---|
|  |  |  | if (userService.updateById(user)) { | 
|---|
|  |  |  | return R.ok("修改成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/code/auth") | 
|---|
|  |  |  | //    @ManagerAuth(memo = "物料编码条形码获取(type:1(条形码);2(二维码)") | 
|---|
|  |  |  | public R matCodeBarcode(@RequestParam(defaultValue = "1") Integer type | 
|---|
|  |  |  | , @RequestParam String param | 
|---|
|  |  |  | , HttpServletResponse response) throws Exception { | 
|---|
|  |  |  | response.setContentType("image/jpg"); | 
|---|
|  |  |  | if (Cools.isEmpty(param)){ | 
|---|
|  |  |  | return R.parse(BaseRes.EMPTY); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | BufferedImage img; | 
|---|
|  |  |  | if (type == 1) { | 
|---|
|  |  |  | img = BarcodeUtils.encode(param); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | img = QrCode.createImg(param); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!ImageIO.write(img, "jpg", response.getOutputStream())) { | 
|---|
|  |  |  | throw new IOException("Could not write an image of format jpg"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | response.getOutputStream().flush(); | 
|---|
|  |  |  | response.getOutputStream().close(); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|