Sfoglia il codice sorgente

Merge branch 'dev-yzc'

yzc 3 anni fa
parent
commit
832ce3971e

+ 6 - 2
sckw-modules/sckw-message/src/main/java/com/sckw/message/constant/RedisConstant.java

@@ -8,9 +8,13 @@ package com.sckw.message.constant;
 public class RedisConstant {
 
     /**
-     * 短信验证码key
+     * 短信验证码key
      */
-    public static final String MESSAGE_SMS_VERIFY_CODE_KEY = "sckw:sms:verifyCode:%s";
+    public static final String MESSAGE_SMS_VERIFY_CODE_VALUE_KEY = "sckw:sms:verifyCode:value:%s";
+    /**
+     * 短信验证码请求key
+     */
+    public static final String MESSAGE_SMS_VERIFY_CODE_REQUEST_KEY = "sckw:sms:verifyCode:request:%s";
     /**
      * 短信验证码有效时间(秒)
      */

+ 1 - 1
sckw-modules/sckw-message/src/main/java/com/sckw/message/dubbo/SmsInfoServiceImpl.java

@@ -14,7 +14,7 @@ import org.apache.dubbo.config.annotation.DubboService;
 public class SmsInfoServiceImpl implements SmsInfoService {
     @Override
     public String getVerifyCode(String phone) {
-        String key = String.format(RedisConstant.MESSAGE_SMS_VERIFY_CODE_KEY, phone);
+        String key = String.format(RedisConstant.MESSAGE_SMS_VERIFY_CODE_VALUE_KEY, phone);
         return RedissonUtils.getString(key);
     }
 }

+ 9 - 6
sckw-modules/sckw-message/src/main/java/com/sckw/message/service/SckwSmsHandlerService.java

@@ -24,19 +24,22 @@ public class SckwSmsHandlerService {
     private final KwmSmsService kwmSmsService;
 
     /**
+     * @param sckwSms
+     * @return void
      * @desc: 短信处理
      * @author: yzc
      * @date: 2023-06-13 13:44
-     * @param sckwSms
-     * @return void
      */
     public void handler(SckwSms sckwSms) {
         log.info("接收到发送短信消息:{},开始处理", JSON.toJSONString(sckwSms));
-        String key = getMessageSmsVerifyCodeKey(sckwSms.getTelephone());
-        if (Boolean.FALSE.equals(RedissonUtils.tryLock(key, 10L, RedisConstant.SMS_VERIFY_CODE_VALID_TIME))) {
+        String requestKey = getKey(RedisConstant.MESSAGE_SMS_VERIFY_CODE_REQUEST_KEY, sckwSms.getTelephone());
+        if (Boolean.FALSE.equals(RedissonUtils.tryLock(requestKey, 10L, RedisConstant.SMS_VERIFY_CODE_VALID_TIME))) {
             log.info("重复发送短信消息,不处理");
             return;
         }
+        String valueKey = getKey(RedisConstant.MESSAGE_SMS_VERIFY_CODE_VALUE_KEY, sckwSms.getTelephone());
+        //发送短信
+        RedissonUtils.putString(valueKey, String.valueOf(sckwSms.getParams().get("code")), RedisConstant.SMS_VERIFY_CODE_VALID_TIME);
         //发送短信
         SmsUtil.sendSms(sckwSms.getTelephone(), sckwSms.getSignName(), sckwSms.getTemplateCode().getName(), JSON.toJSONString(sckwSms.getParams()));
         //数据入库
@@ -47,7 +50,7 @@ public class SckwSmsHandlerService {
         kwmSmsService.add(kwmSms);
     }
 
-    private String getMessageSmsVerifyCodeKey(String phone) {
-        return String.format(RedisConstant.MESSAGE_SMS_VERIFY_CODE_KEY, phone);
+    private String getKey(String prefix, String args) {
+        return String.format(prefix, args);
     }
 }

+ 1 - 1
sckw-modules/sckw-message/src/main/java/com/sckw/message/service/SmsService.java

@@ -52,6 +52,6 @@ public class SmsService {
     }
 
     private String getMessageSmsVerifyCodeKey(String phone) {
-        return String.format(RedisConstant.MESSAGE_SMS_VERIFY_CODE_KEY, phone);
+        return String.format(RedisConstant.MESSAGE_SMS_VERIFY_CODE_VALUE_KEY, phone);
     }
 }