From cfcc6584f71d9ca6aacbbbb4318d12ec665c8b5c Mon Sep 17 00:00:00 2001 From: caihaohan Date: Tue, 8 Oct 2024 11:40:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=BE=81=E6=B1=82=E6=84=8F=E8=A7=81?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E8=BD=AC=E5=8A=9E=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/service/impl/LoginServiceImpl.java | 63 ++++++++++--------- .../common/RevisionTaskNodeIdConstant.java | 4 +- .../service/impl/EsRevisionServiceImpl.java | 2 + 3 files changed, 37 insertions(+), 32 deletions(-) diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java index 505af0e7..ecf54300 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java @@ -1,6 +1,7 @@ package com.jero.modules.system.service.impl; import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.asymmetric.RSA; import com.alibaba.fastjson.JSONObject; import com.aliyuncs.exceptions.ClientException; @@ -94,22 +95,22 @@ public class LoginServiceImpl implements ILoginService { String rsaPublicKey = sysLoginModel.getRsaPublicKey(); String rsaPrivateKey = redisUtil.get(rsaPublicKey) != null ? String.valueOf(redisUtil.get(rsaPublicKey)) : null; -// if(StrUtil.isEmpty(rsaPrivateKey)){ -// return Result.error(CommonConstant.SC_RSA_TIMEOUT_600, "页面过期,将刷新页面"); -// } -// -// String captcha = sysLoginModel.getCaptcha(); -// if(StringUtils.isBlank(captcha)){ -// return Result.error("验证码无效"); -// } -// String lowerCaseCaptcha = captcha.toLowerCase(); -// String realKey = MD5Util.MD5Encode(lowerCaseCaptcha + sysLoginModel.getCheckKey(), UTF_8); -// Object checkCode = redisUtil.get(realKey); -// // 验证码前后端比较 -// if(checkCode == null || !checkCode.toString().equals(lowerCaseCaptcha)) { -// return Result.error("验证码错误"); -// } -// redisUtil.del(realKey); + if(StrUtil.isEmpty(rsaPrivateKey)){ + return Result.error(CommonConstant.SC_RSA_TIMEOUT_600, "页面过期,将刷新页面"); + } + + String captcha = sysLoginModel.getCaptcha(); + if(StringUtils.isBlank(captcha)){ + return Result.error("验证码无效"); + } + String lowerCaseCaptcha = captcha.toLowerCase(); + String realKey = MD5Util.MD5Encode(lowerCaseCaptcha + sysLoginModel.getCheckKey(), UTF_8); + Object checkCode = redisUtil.get(realKey); + // 验证码前后端比较 + if(checkCode == null || !checkCode.toString().equals(lowerCaseCaptcha)) { + return Result.error("验证码错误"); + } + redisUtil.del(realKey); try { //解密获取密码和用户名 password = CommonUtils.decryptBtRsaPriKey(password, rsaPrivateKey); @@ -137,21 +138,21 @@ public class LoginServiceImpl implements ILoginService { if (retryCount >= RETRY_LOGIN_MAX_COUNT){ return Result.error("密码错误次数过多,请15分钟后重试"); } -// //2. 校验用户名或密码是否正确 -// String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt()); -// String syspassword = sysUser.getPassword(); -// if (!syspassword.equals(userpassword)) { -// // 重试登录次数加一 -// retryCount++; -// this.setRetryInfoToRedis(username, retryCount); -// String msg = retryCount == RETRY_LOGIN_MAX_COUNT ? "密码错误次数过多,请稍后重试":"用户名或密码错误,剩余可登录次数:"+(RETRY_LOGIN_MAX_COUNT - retryCount); -// return Result.error(msg); -// } -// //登录成功,清除错误登录次数 -// redisUtil.del(RETRY_LOGIN_PREFIX + username); -// if (checkSysPermission(username)) { -// return Result.error("该用户无权限,请联系管理员!"); -// } + //2. 校验用户名或密码是否正确 + String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt()); + String syspassword = sysUser.getPassword(); + if (!syspassword.equals(userpassword)) { + // 重试登录次数加一 + retryCount++; + this.setRetryInfoToRedis(username, retryCount); + String msg = retryCount == RETRY_LOGIN_MAX_COUNT ? "密码错误次数过多,请稍后重试":"用户名或密码错误,剩余可登录次数:"+(RETRY_LOGIN_MAX_COUNT - retryCount); + return Result.error(msg); + } + //登录成功,清除错误登录次数 + redisUtil.del(RETRY_LOGIN_PREFIX + username); + if (checkSysPermission(username)) { + return Result.error("该用户无权限,请联系管理员!"); + } //用户登录信息 userInfo(sysUser, result); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/common/RevisionTaskNodeIdConstant.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/common/RevisionTaskNodeIdConstant.java index e25fa39a..e73bcbe2 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/common/RevisionTaskNodeIdConstant.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/common/RevisionTaskNodeIdConstant.java @@ -14,8 +14,10 @@ public class RevisionTaskNodeIdConstant { public static final String ADVICE_COLLECT = "Activity_1riqzkp"; /** 法规工程师派号 */ public static final String SET_STANDARD_NUMBER = "Activity_11uuyg0"; - /** 征求意见人员 */ + /** 主起草人 */ public static final String MAIN_DRAFT_USER = "mainDraftUser"; + /** 法规工程师 */ + public static final String STANDARD_ENGINEER = "standardEngineer"; /** 征求意见人员 */ public static final String ADVICE_USER_LIST = "adviceUserList"; /** 开启征求意见 */ diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/service/impl/EsRevisionServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/service/impl/EsRevisionServiceImpl.java index cad2d4b2..a8876570 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/service/impl/EsRevisionServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/service/impl/EsRevisionServiceImpl.java @@ -254,9 +254,11 @@ public class EsRevisionServiceImpl extends ServiceImpl adviceUserList = Arrays.asList(data.getAdviceUsers().split(",")); taskService.setVariable(taskId, ADVICE_USER_LIST, adviceUserList); + taskService.setVariable(taskId, STANDARD_ENGINEER, curUserId); taskService.setVariable(taskId, OPEN, true); // 保存流程数据 saveOrUpdate(data); + userMap.put(STANDARD_ENGINEER, curUserId); userMap.put(ADVICE_USER_LIST, data.getAdviceUsers()); processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap); } else {