From d9694f1e72536f0ee6c0c8c2bbcfe619817fc9d4 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Tue, 8 Oct 2024 11:09:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B4=BE=E5=8F=B7=E6=A0=87=E5=87=86?= =?UTF-8?q?=E5=8F=B7=E9=87=8D=E5=A4=8D=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 +++++++++---------- .../service/impl/EsRevisionServiceImpl.java | 35 +++++++++-- 2 files changed, 62 insertions(+), 36 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 ecf54300..505af0e7 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,7 +1,6 @@ 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; @@ -95,22 +94,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); @@ -138,21 +137,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/service/impl/EsRevisionServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/service/impl/EsRevisionServiceImpl.java index 871ec911..58c6b94c 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 @@ -30,6 +30,7 @@ import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon; import com.jero.modules.laws.enterprise.entity.ESPProjectStatus; import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan; import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService; +import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; import com.jero.modules.sys.utils.UserUtils; @@ -37,6 +38,7 @@ import lombok.extern.slf4j.Slf4j; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.runtime.ProcessInstance; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -91,6 +93,9 @@ public class EsRevisionServiceImpl extends ServiceImpl processInfoVO) { // 流程Key @@ -227,6 +232,13 @@ public class EsRevisionServiceImpl extends ServiceImpl adviceList = businessInfoDTO.getAdviceList(); // 根据流程实例Id获取流程定义ID ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + // 获取数据库中的流程信息 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId); + ProcessEsRevision dataFromDb = getOne(queryWrapper); + if (dataFromDb != null) { + data.setId(dataFromDb.getId()); + } // 获取流程实例ID String processDefinitionId = processInstance.getProcessDefinitionId(); Map userMap = new HashMap<>(); @@ -271,10 +283,25 @@ public class EsRevisionServiceImpl extends ServiceImpl variables = JSON.parseObject(data.getBusinessJson(), Map.class); - String standardNumber = (String) variables.get(FieldCommon.STANDARD_NUMBER); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(LawsEnterpriseStandard::getStandardNumber, standardNumber); - LawsEnterpriseStandard es = esService.getOne(queryWrapper); + // 根据派号字段重新生成标准编号 + String standardNumberTmp = (String) variables.get(FieldCommon.STANDARD_NUMBER_TEMP); + String standardNumber = ""; + if (StringUtils.isNotBlank(standardNumberTmp)) { + // 组合企标编号 + standardNumber = esUtil.combineStandardNumber(variables); + } else { + // 生成企标编号 + standardNumber = esUtil.generateStandardNumber(variables); + standardNumberTmp = EnterpriseStandardUtil.getSequenceNoFromStandardNo(standardNumber); + } + variables.put(FieldCommon.STANDARD_NUMBER, standardNumber); + variables.put(FieldCommon.STANDARD_NUMBER_TEMP, standardNumberTmp); + // 重新序列化为json + data.setBusinessJson(JSON.toJSONString(variables)); + // 校验重复 + LambdaQueryWrapper esQueryWrapper = new LambdaQueryWrapper<>(); + esQueryWrapper.eq(LawsEnterpriseStandard::getStandardNumber, standardNumber); + LawsEnterpriseStandard es = esService.getOne(esQueryWrapper); if (Objects.nonNull(es)) { throw new JeroBootException(ResultCommon.STANDARD_NUMBER_ALREADY_EXISTS); }