From 3847e021b23068ba6867b75e236f4edc265b1807 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Thu, 21 Sep 2023 10:51:23 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E8=8F=9C=E5=8D=95=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/auth/LoginController.java | 80 +++++++++++++++++++ .../inout/IoOrderReviewController.java | 17 ++-- .../api/entity/auth/PdaMainItemEntity.java | 15 ++++ .../com/glxp/api/res/auth/LoginResponse.java | 14 ++++ .../mybatis/mapper/auth/SysMenuDao.xml | 3 +- 5 files changed, 117 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/glxp/api/entity/auth/PdaMainItemEntity.java diff --git a/src/main/java/com/glxp/api/controller/auth/LoginController.java b/src/main/java/com/glxp/api/controller/auth/LoginController.java index 33aac23af..814e1dcaa 100644 --- a/src/main/java/com/glxp/api/controller/auth/LoginController.java +++ b/src/main/java/com/glxp/api/controller/auth/LoginController.java @@ -36,6 +36,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import java.util.*; +import java.util.stream.Collectors; /** * 登录相关 @@ -125,6 +126,85 @@ public class LoginController extends BaseController { return ResultVOUtils.success(loginResponse); } + /** + * 用户登录 + * + * @return + */ + @PostMapping(value = "/pda/login") + public BaseResponse pdaLogin(@RequestBody @Valid LoginRequest loginRequest, + BindingResult bindingResult, + HttpServletRequest request) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + AuthAdmin authAdmin = authAdminService.findByUserName(loginRequest.getUsername()); + if (authAdmin == null) { + throw new JsonException(ResultEnum.DATA_NOT, "用户名或密码错误"); + } + + if (!PasswordUtils.authAdminPwd(loginRequest.getPassword()).equals(authAdmin.getPassWord())) { + throw new JsonException(ResultEnum.DATA_NOT, "用户名或密码错误"); + } + if (authAdmin.getUserFlag() == 0) { + throw new JsonException(ResultEnum.DATA_NOT, "该用户已被禁用!"); + } + SysPdaKeyEntity sysPdaKeyEntity = sysPdaKeyService.findDeviceByImei(loginRequest.getImei()); + if (sysPdaKeyEntity == null) { + return ResultVOUtils.error(410, "该设备未注册"); + } else if (sysPdaKeyEntity.getIsCheck() == 0) { + return ResultVOUtils.error(411, "该设备登记审核中,请等待,或联系管理员"); + } else if (sysPdaKeyEntity.getIsCheck() == 2) { + return ResultVOUtils.error(412, "该设备被拒绝登录,请联系管理员!"); + } + + // 更新登录状态 + AuthAdmin authAdminUp = new AuthAdmin(); + authAdminUp.setId(authAdmin.getId()); + authAdminUp.setLastLoginTime(new Date()); + authAdminUp.setLastLoginIp(IpUtils.getIpAddr(request)); + authAdminService.updateAuthAdmin(authAdminUp); + + // 登录成功后获取权限,这里面会设置到缓存 +// authLoginService.listRuleByAdminId(authAdmin.getId()); + + Map claims = new HashMap<>(); + claims.put("admin_id", authAdmin.getId()); + String token = JwtUtils.createToken(claims, 86400L); // 一天后过期 + + Map map = new HashMap<>(); + map.put("id", authAdmin.getId()); + map.put("token", token); + map.put("time", MsDateUtil.getDateTime()); + LoginResponse loginResponse = new LoginResponse(); + loginResponse.setId(authAdmin.getId() + ""); + loginResponse.setToken(token); + loginResponse.setDept(authAdmin.getLocDeptCode()); + loginResponse.setDeptName(authAdmin.getDeptName()); + + List sysMenus = menuService.selectMenuList(authAdmin.getId()); +// .stream().filter(item -> item.getMenuName().equals("单据管理")).findFirst().get().getChildren(). + List menus = sysMenus.stream().filter( + item -> + item.getComponent() != null && (item.getComponent().equals("inout/IoCreateScanOrder") + || item.getComponent().equals("inout/IoDealOrder") + || item.getComponent().equals("inout/IoDealCheckOrder") + || item.getComponent().equals("inout/IoCheckSuccessOrder") + || item.getComponent().equals("inout/IoCheckAuditOrder") + ) + + ).distinct().map(item -> + new PdaMainItemEntity(item.getMenuName(), item.getComponent()) + ).collect(Collectors.toList()); + loginResponse.setMenus(menus); + + logininforService.recordLogininfor(authAdmin.getEmployeeName(), Constant.LOGIN_SUCCESS, "登录成功!", request); + + return ResultVOUtils.success(loginResponse); + } + + /** * 用户登录 * diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java index 8ac36cbba..62f9d1eb6 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java @@ -288,21 +288,16 @@ public class IoOrderReviewController extends BaseController { redisUtil.del(ConstantStatus.REDIS_BILLNO_CODES + orderEntity.getBillNo()); return ResultVOUtils.success("验收成功!"); } else { - if (orderEntity.getFromType() == ConstantStatus.FROM_UDISP) { - ReviewFinishRequest reviewFinishRequest = new ReviewFinishRequest(); - BeanUtil.copyProperties(updateExportStatusRequest, reviewFinishRequest); - updateSpmsStauts(reviewFinishRequest); - } - + ReviewFinishRequest reviewFinishRequest = new ReviewFinishRequest(); + BeanUtil.copyProperties(updateExportStatusRequest, reviewFinishRequest); + updateSpmsStauts(reviewFinishRequest); return updateReview(authAdmin, orderEntity); } } } else { - if (orderEntity.getFromType() == ConstantStatus.FROM_UDISP) { - ReviewFinishRequest reviewFinishRequest = new ReviewFinishRequest(); - BeanUtil.copyProperties(updateExportStatusRequest, reviewFinishRequest); - updateSpmsStauts(reviewFinishRequest); - } + ReviewFinishRequest reviewFinishRequest = new ReviewFinishRequest(); + BeanUtil.copyProperties(updateExportStatusRequest, reviewFinishRequest); + updateSpmsStauts(reviewFinishRequest); return updateReview(authAdmin, orderEntity); } diff --git a/src/main/java/com/glxp/api/entity/auth/PdaMainItemEntity.java b/src/main/java/com/glxp/api/entity/auth/PdaMainItemEntity.java new file mode 100644 index 000000000..36c7490fe --- /dev/null +++ b/src/main/java/com/glxp/api/entity/auth/PdaMainItemEntity.java @@ -0,0 +1,15 @@ +package com.glxp.api.entity.auth; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PdaMainItemEntity { + + private String name; + private String key; + +} diff --git a/src/main/java/com/glxp/api/res/auth/LoginResponse.java b/src/main/java/com/glxp/api/res/auth/LoginResponse.java index ec0a6b6ee..00b9a1811 100644 --- a/src/main/java/com/glxp/api/res/auth/LoginResponse.java +++ b/src/main/java/com/glxp/api/res/auth/LoginResponse.java @@ -1,7 +1,10 @@ package com.glxp.api.res.auth; +import com.glxp.api.entity.auth.PdaMainItemEntity; import lombok.Data; +import java.util.List; + @Data public class LoginResponse { @@ -12,4 +15,15 @@ public class LoginResponse { private String dept; private String deptName; + /** + * inout/IoCreateScanOrder + * inout/IoDealOrder + * inout/IoDealCheckOrder + * inout/IoCheckSuccessOrder + * inout/IoCheckAuditOrder + * 新增扫码单据 + */ + private List menus; + + } diff --git a/src/main/resources/mybatis/mapper/auth/SysMenuDao.xml b/src/main/resources/mybatis/mapper/auth/SysMenuDao.xml index 901aae348..2a22890ea 100644 --- a/src/main/resources/mybatis/mapper/auth/SysMenuDao.xml +++ b/src/main/resources/mybatis/mapper/auth/SysMenuDao.xml @@ -84,7 +84,7 @@ select * FROM auth_menu - order by order_num + order by parent_id, order_num @@ -95,6 +95,7 @@ select * FROM auth_menu where menu_name =#{menu_name} +