diff --git a/web-adapter/src/main/java/com/zcloud/basic/info/app/AppUserController.java b/web-adapter/src/main/java/com/zcloud/basic/info/app/AppUserController.java index b0358f5..39f6a71 100644 --- a/web-adapter/src/main/java/com/zcloud/basic/info/app/AppUserController.java +++ b/web-adapter/src/main/java/com/zcloud/basic/info/app/AppUserController.java @@ -38,6 +38,12 @@ public class AppUserController { return userService.sendPhoneCode(cmd); } + @ApiOperation("密码找回") + @PostMapping("/passwordRecover") + public SingleResponse passwordRecover(@Validated @RequestBody AppUserRegisterCmd cmd) { + return userService.passwordRecover(cmd); + } + @ApiOperation("注册用户") @PostMapping("/register") public SingleResponse register(@Validated @RequestBody AppUserRegisterCmd cmd) { diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/UserAddExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/UserAddExe.java index 034ea45..f65bf96 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/UserAddExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/UserAddExe.java @@ -113,6 +113,7 @@ public class UserAddExe { if(phoneCodeObj == null || !phoneCodeObj.toString().equals(cmd.getPhoneCode())){ throw new BizException("验证码已过期或错误"); } + zcloudRedisUtil.del(RedisConstant.PHONE_CODE_KEY + cmd.getPhone()); CorpInfoDO corpInfoDO = corpInfoRepository.getCorpInfoByCorpName("相关方通用租户"); if(corpInfoDO == null){ diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java index 799a017..cf7d5e5 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java @@ -4,6 +4,7 @@ import com.alibaba.cola.dto.Response; import com.alibaba.cola.exception.BizException; import com.jjb.saas.framework.auth.utils.AuthContext; import com.jjb.saas.system.client.user.facade.UserFacade; +import com.zcloud.basic.info.constant.RedisConstant; import com.zcloud.basic.info.domain.enums.UserChangeRecordStatusEnum; import com.zcloud.basic.info.domain.enums.UserEmploymentFlagEnum; import com.zcloud.basic.info.domain.enums.UserFlowFlagEnum; @@ -52,6 +53,7 @@ public class UserUpdateExe { private final UserCorpRecordGateway userCorpRecordGateway; @DubboReference private UserFacade userFacade; + private ZcloudRedisUtil zcloudRedisUtil; @Transactional(rollbackFor = Exception.class) public void execute(UserUpdateCmd userUpdateCmd) { @@ -109,6 +111,26 @@ public class UserUpdateExe { } + @Transactional(rollbackFor = Exception.class) + public boolean execute(AppUserRegisterCmd cmd) { + + UserE userE = new UserE(); + userE.checkPassword(cmd.getPassword(), cmd.getConfirmPassword()); + // 获取redis验证码 + Object phoneCodeObj = zcloudRedisUtil.get(RedisConstant.PHONE_CODE_KEY + cmd.getPhone()); + if(phoneCodeObj == null || !phoneCodeObj.toString().equals(cmd.getPhoneCode())){ + throw new BizException("验证码已过期或错误"); + } + zcloudRedisUtil.del(RedisConstant.PHONE_CODE_KEY + cmd.getPhone()); + + + BeanUtils.copyProperties(cmd, userE); + userE.encryptionPassword(); + userGateway.updatePassword(userE); + + return true; + } + @Transactional(rollbackFor = Exception.class) public void executeChangePassword(Long id) { @@ -307,4 +329,4 @@ public class UserUpdateExe { //TODO 处理未完成工作 } -} \ No newline at end of file +} diff --git a/web-app/src/main/java/com/zcloud/basic/info/service/UserServiceImpl.java b/web-app/src/main/java/com/zcloud/basic/info/service/UserServiceImpl.java index 4c62fed..5394937 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/service/UserServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/basic/info/service/UserServiceImpl.java @@ -55,6 +55,12 @@ public class UserServiceImpl implements UserServiceI { return SingleResponse.buildSuccess(); } + @Override + public SingleResponse passwordRecover(AppUserRegisterCmd cmd) { + userUpdateExe.execute(cmd); + return SingleResponse.buildSuccess(); + } + @Override public SingleResponse perfectUserInfo(AppUserInfoCmd cmd) { userAddExe.execute(cmd); diff --git a/web-client/src/main/java/com/zcloud/basic/info/api/UserServiceI.java b/web-client/src/main/java/com/zcloud/basic/info/api/UserServiceI.java index 0c64571..2b164d2 100644 --- a/web-client/src/main/java/com/zcloud/basic/info/api/UserServiceI.java +++ b/web-client/src/main/java/com/zcloud/basic/info/api/UserServiceI.java @@ -26,6 +26,8 @@ public interface UserServiceI { SingleResponse register(AppUserRegisterCmd cmd); + SingleResponse passwordRecover(AppUserRegisterCmd cmd); + SingleResponse perfectUserInfo(AppUserInfoCmd cmd); SingleResponse onboarding(AppUserOnboardingCmd cmd);