From 73eb9c4db1ed8bc272be125a23c9d5d8ca78a0cf Mon Sep 17 00:00:00 2001 From: SondonYong Date: Fri, 5 Dec 2025 09:37:08 +0800 Subject: [PATCH] =?UTF-8?q?dev:app=E7=AB=AF=E6=B3=A8=E9=94=80=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/info/app/AppUserController.java | 7 +++++ .../zcloud/basic/info/command/UserAddExe.java | 2 +- .../basic/info/command/UserRemoveExe.java | 31 +++++++++++++++++-- .../basic/info/service/UserServiceImpl.java | 5 +++ .../zcloud/basic/info/api/UserServiceI.java | 2 ++ .../basic/info/dto/AppUserResignationCmd.java | 3 +- .../repository/UserCorpRepository.java | 2 ++ .../impl/UserCorpRepositoryImpl.java | 8 +++++ 8 files changed, 55 insertions(+), 5 deletions(-) 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 eaffd6d..b7b7a06 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 @@ -83,6 +83,13 @@ public class AppUserController { return SingleResponse.of(userService.updatePasswordFromApp(cmd)); } + @ApiOperation("校验是否还有入职信息") + @PostMapping("/checkOnboarding") + public Response checkOnboarding(@Validated @RequestBody AppUserLogOutCmd cmd){ + userService.checkOnboarding(cmd); + return SingleResponse.buildSuccess(); + } + @ApiOperation("注销") @PostMapping("/logOut") public Response logOut(@Validated @RequestBody AppUserLogOutCmd 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 383e9ff..0a8ee1c 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 @@ -149,7 +149,7 @@ public class UserAddExe { /** * 如果是离职的话, 则将离职改为入职 */ - List userCorpDOS = userCorpRepository.listByUserIdAndCorpIdAndNoStatus(cmd.getId(), cmd.getCorpinfoId(), 0); + List userCorpDOS = userCorpRepository.listByUserIdAndCorpIdAndStatus(cmd.getId(), cmd.getCorpinfoId(), 0); if(CollUtil.isNotEmpty(userCorpDOS)){ throw new BizException("该用户在当前企业存在未离职信息,无法入职"); } diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/UserRemoveExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/UserRemoveExe.java index ab1df84..3143fea 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/UserRemoveExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/UserRemoveExe.java @@ -1,10 +1,15 @@ package com.zcloud.basic.info.command; +import cn.hutool.core.collection.CollUtil; import com.alibaba.cola.exception.BizException; import com.jjb.saas.system.client.user.facade.UserFacade; +import com.zcloud.basic.info.domain.enums.UserEmploymentFlagEnum; import com.zcloud.basic.info.domain.gateway.UserGateway; import com.zcloud.basic.info.dto.AppUserLogOutCmd; +import com.zcloud.basic.info.persistence.dataobject.UserCorpDO; +import com.zcloud.basic.info.persistence.dataobject.UserDO; import com.zcloud.basic.info.persistence.repository.UserCorpRepository; +import com.zcloud.basic.info.persistence.repository.UserRepository; import com.zcloud.gbscommon.utils.Const; import com.zcloud.gbscommon.utils.ZcloudRedisUtil; import lombok.AllArgsConstructor; @@ -14,7 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; - +import java.util.List; /** @@ -26,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional; @AllArgsConstructor public class UserRemoveExe { private final UserGateway userGateway; + private final UserRepository userRepository; private final UserCorpRepository userCorpRepository; @DubboReference(check = false) private UserFacade userFacade; @@ -46,6 +52,14 @@ public class UserRemoveExe { @Transactional(rollbackFor = Exception.class) public boolean execute(AppUserLogOutCmd cmd) { + + // 获取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()); + try { // 删除底座用户信息 userFacade.delete(cmd.getId()); @@ -58,7 +72,20 @@ public class UserRemoveExe { e.printStackTrace(); throw new BizException("删除失败"); } - // zcloudRedisUtil.del(Const.REDIS_USER_PREFIX+id); + return true; + } + + @Transactional(rollbackFor = Exception.class) + public boolean executeCheckOnboarding(AppUserLogOutCmd cmd) { + // 校验是否还有入职信息 + UserDO userDO = userRepository.getInfoById(cmd.getId()); + if(!UserEmploymentFlagEnum.RESIGNATION.equals(userDO.getEmploymentFlag().toString())){ + return false; + } + List userCorpDOS = userCorpRepository.listByUserIdAndNoStatus(cmd.getId(), 0); + if(CollUtil.isNotEmpty(userCorpDOS)){ + return false; + } return true; } 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 56bf554..fb7c12d 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 @@ -202,5 +202,10 @@ public class UserServiceImpl implements UserServiceI { public void logOut(AppUserLogOutCmd cmd) { userRemoveExe.execute(cmd); } + + @Override + public void checkOnboarding(AppUserLogOutCmd cmd) { + userRemoveExe.executeCheckOnboarding(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 27ffa48..1eda23f 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 @@ -79,5 +79,7 @@ public interface UserServiceI { Boolean updatePasswordFromApp(AppUserUpdatePassWordCmd cmd); void logOut(AppUserLogOutCmd cmd); + + void checkOnboarding(AppUserLogOutCmd cmd); } diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/AppUserResignationCmd.java b/web-client/src/main/java/com/zcloud/basic/info/dto/AppUserResignationCmd.java index 8fd0dad..531f2c7 100644 --- a/web-client/src/main/java/com/zcloud/basic/info/dto/AppUserResignationCmd.java +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/AppUserResignationCmd.java @@ -30,8 +30,7 @@ public class AppUserResignationCmd implements Serializable { @NotNull(message = "企业id不能为空") private Long corpinfoId; //离职原因 - @ApiModelProperty(value = "离职原因", name = "resignationReason", required = true) - @NotEmpty(message = "离职原因不能为空") + @ApiModelProperty(value = "离职原因", name = "resignationReason") private String resignationReason; diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserCorpRepository.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserCorpRepository.java index 97f339c..be15ce0 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserCorpRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserCorpRepository.java @@ -25,6 +25,8 @@ public interface UserCorpRepository extends BaseRepository { List listByUserIdAndCorpIdAndStatus(Long userId, Long corpinfoId, Integer status); + List listByUserIdAndNoStatus(Long userId, Integer status); + UserE executeResignation(UserCorpDO userCorpDO, Long corpinfoId, Integer employmentFlag); UserE executeReviewStatus(Long id, Long corpinfoId, Integer reviewStatus); diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserCorpRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserCorpRepositoryImpl.java index a1fc383..198c904 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserCorpRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserCorpRepositoryImpl.java @@ -71,6 +71,14 @@ public class UserCorpRepositoryImpl extends BaseRepositoryImpl listByUserIdAndNoStatus(Long userId, Integer status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("user_id", userId); + queryWrapper.ne("employment_flag", status); + return list(queryWrapper); + } + @Override public UserE executeResignation(UserCorpDO userCorpDO, Long corpinfoId, Integer employmentFlag) { userCorpDO.setEmploymentFlag(employmentFlag);