From 83b51a5a0774ea8ecb9a06304af3b956a21307c8 Mon Sep 17 00:00:00 2001 From: pjb <123456> Date: 星期六, 08 三月 2025 09:06:55 +0800 Subject: [PATCH] CUT库条码T开头,截取后10位 --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/AuthController.java | 518 +++++++++++++++++++++++++++++---------------------------- 1 files changed, 263 insertions(+), 255 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 082f8d1..9b2fcc2 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,255 +1,263 @@ -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.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.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.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; - - @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() { - 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("鍘熷瘑鐮佽緭鍏ヤ笉姝g‘"); - } - 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(); - } - -} +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("鍘熷瘑鐮佽緭鍏ヤ笉姝g‘"); + } + 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(); + } + +} -- Gitblit v1.9.1