From 190d6bc6aa7e4ca33c281bd9785339f3bddaf11e Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 08 五月 2021 12:43:37 +0800
Subject: [PATCH] bug修复
---
fanli/src/main/java/com/yeshi/fanli/service/impl/user/SMSServiceImpl.java | 293 +++++++++++++++++++++++++++++-----------------------------
1 files changed, 148 insertions(+), 145 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 0fc72c7..c4a921e 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
@@ -1,145 +1,148 @@
-package com.yeshi.fanli.service.impl.user;
-
-import com.yeshi.fanli.dao.mybatis.SMSHistoryMapper;
-import com.yeshi.fanli.entity.SystemEnum;
-import com.yeshi.fanli.entity.bus.user.SMSHistory;
-import com.yeshi.fanli.exception.config.SMSException;
-import com.yeshi.fanli.service.inter.user.SMSService;
-import com.yeshi.fanli.util.*;
-import net.sf.json.JSONObject;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.math.BigDecimal;
-import java.util.Date;
-
-@Service
-public class SMSServiceImpl implements SMSService {
-
- @Resource
- private SMSHistoryMapper smsHistoryMapper;
-
- @Resource
- private RedisManager redisManager;
-
- @Override
- public String sendLoginVCode(SystemEnum system, String phone, int codeLength) throws SMSException {
- 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("[绛惧悕]", system.getSmsAlias()).replace("[楠岃瘉鐮乚",
- msgCode);
- // 鍙戦�佺煭淇�
- // 鍙戦�侀棿闅�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());
- smsHistory.setPhone(phone);
- smsHistory.setType(SMSHistory.TYPE_LOGIN);
- smsHistoryMapper.insertSelective(smsHistory);
- return msgCode;
- }
-
- @Override
- public void sendBindVCode(SystemEnum system,String phone, int codeLength) throws SMSException {
- boolean limit = redisManager.isSmsFrequencyLimit(phone, SMSHistory.TYPE_BIND);
- if (limit)
- throw new SMSException(1001, "璇疯繃60绉掑啀璇�");
- String msgCode = StringUtil.getVerifyCode(codeLength);
-
- // 楠岃瘉鐮佹ā鏉�
- String msg = Constant.smsConfig.getSmsBind().replace("[绛惧悕]", system.getSmsAlias()).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());
- smsHistory.setPhone(phone);
- smsHistory.setType(SMSHistory.TYPE_BIND);
- smsHistoryMapper.insertSelective(smsHistory);
- }
-
- @Override
- public void sendRemoveVCode(SystemEnum system,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("[绛惧悕]", system.getSmsAlias()).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(SystemEnum system,String phone) throws SMSException {
- boolean limit = redisManager.isSmsFrequencyLimit(phone, SMSHistory.TYPE_EXTRACT);
- if (limit)
- throw new SMSException(1001, "璇疯繃60绉掑啀璇�");
- String msgCode = StringUtil.getRandomCode(6);
- String msg = Constant.smsConfig.getSmsExtract().replace("[绛惧悕]",system.getSmsAlias())
- .replace("[楠岃瘉鐮乚", msgCode);
- // 鍙戦�佺煭淇�
- TencentSMSUtil.sendSingleMsg(phone, msg);
- // 缂撳瓨
- redisManager.sendSms(phone, SMSHistory.TYPE_EXTRACT);
- redisManager.saveSMSVCode(phone, SMSHistory.TYPE_EXTRACT, msgCode);
- }
-
- @Override
- public void sendExtractSuccessMsg(SystemEnum system,String phone, BigDecimal money) throws SMSException {
- String msg = Constant.smsConfig.getSmsExtractSuccess().replace("[绛惧悕]", system.getSmsAlias())
- .replace("[閲戦]", money.toString());
- // 鍙戦�佺煭淇�
- TencentSMSUtil.sendSingleMsg(phone, msg);
- }
-
- @Override
- public void sendExtractFailMsg(SystemEnum system,String phone, BigDecimal money) throws SMSException {
- String msg = Constant.smsConfig.getSmsExtractFail().replace("[绛惧悕]", system.getSmsAlias())
- .replace("[閲戦]", money.toString());
- // 鍙戦�佺煭淇�
- TencentSMSUtil.sendSingleMsg(phone, msg);
- }
-
-}
+package com.yeshi.fanli.service.impl.user;
+
+import com.yeshi.fanli.dao.mybatis.SMSHistoryMapper;
+import com.yeshi.fanli.entity.SystemEnum;
+import com.yeshi.fanli.entity.bus.user.SMSHistory;
+import com.yeshi.fanli.exception.config.SMSException;
+import com.yeshi.fanli.service.inter.user.SMSService;
+import com.yeshi.fanli.util.*;
+import net.sf.json.JSONObject;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Service
+public class SMSServiceImpl implements SMSService {
+
+ @Resource
+ private SMSHistoryMapper smsHistoryMapper;
+
+ @Resource
+ private RedisManager redisManager;
+
+ @Override
+ public String sendLoginVCode(SystemEnum system, String phone, int codeLength) throws SMSException {
+ 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("[绛惧悕]", system.getSmsAlias()).replace("[楠岃瘉鐮乚",
+ msgCode);
+ if (Constant.IS_TEST)
+ System.out.println(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());
+ smsHistory.setPhone(phone);
+ smsHistory.setType(SMSHistory.TYPE_LOGIN);
+ smsHistoryMapper.insertSelective(smsHistory);
+ return msgCode;
+ }
+
+ @Override
+ public void sendBindVCode(SystemEnum system, String phone, int codeLength) throws SMSException {
+ boolean limit = redisManager.isSmsFrequencyLimit(phone, SMSHistory.TYPE_BIND);
+ if (limit)
+ throw new SMSException(1001, "璇疯繃60绉掑啀璇�");
+ String msgCode = StringUtil.getVerifyCode(codeLength);
+
+ // 楠岃瘉鐮佹ā鏉�
+ String msg = Constant.smsConfig.getSmsBind().replace("[绛惧悕]", system.getSmsAlias()).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());
+ smsHistory.setPhone(phone);
+ smsHistory.setType(SMSHistory.TYPE_BIND);
+ smsHistoryMapper.insertSelective(smsHistory);
+ }
+
+ @Override
+ public void sendRemoveVCode(SystemEnum system, 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("[绛惧悕]", system.getSmsAlias()).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(SystemEnum system, String phone) throws SMSException {
+ boolean limit = redisManager.isSmsFrequencyLimit(phone, SMSHistory.TYPE_EXTRACT);
+ if (limit)
+ throw new SMSException(1001, "璇疯繃60绉掑啀璇�");
+ String msgCode = StringUtil.getRandomCode(6);
+ String msg = Constant.smsConfig.getSmsExtract().replace("[绛惧悕]", system.getSmsAlias())
+ .replace("[楠岃瘉鐮乚", msgCode);
+ // 鍙戦�佺煭淇�
+ TencentSMSUtil.sendSingleMsg(phone, msg);
+ // 缂撳瓨
+ redisManager.sendSms(phone, SMSHistory.TYPE_EXTRACT);
+ redisManager.saveSMSVCode(phone, SMSHistory.TYPE_EXTRACT, msgCode);
+ }
+
+ @Override
+ public void sendExtractSuccessMsg(SystemEnum system, String phone, BigDecimal money) throws SMSException {
+ String msg = Constant.smsConfig.getSmsExtractSuccess().replace("[绛惧悕]", system.getSmsAlias())
+ .replace("[閲戦]", money.toString());
+ // 鍙戦�佺煭淇�
+ TencentSMSUtil.sendSingleMsg(phone, msg);
+ }
+
+ @Override
+ public void sendExtractFailMsg(SystemEnum system, String phone, BigDecimal money) throws SMSException {
+ String msg = Constant.smsConfig.getSmsExtractFail().replace("[绛惧悕]", system.getSmsAlias())
+ .replace("[閲戦]", money.toString());
+ // 鍙戦�佺煭淇�
+ TencentSMSUtil.sendSingleMsg(phone, msg);
+ }
+
+}
--
Gitblit v1.8.0