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("短信发送失败");