From c936372105454118405ab72672a957f6bbd821e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=89=91=E9=9B=A8?= <2375294554@qq.com> Date: Mon, 19 May 2025 14:41:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8F=91=E9=80=81=E7=9F=AD?= =?UTF-8?q?=E4=BF=A1=E5=A4=B1=E8=B4=A5=E7=9A=84=E6=83=85=E5=86=B5=EF=BC=8C?= =?UTF-8?q?=E5=9B=9E=E9=80=80=E5=8F=91=E9=80=81=E6=AC=A1=E6=95=B0=20--ALiY?= =?UTF-8?q?unSmsService.java=20=E4=BD=BF=E7=94=A8redis=E5=8A=A01=E5=8E=9F?= =?UTF-8?q?=E5=AD=90=E6=93=8D=E4=BD=9C=20--CaptchaServiceImpl.java=20?= =?UTF-8?q?=E4=BD=BF=E7=94=A8redis=E5=87=8F1=E5=8E=9F=E5=AD=90=E6=93=8D?= =?UTF-8?q?=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../security/service/impl/CaptchaServiceImpl.java | 5 ++--- .../modules/sms/service/imp/ALiYunSmsService.java | 9 +++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/main/manager-api/src/main/java/xiaozhi/modules/security/service/impl/CaptchaServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/security/service/impl/CaptchaServiceImpl.java index 98b6d326..121e3492 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/security/service/impl/CaptchaServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/security/service/impl/CaptchaServiceImpl.java @@ -119,10 +119,9 @@ public class CaptchaServiceImpl implements CaptchaService { // 更新今日发送次数 if (todayCount == 0) { - // 如果是今天第一次发送,设置24小时过期 - redisUtils.set(todayCountKey, 1, RedisUtils.DEFAULT_EXPIRE); + redisUtils.increment(todayCountKey,RedisUtils.DEFAULT_EXPIRE); } else { - redisUtils.set(todayCountKey, todayCount + 1, RedisUtils.DEFAULT_EXPIRE); + redisUtils.increment(todayCountKey); } // 发送验证码短信 diff --git a/main/manager-api/src/main/java/xiaozhi/modules/sms/service/imp/ALiYunSmsService.java b/main/manager-api/src/main/java/xiaozhi/modules/sms/service/imp/ALiYunSmsService.java index b39b24c8..9acc2127 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/sms/service/imp/ALiYunSmsService.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/sms/service/imp/ALiYunSmsService.java @@ -10,7 +10,10 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import xiaozhi.common.constant.Constant; import xiaozhi.common.exception.RenException; +import xiaozhi.common.redis.RedisKeys; +import xiaozhi.common.redis.RedisUtils; import xiaozhi.modules.sms.service.SmsService; +import xiaozhi.modules.sms.service.common.SmsUtils; import xiaozhi.modules.sys.service.SysParamsService; @Service @@ -18,9 +21,12 @@ import xiaozhi.modules.sys.service.SysParamsService; @Slf4j public class ALiYunSmsService implements SmsService { private final SysParamsService sysParamsService; + private final SmsUtils smsUtils; + private final RedisUtils redisUtils; @Override public void sendVerificationCodeSms(String phone, String VerificationCode) { + smsUtils.isPhoneEligibleForSmsSend(phone,true); Client client = createClient(); String SignName = sysParamsService.getValue(Constant.SysMSMParam .ALIYUN_SMS_SIGN_NAME.getValue(),true); @@ -37,6 +43,9 @@ public class ALiYunSmsService implements SmsService { SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, runtime); log.info("发送短信响应的requestID: {}", sendSmsResponse.getBody().getRequestId()); } catch (Exception e) { + // 如果发送失败了退还这次发送数 + String todayCountKey = RedisKeys.getSMSTodayCountKey(phone); + redisUtils.delete(todayCountKey); // 错误 message log.error(e.getMessage()); throw new RenException("短信发送失败");