From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 18 一月 2020 12:06:27 +0800
Subject: [PATCH] 用户注册信息

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/SMSServiceImpl.java |   32 +++++++++++++++++++++++++-------
 1 files changed, 25 insertions(+), 7 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 26a3487..8278293 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,12 +9,16 @@
 
 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;
+
+import net.sf.json.JSONObject;
 
 @Service
 public class SMSServiceImpl implements SMSService {
@@ -30,17 +34,31 @@
 		boolean limit = redisManager.isSmsFrequencyLimit(phone, SMSHistory.TYPE_LOGIN);
 		if (limit)
 			throw new SMSException(1001, "璇疯繃60绉掑啀璇�");
-		
+
+		String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.emptyKey, StringUtil.Md5("sms-login-tencent-latest-" + phone));
+
 		String msgCode = StringUtil.getVerifyCode(codeLength);
 		// 楠岃瘉鐮佹ā鏉�
 		String msg = Constant.smsConfig.getSmsLogin().replace("[绛惧悕]", Constant.smsConfig.getSmsSign()).replace("[楠岃瘉鐮乚",
 				msgCode);
 		// 鍙戦�佺煭淇�
-		TencentSMSUtil.sendSingleMsg(phone, msg);
+		// 鍙戦�侀棿闅�2鍒嗛挓鍐呯殑閲囩敤闃块噷浜戠煭淇″彂閫�
+		String cacheString = redisManager.getCommonString(key);
+		if (StringUtil.isNullOrEmpty(cacheString) || Integer.parseInt(cacheString) < 2) {
+			TencentSMSUtil.sendSingleMsg(phone, msg);
+			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());
+		}
 		// 缂撳瓨
 		redisManager.sendSms(phone, SMSHistory.TYPE_LOGIN);
 		redisManager.saveSMSVCode(phone, SMSHistory.TYPE_LOGIN, msgCode);
-		
+
 		SMSHistory smsHistory = new SMSHistory();
 		smsHistory.setContent(msg);
 		smsHistory.setCreateTime(new Date());
@@ -56,17 +74,17 @@
 		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_BIND);
 		redisManager.saveSMSVCode(phone, SMSHistory.TYPE_BIND, msgCode);
-		
+
 		SMSHistory smsHistory = new SMSHistory();
 		smsHistory.setContent(msg);
 		smsHistory.setCreateTime(new Date());

--
Gitblit v1.8.0