From c7dd4a195d8d893d92c49963447cdf6486844584 Mon Sep 17 00:00:00 2001 From: cjl <276999030@qq.com> Date: Fri, 20 Oct 2023 09:45:53 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/wb' into cjl --- screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java | 97 ++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 84 insertions(+), 13 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java index 161de75..74d935a 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java @@ -30,14 +30,17 @@ import com.moral.api.entity.Group; import com.moral.api.entity.Menu; import com.moral.api.entity.Organization; +import com.moral.api.entity.ResponsibilityUnit; import com.moral.api.entity.User; import com.moral.api.entity.UserGroup; import com.moral.api.entity.UserLog; import com.moral.api.mapper.MenuMapper; +import com.moral.api.mapper.ResponsibilityUnitMapper; import com.moral.api.mapper.UserGroupMapper; import com.moral.api.mapper.UserLogMapper; import com.moral.api.mapper.UserMapper; import com.moral.api.pojo.bo.UserBO; +import com.moral.api.service.ResponsibilityUnitService; import com.moral.api.service.UserService; import com.moral.api.utils.OperationLogUtils; import com.moral.constant.Constants; @@ -77,12 +80,82 @@ @Autowired private OperationLogUtils operationLogUtils; + @Autowired + private ResponsibilityUnitMapper responsibilityUnitMapper; + + @Value("${AES.KEY}") private String AESKey; @Override public UserBO selectUserInfo(Map<String, Object> parameters) { return userMapper.selectUserInfo(parameters); + } + + @Override + public Map<String, Object> loginSmallRoutine(Map<String, Object> parameters) { + UserBO userBo = selectUserInfo(parameters); + Map<String, Object> result = new HashMap<>(); + //������������ + if (userBo == null) { + result.put("code", ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode()); + result.put("msg", ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg()); + return result; + } + //������������ + String password = parameters.get("password").toString(); + //������������ + password = AESUtils.decrypt(password, AESKey); + if (!MD5Utils.saltMD5Verify(password, userBo.getPassword())) { + result.put("code", ResponseCodeEnum.PASSWORD_INVALID.getCode()); + result.put("msg", ResponseCodeEnum.PASSWORD_INVALID.getMsg()); + return result; + } + //������������������ + if (Constants.DELETE.equals(userBo.getIsDelete())) { + result.put("code", ResponseCodeEnum.ACCOUNT_IS_DELETE.getCode()); + result.put("msg", ResponseCodeEnum.ACCOUNT_IS_DELETE.getMsg()); + return result; + } + //������������������ + if (userBo.getExpireTime() != null && userBo.getExpireTime().getTime() < System.currentTimeMillis()) { + result.put("code", ResponseCodeEnum.ACCOUNT_IS_EXPIRE.getCode()); + result.put("msg", ResponseCodeEnum.ACCOUNT_IS_EXPIRE.getMsg()); + return result; + } + ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(userBo.getUnitId()); + //������������������ + Map<String, Object> userInfo = new LinkedHashMap<>(); + userInfo.put("userId", userBo.getId()); + userInfo.put("account", userBo.getAccount()); + userInfo.put("userName", userBo.getUserName()); + userInfo.put("email", userBo.getEmail()); + userInfo.put("mobile", userBo.getMobile()); + userInfo.put("unitId",userBo.getUnitId()); + userInfo.put("unName",responsibilityUnit.getAreaName()); + userInfo.put("wechat", userBo.getWechat()); + userInfo.put("expireTime", DateUtils.dateToDateString(userBo.getExpireTime())); + userInfo.put("isAdmin", userBo.getIsAdmin()); + try { + //������token������������redis + String token = TokenUtils.getToken(userBo.getId().toString(), userInfo); + result.put("token", token); + } catch (Exception e) { + log.error("token���������������" + e.getMessage()); + result.put("code", ResponseCodeEnum.TOKEN_CREATE_ERROR.getCode()); + result.put("msg", ResponseCodeEnum.TOKEN_CREATE_ERROR.getMsg()); + return result; + } + //������ + HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); + UserLog userLog = new UserLog(); + userLog.setType(Constants.LOGIN_OPERTATE_TYPE); + userLog.setIp(WebUtils.getIpAddr(request)); + userLog.setOperateId(userBo.getId()); + userLog.setOrganizationId(userBo.getOrganizationId()); + userLog.setContent("������������������" + userBo.getAccount()); + userLogMapper.insert(userLog); + return result; } @Override @@ -116,15 +189,18 @@ result.put("msg", ResponseCodeEnum.ACCOUNT_IS_EXPIRE.getMsg()); return result; } + //������������������ Map<String, Object> userInfo = new LinkedHashMap<>(); - - //������in��� + ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(userBo.getUnitId()); + //������������ userInfo.put("userId", userBo.getId()); userInfo.put("account", userBo.getAccount()); userInfo.put("userName", userBo.getUserName()); userInfo.put("email", userBo.getEmail()); userInfo.put("mobile", userBo.getMobile()); + userInfo.put("unitId",userBo.getUnitId()); + userInfo.put("unName",responsibilityUnit.getAreaName()); userInfo.put("wechat", userBo.getWechat()); userInfo.put("expireTime", DateUtils.dateToDateString(userBo.getExpireTime())); userInfo.put("isAdmin", userBo.getIsAdmin()); @@ -219,6 +295,7 @@ //������������������������������ List<Menu> nextLevelMenus = menus.stream() .filter(o -> o.getParentId().equals(menu.getId())) + .sorted(Comparator.comparing(Menu::getOrder)) .collect(Collectors.toList()); List<Map<String, Object>> list = new ArrayList<>(); if (nextLevelMenus.size() > 0) { @@ -342,7 +419,6 @@ /*String account = beforeUser.getAccount(); //account������������ user.setAccount(account);*/ - System.out.println(user); if (!ObjectUtils.isEmpty(user.getAccount())) { QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("is_delete", Constants.NOT_DELETE).eq("account", user.getAccount()); @@ -361,7 +437,6 @@ } //������������ String password = user.getPassword(); - System.out.println("password==" + password); if (!ObjectUtils.isEmpty(password)) { //������������ password = AESUtils.decrypt(password, AESKey); @@ -390,13 +465,9 @@ Date orgExpireTime = DateUtils.getDate((String) orgInfo.get("expireTime"), DateUtils.yyyy_MM_dd_HH_mm_ss_EN); if (userExpireTime != null) { if (orgExpireTime != null && userExpireTime.getTime() > orgExpireTime.getTime()) { - user.setExpireTime(orgExpireTime); - } else { - user.setExpireTime(userExpireTime); - } - } else { - if (orgExpireTime != null) { - user.setExpireTime(orgExpireTime); + result.put("code", ResponseCodeEnum.EXPIRE_BEYOND_ADMIN.getCode()); + result.put("msg", ResponseCodeEnum.EXPIRE_BEYOND_ADMIN.getMsg()); + return result; } } //������redis @@ -408,7 +479,8 @@ userMapper.updateById(user); //������ - StringBuilder content = new StringBuilder("������������������" + user.getAccount() + "->"); + String account = userMapper.selectById(userId).getAccount(); + StringBuilder content = new StringBuilder("������������������" + account + "->"); for (String key : update.keySet()) { Object afterValue = update.get(key); if (!key.equals("id") && afterValue != null) { @@ -417,7 +489,6 @@ content.append(key).append(":").append(beforeValue).append("=>").append(afterValue).append(";"); } } - HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); operationLogUtils.insertLog(content.toString(), Constants.UPDATE_OPERATE_TYPE); return result; } -- Gitblit v1.8.0