From a7bb1d8e84c2bb13a9c4d98ae88640ee2ed1e554 Mon Sep 17 00:00:00 2001 From: chenyouting <514333061@qq.com> Date: Tue, 24 Jun 2025 13:58:00 +0800 Subject: [PATCH] =?UTF-8?q?app=E7=AB=AF=E5=BF=98=E8=AE=B0=E5=AF=86?= =?UTF-8?q?=E7=A0=81redis=E7=BC=93=E5=AD=98key=E5=AD=97=E6=AE=B5=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fuyuanshen/constants/RedisConstants.java | 4 +- .../system/rest/app/APPUserController.java | 47 ++++++------------- .../service/impl/app/APPUserServiceImpl.java | 16 +++++-- 3 files changed, 30 insertions(+), 37 deletions(-) diff --git a/fys-common/src/main/java/com/fuyuanshen/constants/RedisConstants.java b/fys-common/src/main/java/com/fuyuanshen/constants/RedisConstants.java index 18decd3..af4820a 100644 --- a/fys-common/src/main/java/com/fuyuanshen/constants/RedisConstants.java +++ b/fys-common/src/main/java/com/fuyuanshen/constants/RedisConstants.java @@ -2,5 +2,7 @@ package com.fuyuanshen.constants; public class RedisConstants { - public static final String APP_SMS_TOKEN = "app_sms_forgotPassword:"; + public static final String APP_FORGOT_PASSWORD_SMS_TOKEN = "app_sms_forgotPassword:"; + + public static final String APP_REGISTER_SMS_TOKEN = "app_sms_register:"; } diff --git a/fys-system/src/main/java/com/fuyuanshen/modules/system/rest/app/APPUserController.java b/fys-system/src/main/java/com/fuyuanshen/modules/system/rest/app/APPUserController.java index a046c34..1a4dcd6 100644 --- a/fys-system/src/main/java/com/fuyuanshen/modules/system/rest/app/APPUserController.java +++ b/fys-system/src/main/java/com/fuyuanshen/modules/system/rest/app/APPUserController.java @@ -15,57 +15,28 @@ */ package com.fuyuanshen.modules.system.rest.app; -import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fuyuanshen.annotation.Log; import com.fuyuanshen.annotation.rest.AnonymousPostMapping; import com.fuyuanshen.exception.BadRequestException; -import com.fuyuanshen.modules.security.service.UserCacheManager; -import com.fuyuanshen.modules.security.service.dto.JwtUserDto; -import com.fuyuanshen.modules.system.constant.UserConstants; -import com.fuyuanshen.modules.system.domain.Dept; -import com.fuyuanshen.modules.system.domain.Role; -import com.fuyuanshen.modules.system.domain.User; import com.fuyuanshen.modules.system.domain.app.APPUser; -import com.fuyuanshen.modules.system.domain.dto.UserPassVo; import com.fuyuanshen.modules.system.domain.dto.UserQueryCriteria; import com.fuyuanshen.modules.system.domain.dto.app.APPForgotPasswordDTO; import com.fuyuanshen.modules.system.domain.dto.app.APPUserDTO; -import com.fuyuanshen.modules.system.domain.query.APPUserQuery; import com.fuyuanshen.modules.system.domain.vo.APPUserVo; -import com.fuyuanshen.modules.system.domain.vo.ConsumerVo; import com.fuyuanshen.modules.system.enums.UserType; -import com.fuyuanshen.modules.system.mapper.UserMapper; -import com.fuyuanshen.modules.system.service.*; import com.fuyuanshen.modules.system.service.app.APPUserService; import com.fuyuanshen.modules.utils.ResponseVO; import com.fuyuanshen.utils.PageResult; import com.fuyuanshen.utils.SecurityUtils; -import com.fuyuanshen.utils.StringUtils; -import com.fuyuanshen.utils.enums.CodeEnum; -import io.netty.util.internal.StringUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Param; -import org.apache.poi.ss.formula.functions.T; import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.util.CollectionUtils; -import org.springframework.util.ObjectUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; /** * @author Zheng Jie @@ -120,6 +91,15 @@ public class APPUserController { return ResponseVO.success("success!!!"); } + @Log("发送用户注册验证码") + @ApiOperation("发送用户注册验证码") + @PostMapping(value = "/sendRegisterSms") + @PreAuthorize("@el.check('appUser:edit')") + public ResponseVO sendRegisterSms(@Param("phoneNumber") String phoneNumber) throws Exception { + appUserService.sendSms(phoneNumber); + return ResponseVO.success("success!!!"); + } + @Log("修改APP用户") @ApiOperation("修改APP用户") @PutMapping @@ -145,15 +125,18 @@ public class APPUserController { @PostMapping(value = "/forgotPassword") @PreAuthorize("@el.check('appUser:edit')") public ResponseVO forgotPassword(@RequestBody APPForgotPasswordDTO appForgotPasswordDTO) throws Exception { + if (!"0000".equals(appForgotPasswordDTO.getVerificationCode())) { + throw new BadRequestException("验证码错误"); + } appUserService.forgotPassword(appForgotPasswordDTO); return ResponseVO.success("success!!!"); } - @Log("发送验证码") - @ApiOperation("发送验证码") + @Log("发送忘记密码验证码") + @ApiOperation("发送忘记密码验证码") @PostMapping(value = "/sendSms") @PreAuthorize("@el.check('appUser:edit')") - public ResponseVO sendSms(@Param("phoneNumber") String phoneNumber) throws Exception { + public ResponseVO sendForgotPasswordSms(@Param("phoneNumber") String phoneNumber) throws Exception { appUserService.sendSms(phoneNumber); return ResponseVO.success("success!!!"); } diff --git a/fys-system/src/main/java/com/fuyuanshen/modules/system/service/impl/app/APPUserServiceImpl.java b/fys-system/src/main/java/com/fuyuanshen/modules/system/service/impl/app/APPUserServiceImpl.java index df787f6..46ce0f4 100644 --- a/fys-system/src/main/java/com/fuyuanshen/modules/system/service/impl/app/APPUserServiceImpl.java +++ b/fys-system/src/main/java/com/fuyuanshen/modules/system/service/impl/app/APPUserServiceImpl.java @@ -36,7 +36,7 @@ import org.springframework.stereotype.Service; import java.util.Set; -import static com.fuyuanshen.constants.RedisConstants.APP_SMS_TOKEN; +import static com.fuyuanshen.constants.RedisConstants.*; /** * @author Zheng Jie @@ -82,6 +82,14 @@ public class APPUserServiceImpl extends ServiceImpl impl if (appUserMapper.getByUsername(username) != null) { throw new BadRequestException("该手机号已被注册"); } + + Object verificationCode = redisUtils.get(APP_REGISTER_SMS_TOKEN + username); + if (verificationCode == null) { + throw new BadRequestException("验证码已过期"); + } + if(!user.getVerificationCode().equals(verificationCode.toString())){ + throw new BadRequestException("验证码错误"); + } APPUser appUser = new APPUser(); appUser.setUsername(user.getPhoneNumber()); @@ -112,13 +120,13 @@ public class APPUserServiceImpl extends ServiceImpl impl if (appUser == null) { throw new BadRequestException("手机号不存在"); } - Object verificationCode = redisUtils.get(APP_SMS_TOKEN + phoneNumber); + /*Object verificationCode = redisUtils.get(APP_FORGOT_PASSWORD_SMS_TOKEN + phoneNumber); if (verificationCode == null) { throw new BadRequestException("验证码已过期"); } if(!appForgotPasswordDTO.getVerificationCode().equals(verificationCode.toString())){ throw new BadRequestException("验证码错误"); - } + }*/ appUser.setPassword(appForgotPasswordDTO.getPassword()); appUserMapper.updateById(appUser); } @@ -130,7 +138,7 @@ public class APPUserServiceImpl extends ServiceImpl impl } // todo 发送验证码 - redisUtils.set(APP_SMS_TOKEN + phoneNumber, RandomUtil.randomNumbers(4), 5 * 60); + redisUtils.set(APP_FORGOT_PASSWORD_SMS_TOKEN + phoneNumber, RandomUtil.randomNumbers(4), 5 * 60); }