From 941271bb52d26e484e2fe9c82d19bd9f94b84838 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 29 六月 2020 16:38:33 +0800
Subject: [PATCH] 拉新与免单JOB修改
---
fanli/src/main/java/com/yeshi/fanli/service/impl/user/SMSServiceImpl.java | 38 ++++++++++++++++++++++++++++++++++----
1 files changed, 34 insertions(+), 4 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/SMSServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/SMSServiceImpl.java
index c5838de..0e73af3 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/SMSServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/SMSServiceImpl.java
@@ -9,10 +9,11 @@
import com.yeshi.fanli.dao.mybatis.SMSHistoryMapper;
import com.yeshi.fanli.entity.bus.user.SMSHistory;
-import com.yeshi.fanli.exception.SMSException;
+import com.yeshi.fanli.exception.config.SMSException;
import com.yeshi.fanli.service.inter.user.SMSService;
import com.yeshi.fanli.util.AliyunSMSUtil;
import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.RedisKeyEnum;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TencentSMSUtil;
@@ -34,7 +35,7 @@
if (limit)
throw new SMSException(1001, "璇疯繃60绉掑啀璇�");
- String key = StringUtil.Md5("sms-login-tencent-latest-" + phone);
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.emptyKey, StringUtil.Md5("sms-login-tencent-latest-" + phone));
String msgCode = StringUtil.getVerifyCode(codeLength);
// 楠岃瘉鐮佹ā鏉�
@@ -42,12 +43,16 @@
msgCode);
// 鍙戦�佺煭淇�
// 鍙戦�侀棿闅�2鍒嗛挓鍐呯殑閲囩敤闃块噷浜戠煭淇″彂閫�
- if (StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
+ String cacheString = redisManager.getCommonString(key);
+ if (StringUtil.isNullOrEmpty(cacheString) || Integer.parseInt(cacheString) < 2) {
TencentSMSUtil.sendSingleMsg(phone, msg);
- redisManager.cacheCommonString(key, "1", 120);
+ redisManager.increase(key);
+ redisManager.expire(key, 120);
} else {
+ redisManager.removeCommonString(key);
// 鍙戦�侀樋閲屼簯鐭俊
JSONObject data = new JSONObject();
+ data.put("code", msgCode);
AliyunSMSUtil.sendSingleMsg(phone, Constant.smsConfig.getAliyunLoginTemplatecode(), data.toString());
}
// 缂撳瓨
@@ -89,6 +94,31 @@
}
@Override
+ public void sendRemoveVCode(String phone, int codeLength) throws SMSException {
+ boolean limit = redisManager.isSmsFrequencyLimit(phone, SMSHistory.TYPE_REMVOE);
+ if (limit)
+ throw new SMSException(1001, "璇疯繃60绉掑啀璇�");
+ String msgCode = StringUtil.getVerifyCode(codeLength);
+
+ // 楠岃瘉鐮佹ā鏉�
+ String msg = Constant.smsConfig.getSmsBind().replace("[绛惧悕]", Constant.smsConfig.getSmsSign()).replace("[楠岃瘉鐮乚",
+ msgCode);
+ // 鍙戦�佺煭淇�
+ TencentSMSUtil.sendSingleMsg(phone, msg);
+
+ // 缂撳瓨
+ redisManager.sendSms(phone, SMSHistory.TYPE_REMVOE);
+ redisManager.saveSMSVCode(phone, SMSHistory.TYPE_REMVOE, msgCode);
+
+ SMSHistory smsHistory = new SMSHistory();
+ smsHistory.setContent(msg);
+ smsHistory.setCreateTime(new Date());
+ smsHistory.setPhone(phone);
+ smsHistory.setType(SMSHistory.TYPE_REMVOE);
+ smsHistoryMapper.insertSelective(smsHistory);
+ }
+
+ @Override
public void sendExtractVCode(String phone) throws SMSException {
boolean limit = redisManager.isSmsFrequencyLimit(phone, SMSHistory.TYPE_EXTRACT);
if (limit)
--
Gitblit v1.8.0