Browse Source

发送验证码功能,添加发送次数限制

dev
yujintao 6 years ago
parent
commit
cb3a90f8b1
  1. 12
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java
  2. 4
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisUtils.java
  3. 1
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java
  4. 10
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/MessageServiceImpl.java

12
esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java

@ -115,6 +115,18 @@ public class RedisKeys {
return rootPrefix.concat("phone:sms:code:").concat(phone); return rootPrefix.concat("phone:sms:code:").concat(phone);
} }
/**
* 用户请求发送短信接口记录本次请求时间保存一分钟
*
* @param phone
* @return java.lang.String
* @author work@yujt.net.cn
* @date 2019/12/6 19:05
*/
public static String getPhoneSmsHistoryKey(String phone) {
return rootPrefix.concat("phone:sms:history:").concat(phone);
}
/** /**
* 管理员部门层级关系 * 管理员部门层级关系
* *

4
esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisUtils.java

@ -45,6 +45,10 @@ public class RedisUtils {
* 过期时长为5分钟单位 * 过期时长为5分钟单位
*/ */
public final static long MINUTE_FIVE_EXPIRE = 60 * 5 * 1L; public final static long MINUTE_FIVE_EXPIRE = 60 * 5 * 1L;
/**
* 过期时长为1分钟单位
*/
public final static long MINUTE_ONE_EXPIRE = 60 * 1 * 1L;
/** /**
* 过期时长为10分钟单位 * 过期时长为10分钟单位
*/ */

1
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java

@ -141,7 +141,6 @@ public class ApiAppUserController {
* @author yujintao * @author yujintao
* @date 2019/9/10 20:47 * @date 2019/9/10 20:47
*/ */
@Deprecated
@GetMapping("user/ma/getToken") @GetMapping("user/ma/getToken")
public Result<EpdcAppAuthorizationDTO> getMaToken(EpdcAppUserMaTokenFormDTO formDto) { public Result<EpdcAppAuthorizationDTO> getMaToken(EpdcAppUserMaTokenFormDTO formDto) {
ValidatorUtils.validateEntity(formDto); ValidatorUtils.validateEntity(formDto);

10
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/MessageServiceImpl.java

@ -2,6 +2,8 @@ package com.elink.esua.epdc.service.impl;
import cn.binarywang.wx.miniapp.bean.WxMaTemplateData; import cn.binarywang.wx.miniapp.bean.WxMaTemplateData;
import cn.binarywang.wx.miniapp.bean.WxMaUniformMessage; import cn.binarywang.wx.miniapp.bean.WxMaUniformMessage;
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.Result; import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.epdc.form.EpdcDeleteWxFormIdFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcDeleteWxFormIdFormDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO;
@ -37,6 +39,9 @@ public class MessageServiceImpl implements MessageService {
@Autowired @Autowired
private WxMaServiceUtils wxMaServiceUtils; private WxMaServiceUtils wxMaServiceUtils;
@Autowired
private RedisUtils redisUtils;
/** /**
* 注册审核失败服务消息模版 * 注册审核失败服务消息模版
*/ */
@ -62,6 +67,11 @@ public class MessageServiceImpl implements MessageService {
*/ */
@Override @Override
public Result sendSmsCode(String mobile) { public Result sendSmsCode(String mobile) {
String smsCodeKey = RedisKeys.getPhoneSmsHistoryKey(mobile);
if (null != redisUtils.get(smsCodeKey)) {
redisUtils.set(smsCodeKey, System.currentTimeMillis(), RedisUtils.MINUTE_ONE_EXPIRE);
return new Result().error("操作频繁,请稍后重试");
}
return messageFeignClient.sendCode(mobile); return messageFeignClient.sendCode(mobile);
} }

Loading…
Cancel
Save