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);
}
/**
* 用户请求发送短信接口记录本次请求时间保存一分钟
*
* @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分钟单位
*/
public final static long MINUTE_FIVE_EXPIRE = 60 * 5 * 1L;
/**
* 过期时长为1分钟单位
*/
public final static long MINUTE_ONE_EXPIRE = 60 * 1 * 1L;
/**
* 过期时长为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
* @date 2019/9/10 20:47
*/
@Deprecated
@GetMapping("user/ma/getToken")
public Result<EpdcAppAuthorizationDTO> getMaToken(EpdcAppUserMaTokenFormDTO 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.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.dto.epdc.form.EpdcDeleteWxFormIdFormDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO;
@ -37,6 +39,9 @@ public class MessageServiceImpl implements MessageService {
@Autowired
private WxMaServiceUtils wxMaServiceUtils;
@Autowired
private RedisUtils redisUtils;
/**
* 注册审核失败服务消息模版
*/
@ -62,6 +67,11 @@ public class MessageServiceImpl implements MessageService {
*/
@Override
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);
}

Loading…
Cancel
Save