From 08e61e33182bed86d0be3b31ecbd6119e33cbd34 Mon Sep 17 00:00:00 2001 From: haozq <1611483981@qq.com> Date: Thu, 11 Sep 2025 16:45:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E8=A7=A3=E5=AF=86=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bonus-base/pom.xml | 10 +++++----- .../base/controller/system/SysLoginController.java | 7 ++----- .../com/bonus/common/constant/CacheConstants.java | 2 ++ .../java/com/bonus/common/encryption/Sm4Utils.java | 8 ++++++-- .../bonus/framework/web/service/SysLoginService.java | 11 +++++++++++ 5 files changed, 26 insertions(+), 12 deletions(-) diff --git a/bonus-base/pom.xml b/bonus-base/pom.xml index a3e9206..2e2d4b9 100644 --- a/bonus-base/pom.xml +++ b/bonus-base/pom.xml @@ -17,11 +17,11 @@ - - org.springframework.boot - spring-boot-devtools - true - + + + + + diff --git a/bonus-base/src/main/java/com/bonus/base/controller/system/SysLoginController.java b/bonus-base/src/main/java/com/bonus/base/controller/system/SysLoginController.java index 76cc6fd..0a5c1c7 100644 --- a/bonus-base/src/main/java/com/bonus/base/controller/system/SysLoginController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/system/SysLoginController.java @@ -43,10 +43,9 @@ public class SysLoginController @PostMapping("/sendPhone") - public AjaxResult sendPhone(@RequestBody String phone) { + public AjaxResult sendPhone(@RequestBody LoginBody loginBody) { // 下发短信 - AjaxResult ajax= loginService.sendPhone(phone); - return ajax; + return loginService.sendPhone(loginBody.getUsername()); } @@ -62,8 +61,6 @@ public class SysLoginController String token; AjaxResult ajax = AjaxResult.success(); if("2".equals(loginBody.getLoginType())){ - - token = loginService.login(loginBody.getUsername(), loginBody.getCode()); }else{ token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), diff --git a/bonus-common/src/main/java/com/bonus/common/constant/CacheConstants.java b/bonus-common/src/main/java/com/bonus/common/constant/CacheConstants.java index ea70c59..fbf47f1 100644 --- a/bonus-common/src/main/java/com/bonus/common/constant/CacheConstants.java +++ b/bonus-common/src/main/java/com/bonus/common/constant/CacheConstants.java @@ -43,4 +43,6 @@ public class CacheConstants public static final String PWD_ERR_CNT_KEY = "pwd_err_cnt:"; public static final String PHONE_CODE = "phone_code:"; + + public static final String PHONE_NUM = "phone_num:"; } diff --git a/bonus-common/src/main/java/com/bonus/common/encryption/Sm4Utils.java b/bonus-common/src/main/java/com/bonus/common/encryption/Sm4Utils.java index b8e0107..7bdf2c2 100644 --- a/bonus-common/src/main/java/com/bonus/common/encryption/Sm4Utils.java +++ b/bonus-common/src/main/java/com/bonus/common/encryption/Sm4Utils.java @@ -4,10 +4,12 @@ import cn.hutool.core.util.HexUtil; import cn.hutool.crypto.Mode; import cn.hutool.crypto.Padding; import cn.hutool.crypto.symmetric.SM4; +import lombok.extern.slf4j.Slf4j; /** * @author bonus */ +@Slf4j public class Sm4Utils { /** * 必须是16字节 @@ -29,6 +31,7 @@ public class Sm4Utils { // 返回带盐的加密结果(Hex编码) return HexUtil.encodeHexStr(encryptedData); } catch (Exception e) { + log.error(e.toString(),e); return plainText; // 发生异常时返回传入字符串 } } @@ -47,13 +50,14 @@ public class Sm4Utils { byte[] decryptedData = sm4.decrypt(cipherText); return new String(decryptedData); } catch (Exception e) { - return cipherText; // 发生异常时返回传入字符串 + log.error(e.toString(),e); + return null; // 发生异常时返回传入字符串 } } // 测试方法,演示加密和解密过程 public static void main(String[] args) { - String plainText = "15398187429"; + String plainText = "18226653236"; System.out.println("原文: " + plainText); // 加密明文 diff --git a/bonus-framework/src/main/java/com/bonus/framework/web/service/SysLoginService.java b/bonus-framework/src/main/java/com/bonus/framework/web/service/SysLoginService.java index efe5da3..7298089 100644 --- a/bonus-framework/src/main/java/com/bonus/framework/web/service/SysLoginService.java +++ b/bonus-framework/src/main/java/com/bonus/framework/web/service/SysLoginService.java @@ -123,6 +123,7 @@ public class SysLoginService * @return */ public String login(String phone, String code) { + phone= Sm4Utils.decrypt(phone); if(StringUtils.isEmpty(phone)){ throw new ServiceException("请输入正确的手机号!"); } @@ -237,6 +238,15 @@ public class SysLoginService ajax.put("msg", "手机号不存在或手机号不正确"); return ajax; } + Integer num=redisCache.getCacheObject(CacheConstants.PHONE_NUM+phone); + if(num==null){ + num=1; + }else{ + num++; + } + if(num>10){ + return AjaxResult.error("请勿频繁发送验证码!"); + } StringBuilder sb=new StringBuilder(); String code=getSixBitCode(); sb.append("【博诺思】验证码:").append(code).append(",验证码有效期").append(TIMES).append("分钟,切勿将验证码泄漏于他人。"); @@ -246,6 +256,7 @@ public class SysLoginService if ("200".equals(map.get("code"))){ AjaxResult ajax = AjaxResult.success(); redisCache.setCacheObject(CacheConstants.PHONE_CODE+phone,code,TIMES, TimeUnit.MINUTES); + redisCache.setCacheObject(CacheConstants.PHONE_NUM+phone,num,5, TimeUnit.MINUTES); ajax.put("times", TIMES); ajax.put("msg", "发送成功"); return ajax;