From 558251ee7ac0a2fbd1be6464331cf94cb5b760cf Mon Sep 17 00:00:00 2001 From: yujintao Date: Sat, 7 Mar 2020 13:33:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BC=81=E4=B8=9A=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=97=B6=E9=98=BB=E6=AD=A2=E9=A2=91=E7=B9=81=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../esua/epdc/commons/tools/redis/RedisKeys.java | 13 +++++++++++++ .../impl/CustomEnterpriseServiceImpl.java | 16 +++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java index 441caaaba..0681bc02a 100644 --- a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java +++ b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java @@ -127,6 +127,19 @@ public class RedisKeys { return rootPrefix.concat("phone:sms:history:").concat(phone); } + /** + * 拒绝重复提交用 + * + * @param businessName 业务名称 + * @param businessKey 业务主键或其他唯一标识 + * @return java.lang.String + * @author work@yujt.net.cn + * @date 2019/12/6 19:05 + */ + public static String getRefuseDuplicateSubmitKey(String businessName, String businessKey) { + return rootPrefix.concat("submit:history:").concat(businessName).concat(":").concat(businessKey); + } + /** * 管理员部门层级关系 * diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/CustomEnterpriseServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/CustomEnterpriseServiceImpl.java index 156f9fbf1..d6fd4c160 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/CustomEnterpriseServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/CustomEnterpriseServiceImpl.java @@ -2,6 +2,9 @@ package com.elink.esua.epdc.service.impl; import cn.binarywang.wx.miniapp.util.crypt.WxMaCryptUtils; import com.alibaba.fastjson.JSONObject; +import com.elink.esua.epdc.commons.tools.constant.NumConstant; +import com.elink.esua.epdc.commons.tools.redis.RedisKeys; +import com.elink.esua.epdc.commons.tools.redis.RedisUtils; import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; @@ -45,6 +48,9 @@ public class CustomEnterpriseServiceImpl implements CustomEnterpriseService { @Autowired private WxMaServiceUtils wxMaServiceUtils; + @Autowired + private RedisUtils redisUtils; + @Override public Result completeEnterpriseInfo(EnterpriseInfoFormDTO enterpriseInfoDTO) { return customFeignClient.completeEnterpriseInfo(enterpriseInfoDTO); @@ -77,9 +83,17 @@ public class CustomEnterpriseServiceImpl implements CustomEnterpriseService { @Override public Result completeRequisiteInfo(CompleteRequisiteInfoDTO formDto, TokenDto tokenDto) { + + String userId = tokenDto.getUserId(); + // 组织企业短时间内重复提交 + String duplicateSubmit = RedisKeys.getRefuseDuplicateSubmitKey("enterpriseInfo", userId); + if (null != redisUtils.get(duplicateSubmit)) { + return new Result().error("操作频繁,请稍后重试"); + } + redisUtils.set(duplicateSubmit, System.currentTimeMillis(), NumConstant.THIRTY); // 验证手机号 this.checkSmsCode(formDto.getMobile(), formDto.getSmsCode()); - formDto.setUserId(tokenDto.getUserId()); + formDto.setUserId(userId); formDto.setWxUnionId(getWxUnionId(formDto.getWxCode(), formDto.getIv(), formDto.getEncryptedData())); String uniformSocialCreditCode = ModuleUtils.replaceIllegalCharacter(formDto.getUniformSocialCreditCode()); if (StringUtils.isBlank(uniformSocialCreditCode)) {