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)) {