Commit 5d4a7ffa3be9ca4e4bfa0d03e788bd6aaabdbdf4

Authored by YunaiV
1 parent 87e5b2be

1. 会员用户的修改密码 API 的优化

Showing 11 changed files with 59 additions and 72 deletions
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/AppAuthController.java
@@ -8,10 +8,10 @@ import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; @@ -8,10 +8,10 @@ import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated;
8 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; 8 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
9 import cn.iocoder.yudao.module.member.controller.app.auth.vo.*; 9 import cn.iocoder.yudao.module.member.controller.app.auth.vo.*;
10 import cn.iocoder.yudao.module.member.service.auth.MemberAuthService; 10 import cn.iocoder.yudao.module.member.service.auth.MemberAuthService;
11 -import io.swagger.v3.oas.annotations.tags.Tag; 11 +import io.swagger.v3.oas.annotations.Operation;
12 import io.swagger.v3.oas.annotations.Parameter; 12 import io.swagger.v3.oas.annotations.Parameter;
13 import io.swagger.v3.oas.annotations.Parameters; 13 import io.swagger.v3.oas.annotations.Parameters;
14 -import io.swagger.v3.oas.annotations.Operation; 14 +import io.swagger.v3.oas.annotations.tags.Tag;
15 import lombok.extern.slf4j.Slf4j; 15 import lombok.extern.slf4j.Slf4j;
16 import org.springframework.validation.annotation.Validated; 16 import org.springframework.validation.annotation.Validated;
17 import org.springframework.web.bind.annotation.*; 17 import org.springframework.web.bind.annotation.*;
@@ -92,14 +92,6 @@ public class AppAuthController { @@ -92,14 +92,6 @@ public class AppAuthController {
92 return success(true); 92 return success(true);
93 } 93 }
94 94
95 - @PostMapping("/update-password")  
96 - @Operation(summary = "修改用户密码", description = "用户修改密码时使用")  
97 - @PreAuthenticated  
98 - public CommonResult<Boolean> updatePassword(@RequestBody @Valid AppAuthUpdatePasswordReqVO reqVO) {  
99 - authService.updatePassword(getLoginUserId(), reqVO);  
100 - return success(true);  
101 - }  
102 -  
103 // ========== 社交登录相关 ========== 95 // ========== 社交登录相关 ==========
104 96
105 @GetMapping("/social-auth-redirect") 97 @GetMapping("/social-auth-redirect")
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/AppMemberUserController.java
@@ -3,8 +3,9 @@ package cn.iocoder.yudao.module.member.controller.app.user; @@ -3,8 +3,9 @@ package cn.iocoder.yudao.module.member.controller.app.user;
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; 4 import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated;
5 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserInfoRespVO; 5 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserInfoRespVO;
  6 +import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdatePasswordReqVO;
6 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateReqVO; 7 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateReqVO;
7 -import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO; 8 +import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateMobileReqVO;
8 import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert; 9 import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert;
9 import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; 10 import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
10 import cn.iocoder.yudao.module.member.service.user.MemberUserService; 11 import cn.iocoder.yudao.module.member.service.user.MemberUserService;
@@ -49,10 +50,18 @@ public class AppMemberUserController { @@ -49,10 +50,18 @@ public class AppMemberUserController {
49 @PutMapping("/update-mobile") 50 @PutMapping("/update-mobile")
50 @Operation(summary = "修改用户手机") 51 @Operation(summary = "修改用户手机")
51 @PreAuthenticated 52 @PreAuthenticated
52 - public CommonResult<Boolean> updateUserMobile(@RequestBody @Valid AppUserUpdateMobileReqVO reqVO) { 53 + public CommonResult<Boolean> updateUserMobile(@RequestBody @Valid AppMemberUserUpdateMobileReqVO reqVO) {
53 userService.updateUserMobile(getLoginUserId(), reqVO); 54 userService.updateUserMobile(getLoginUserId(), reqVO);
54 return success(true); 55 return success(true);
55 } 56 }
56 57
  58 + @PutMapping("/update-password")
  59 + @Operation(summary = "修改用户密码", description = "用户修改密码时使用")
  60 + @PreAuthenticated
  61 + public CommonResult<Boolean> updatePassword(@RequestBody @Valid AppMemberUserUpdatePasswordReqVO reqVO) {
  62 + userService.updateUserPassword(getLoginUserId(), reqVO);
  63 + return success(true);
  64 + }
  65 +
57 } 66 }
58 67
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppUserUpdateMobileReqVO.java renamed to yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppMemberUserUpdateMobileReqVO.java
@@ -17,7 +17,7 @@ import javax.validation.constraints.Pattern; @@ -17,7 +17,7 @@ import javax.validation.constraints.Pattern;
17 @NoArgsConstructor 17 @NoArgsConstructor
18 @AllArgsConstructor 18 @AllArgsConstructor
19 @Builder 19 @Builder
20 -public class AppUserUpdateMobileReqVO { 20 +public class AppMemberUserUpdateMobileReqVO {
21 21
22 @Schema(description = "手机验证码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") 22 @Schema(description = "手机验证码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
23 @NotEmpty(message = "手机验证码不能为空") 23 @NotEmpty(message = "手机验证码不能为空")
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthUpdatePasswordReqVO.java renamed to yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppMemberUserUpdatePasswordReqVO.java
1 -package cn.iocoder.yudao.module.member.controller.app.auth.vo; 1 +package cn.iocoder.yudao.module.member.controller.app.user.vo;
2 2
3 import io.swagger.v3.oas.annotations.media.Schema; 3 import io.swagger.v3.oas.annotations.media.Schema;
4 import lombok.AllArgsConstructor; 4 import lombok.AllArgsConstructor;
@@ -7,24 +7,25 @@ import lombok.Data; @@ -7,24 +7,25 @@ import lombok.Data;
7 import lombok.NoArgsConstructor; 7 import lombok.NoArgsConstructor;
8 import org.hibernate.validator.constraints.Length; 8 import org.hibernate.validator.constraints.Length;
9 9
10 -import javax.validation.constraints.NotBlank;  
11 import javax.validation.constraints.NotEmpty; 10 import javax.validation.constraints.NotEmpty;
  11 +import javax.validation.constraints.Pattern;
12 12
13 -// TODO 芋艿:code review 相关逻辑  
14 @Schema(description = "用户 APP - 修改密码 Request VO") 13 @Schema(description = "用户 APP - 修改密码 Request VO")
15 @Data 14 @Data
16 @NoArgsConstructor 15 @NoArgsConstructor
17 @AllArgsConstructor 16 @AllArgsConstructor
18 @Builder 17 @Builder
19 -public class AppAuthUpdatePasswordReqVO {  
20 -  
21 - @Schema(description = "用户旧密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456")  
22 - @NotBlank(message = "旧密码不能为空")  
23 - @Length(min = 4, max = 16, message = "密码长度为 4-16 位")  
24 - private String oldPassword; 18 +public class AppMemberUserUpdatePasswordReqVO {
25 19
26 @Schema(description = "新密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "buzhidao") 20 @Schema(description = "新密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "buzhidao")
27 @NotEmpty(message = "新密码不能为空") 21 @NotEmpty(message = "新密码不能为空")
28 @Length(min = 4, max = 16, message = "密码长度为 4-16 位") 22 @Length(min = 4, max = 16, message = "密码长度为 4-16 位")
29 private String password; 23 private String password;
  24 +
  25 + @Schema(description = "手机验证码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
  26 + @NotEmpty(message = "手机验证码不能为空")
  27 + @Length(min = 4, max = 6, message = "手机验证码长度为 4-6 位")
  28 + @Pattern(regexp = "^[0-9]+$", message = "手机验证码必须都是数字")
  29 + private String code;
  30 +
30 } 31 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthService.java
@@ -62,13 +62,6 @@ public interface MemberAuthService { @@ -62,13 +62,6 @@ public interface MemberAuthService {
62 String getSocialAuthorizeUrl(Integer type, String redirectUri); 62 String getSocialAuthorizeUrl(Integer type, String redirectUri);
63 63
64 /** 64 /**
65 - * 修改用户密码  
66 - * @param userId 用户id  
67 - * @param userReqVO 用户请求实体类  
68 - */  
69 - void updatePassword(Long userId, AppAuthUpdatePasswordReqVO userReqVO);  
70 -  
71 - /**  
72 * 忘记密码 65 * 忘记密码
73 * @param userReqVO 用户请求实体类 66 * @param userReqVO 用户请求实体类
74 */ 67 */
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceImpl.java
@@ -26,7 +26,6 @@ import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum; @@ -26,7 +26,6 @@ import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum;
26 import cn.iocoder.yudao.module.system.enums.oauth2.OAuth2ClientConstants; 26 import cn.iocoder.yudao.module.system.enums.oauth2.OAuth2ClientConstants;
27 import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum; 27 import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
28 import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; 28 import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
29 -import com.google.common.annotations.VisibleForTesting;  
30 import lombok.extern.slf4j.Slf4j; 29 import lombok.extern.slf4j.Slf4j;
31 import org.springframework.security.crypto.password.PasswordEncoder; 30 import org.springframework.security.crypto.password.PasswordEncoder;
32 import org.springframework.stereotype.Service; 31 import org.springframework.stereotype.Service;
@@ -210,17 +209,6 @@ public class MemberAuthServiceImpl implements MemberAuthService { @@ -210,17 +209,6 @@ public class MemberAuthServiceImpl implements MemberAuthService {
210 } 209 }
211 210
212 @Override 211 @Override
213 - public void updatePassword(Long userId, AppAuthUpdatePasswordReqVO reqVO) {  
214 - // 检验旧密码  
215 - MemberUserDO userDO = checkOldPassword(userId, reqVO.getOldPassword());  
216 -  
217 - // 更新用户密码  
218 - // TODO 芋艿:需要重构到用户模块  
219 - userMapper.updateById(MemberUserDO.builder().id(userDO.getId())  
220 - .password(passwordEncoder.encode(reqVO.getPassword())).build());  
221 - }  
222 -  
223 - @Override  
224 public void resetPassword(AppAuthResetPasswordReqVO reqVO) { 212 public void resetPassword(AppAuthResetPasswordReqVO reqVO) {
225 // 检验用户是否存在 213 // 检验用户是否存在
226 MemberUserDO userDO = checkUserIfExists(reqVO.getMobile()); 214 MemberUserDO userDO = checkUserIfExists(reqVO.getMobile());
@@ -260,26 +248,6 @@ public class MemberAuthServiceImpl implements MemberAuthService { @@ -260,26 +248,6 @@ public class MemberAuthServiceImpl implements MemberAuthService {
260 return AuthConvert.INSTANCE.convert(accessTokenDO); 248 return AuthConvert.INSTANCE.convert(accessTokenDO);
261 } 249 }
262 250
263 - /**  
264 - * 校验旧密码  
265 - *  
266 - * @param id 用户 id  
267 - * @param oldPassword 旧密码  
268 - * @return MemberUserDO 用户实体  
269 - */  
270 - @VisibleForTesting  
271 - public MemberUserDO checkOldPassword(Long id, String oldPassword) {  
272 - MemberUserDO user = userMapper.selectById(id);  
273 - if (user == null) {  
274 - throw exception(USER_NOT_EXISTS);  
275 - }  
276 - // 参数:未加密密码,编码后的密码  
277 - if (!passwordEncoder.matches(oldPassword,user.getPassword())) {  
278 - throw exception(USER_PASSWORD_FAILED);  
279 - }  
280 - return user;  
281 - }  
282 -  
283 public MemberUserDO checkUserIfExists(String mobile) { 251 public MemberUserDO checkUserIfExists(String mobile) {
284 MemberUserDO user = userMapper.selectByMobile(mobile); 252 MemberUserDO user = userMapper.selectByMobile(mobile);
285 if (user == null) { 253 if (user == null) {
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java
@@ -4,8 +4,9 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -4,8 +4,9 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.common.validation.Mobile; 4 import cn.iocoder.yudao.framework.common.validation.Mobile;
5 import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO; 5 import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO;
6 import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO; 6 import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO;
  7 +import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdatePasswordReqVO;
7 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateReqVO; 8 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateReqVO;
8 -import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO; 9 +import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateMobileReqVO;
9 import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; 10 import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
10 11
11 import javax.validation.Valid; 12 import javax.validation.Valid;
@@ -81,9 +82,17 @@ public interface MemberUserService { @@ -81,9 +82,17 @@ public interface MemberUserService {
81 * 【会员】修改手机 82 * 【会员】修改手机
82 * 83 *
83 * @param userId 用户编号 84 * @param userId 用户编号
84 - * @param reqVO 请求实体 85 + * @param reqVO 请求信息
85 */ 86 */
86 - void updateUserMobile(Long userId, AppUserUpdateMobileReqVO reqVO); 87 + void updateUserMobile(Long userId, AppMemberUserUpdateMobileReqVO reqVO);
  88 +
  89 + /**
  90 + * 【会员】修改密码
  91 + *
  92 + * @param userId 用户编号
  93 + * @param reqVO 请求信息
  94 + */
  95 + void updateUserPassword(Long userId, AppMemberUserUpdatePasswordReqVO reqVO);
87 96
88 /** 97 /**
89 * 判断密码是否匹配 98 * 判断密码是否匹配
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
@@ -7,8 +7,9 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -7,8 +7,9 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 import cn.iocoder.yudao.module.infra.api.file.FileApi; 7 import cn.iocoder.yudao.module.infra.api.file.FileApi;
8 import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO; 8 import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO;
9 import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO; 9 import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO;
  10 +import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdatePasswordReqVO;
10 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateReqVO; 11 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateReqVO;
11 -import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO; 12 +import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateMobileReqVO;
12 import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert; 13 import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert;
13 import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; 14 import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
14 import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper; 15 import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
@@ -110,7 +111,7 @@ public class MemberUserServiceImpl implements MemberUserService { @@ -110,7 +111,7 @@ public class MemberUserServiceImpl implements MemberUserService {
110 111
111 @Override 112 @Override
112 @Transactional(rollbackFor = Exception.class) 113 @Transactional(rollbackFor = Exception.class)
113 - public void updateUserMobile(Long userId, AppUserUpdateMobileReqVO reqVO) { 114 + public void updateUserMobile(Long userId, AppMemberUserUpdateMobileReqVO reqVO) {
114 // 检测用户是否存在 115 // 检测用户是否存在
115 MemberUserDO user = validateUserExists(userId); 116 MemberUserDO user = validateUserExists(userId);
116 // 校验新手机是否已经被绑定 117 // 校验新手机是否已经被绑定
@@ -128,6 +129,19 @@ public class MemberUserServiceImpl implements MemberUserService { @@ -128,6 +129,19 @@ public class MemberUserServiceImpl implements MemberUserService {
128 } 129 }
129 130
130 @Override 131 @Override
  132 + public void updateUserPassword(Long userId, AppMemberUserUpdatePasswordReqVO reqVO) {
  133 + // 检测用户是否存在
  134 + MemberUserDO user = validateUserExists(userId);
  135 + // 校验验证码
  136 + smsCodeApi.useSmsCode(new SmsCodeUseReqDTO().setMobile(user.getMobile()).setCode(reqVO.getCode())
  137 + .setScene(SmsSceneEnum.MEMBER_UPDATE_PASSWORD.getScene()).setUsedIp(getClientIP()));
  138 +
  139 + // 更新用户密码
  140 + memberUserMapper.updateById(MemberUserDO.builder().id(userId)
  141 + .password(passwordEncoder.encode(reqVO.getPassword())).build());
  142 + }
  143 +
  144 + @Override
131 public boolean isPasswordMatch(String rawPassword, String encodedPassword) { 145 public boolean isPasswordMatch(String rawPassword, String encodedPassword) {
132 return passwordEncoder.matches(rawPassword, encodedPassword); 146 return passwordEncoder.matches(rawPassword, encodedPassword);
133 } 147 }
yudao-module-member/yudao-module-member-biz/src/test/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceTest.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; @@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
6 import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; 6 import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration;
7 import cn.iocoder.yudao.framework.test.core.ut.BaseDbAndRedisUnitTest; 7 import cn.iocoder.yudao.framework.test.core.ut.BaseDbAndRedisUnitTest;
8 import cn.iocoder.yudao.module.member.controller.app.auth.vo.AppAuthResetPasswordReqVO; 8 import cn.iocoder.yudao.module.member.controller.app.auth.vo.AppAuthResetPasswordReqVO;
9 -import cn.iocoder.yudao.module.member.controller.app.auth.vo.AppAuthUpdatePasswordReqVO; 9 +import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdatePasswordReqVO;
10 import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; 10 import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
11 import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper; 11 import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
12 import cn.iocoder.yudao.module.member.service.user.MemberUserService; 12 import cn.iocoder.yudao.module.member.service.user.MemberUserService;
@@ -71,7 +71,7 @@ public class MemberAuthServiceTest extends BaseDbAndRedisUnitTest { @@ -71,7 +71,7 @@ public class MemberAuthServiceTest extends BaseDbAndRedisUnitTest {
71 String newPassword = randomString(); 71 String newPassword = randomString();
72 72
73 // 请求实体 73 // 请求实体
74 - AppAuthUpdatePasswordReqVO reqVO = AppAuthUpdatePasswordReqVO.builder() 74 + AppMemberUserUpdatePasswordReqVO reqVO = AppMemberUserUpdatePasswordReqVO.builder()
75 .oldPassword(userDO.getPassword()) 75 .oldPassword(userDO.getPassword())
76 .password(newPassword) 76 .password(newPassword)
77 .build(); 77 .build();
yudao-module-member/yudao-module-member-biz/src/test/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImplTest.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; @@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
6 import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; 6 import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration;
7 import cn.iocoder.yudao.framework.test.core.ut.BaseDbAndRedisUnitTest; 7 import cn.iocoder.yudao.framework.test.core.ut.BaseDbAndRedisUnitTest;
8 import cn.iocoder.yudao.module.infra.api.file.FileApi; 8 import cn.iocoder.yudao.module.infra.api.file.FileApi;
9 -import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO; 9 +import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateMobileReqVO;
10 import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; 10 import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
11 import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper; 11 import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
12 import cn.iocoder.yudao.module.member.service.auth.MemberAuthServiceImpl; 12 import cn.iocoder.yudao.module.member.service.auth.MemberAuthServiceImpl;
@@ -114,7 +114,7 @@ public class MemberUserServiceImplTest extends BaseDbAndRedisUnitTest { @@ -114,7 +114,7 @@ public class MemberUserServiceImplTest extends BaseDbAndRedisUnitTest {
114 // 更新手机号 114 // 更新手机号
115 String newMobile = randomNumbers(11); 115 String newMobile = randomNumbers(11);
116 String newCode = randomNumbers(4); 116 String newCode = randomNumbers(4);
117 - AppUserUpdateMobileReqVO reqVO = new AppUserUpdateMobileReqVO(); 117 + AppMemberUserUpdateMobileReqVO reqVO = new AppMemberUserUpdateMobileReqVO();
118 reqVO.setMobile(newMobile); 118 reqVO.setMobile(newMobile);
119 reqVO.setCode(newCode); 119 reqVO.setCode(newCode);
120 reqVO.setOldMobile(oldMobile); 120 reqVO.setOldMobile(oldMobile);
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsSceneEnum.java
@@ -17,8 +17,9 @@ import java.util.Arrays; @@ -17,8 +17,9 @@ import java.util.Arrays;
17 public enum SmsSceneEnum implements IntArrayValuable { 17 public enum SmsSceneEnum implements IntArrayValuable {
18 18
19 MEMBER_LOGIN(1, "user-sms-login", "会员用户 - 手机号登陆"), 19 MEMBER_LOGIN(1, "user-sms-login", "会员用户 - 手机号登陆"),
20 - MEMBER_UPDATE_MOBILE(2, "user-sms-update-mobile", "会员用户 - 修改手机"),  
21 - MEMBER_FORGET_PASSWORD(3, "user-sms-forget-password", "会员用户 - 忘记密码"), 20 + MEMBER_UPDATE_MOBILE(2, "user-update-mobile", "会员用户 - 修改手机"),
  21 + MEMBER_UPDATE_PASSWORD(3, "user-update-mobile", "会员用户 - 修改密码"),
  22 + MEMBER_FORGET_PASSWORD(4, "user-forget-password", "会员用户 - 忘记密码"),
22 23
23 ADMIN_MEMBER_LOGIN(21, "admin-sms-login", "后台用户 - 手机号登录"); 24 ADMIN_MEMBER_LOGIN(21, "admin-sms-login", "后台用户 - 手机号登录");
24 25