From 3ad65bf5a62e58cd75b90166a9d63e8dec365694 Mon Sep 17 00:00:00 2001 From: DELL Date: Sat, 30 Mar 2024 11:21:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=9F=AD=E4=BF=A1=E9=AA=8C?= =?UTF-8?q?=E8=AF=81=E7=A0=81=E6=A8=A1=E5=9D=97=EF=BC=8C=E9=99=90=E5=88=B6?= =?UTF-8?q?=E5=BD=93=E5=A4=A9=E9=AA=8C=E8=AF=81=E7=A0=81=E6=9C=80=E5=A4=9A?= =?UTF-8?q?=E5=8F=91=E9=80=81=E5=8D=81=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SmsLoginServiceImpl.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/jyjz-framework/jyjz-framework-securityweb/src/main/java/cn/jyjz/xiaoyao/framework/security/service/impl/SmsLoginServiceImpl.java b/jyjz-framework/jyjz-framework-securityweb/src/main/java/cn/jyjz/xiaoyao/framework/security/service/impl/SmsLoginServiceImpl.java index f7f513b4..695110f3 100644 --- a/jyjz-framework/jyjz-framework-securityweb/src/main/java/cn/jyjz/xiaoyao/framework/security/service/impl/SmsLoginServiceImpl.java +++ b/jyjz-framework/jyjz-framework-securityweb/src/main/java/cn/jyjz/xiaoyao/framework/security/service/impl/SmsLoginServiceImpl.java @@ -25,6 +25,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.time.LocalDate; import java.util.HashMap; import java.util.Map; import java.util.concurrent.Executor; @@ -57,6 +58,20 @@ public class SmsLoginServiceImpl implements SmsLoginService { if (!isPhone) { return ResultVoUtil.error("请输入正确的手机号。"); } + + // 检查手机号当天获取验证码的次数 + // 获取今天的日期,用于计算当天的发送次数 + LocalDate today = LocalDate.now(); + String cacheKey = "verification_count_" + phone + "_" + today; + Integer count = iCacheManager.get(CacheConstants.USER_PHONE_MODEL_NAME, cacheKey); + if (count == null) { + count = 0; + } + if (count >= 10) { + return ResultVoUtil.error("获取验证码次数超限,请明天再试!"); + } + + //生成验证码 String code = RandomUtil.randomNumbers(4); @@ -67,7 +82,10 @@ public class SmsLoginServiceImpl implements SmsLoginService { //用户登录信息写入缓存 iCacheManager.put(CacheConstants.USER_PHONE_MODEL_NAME,phone,code,CacheConstants.CACHE_TIME); - + + // 更新手机号当天获取验证码的次数 + iCacheManager.put(CacheConstants.USER_PHONE_MODEL_NAME, cacheKey, count + 1, CacheConstants.CACHE_TIME); + //保存验证码到 缓存中 return ResultVoUtil.success(code); }