diff --git a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java index 54a97909f..94c6cec03 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java +++ b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java @@ -322,6 +322,8 @@ public class UserShipperApplicationService { //========================用户注册=========================== UserDO userDO = new UserDO(); userDO.setAvatar(userShipperDO.getAvatar()); + //账号唯一性检验 + checkUserAccountUnique(userShipperDO.getUserAccount(),null,configSwitch.getTopOrganizationId()); userDO.setUserAccount(userShipperDO.getUserAccount()); userDO.setUserName(userShipperDO.getUserName()); userDO.setUserId(userShipperDO.getUserId()); @@ -333,7 +335,8 @@ public class UserShipperApplicationService { userDO.setRoleName(roleName); } - userDO.setUserPhone(userShipperDO.getUserAccount()); + + userDO.setUserPhone(userShipperDO.getUserPhone()); userShipperDO.setShipperType(1); userShipperDO.setDelFlag(1); @@ -1182,4 +1185,29 @@ public class UserShipperApplicationService { // 根据userId查询货主信息 return userShipperDomainService.selectByUserId(userId); } + + + /** + * 校验登录账号唯一性 + * @param userAccount 登录账号 + * @param userId 用户ID(编辑时传入,用于排除自身;新增时传null) + * @param topOrganizationId 顶级组织ID + */ + private void checkUserAccountUnique(String userAccount, Long userId, Long topOrganizationId) { + if (StringUtils.isBlank(userAccount)) { + return; // 账号为空,不校验 + } + + UserDO checkDO = new UserDO(); + checkDO.setTopOrganizationId(topOrganizationId); + checkDO.setUserAccount(userAccount); + checkDO.setUserId(userId); + + UserPo existUser = userDomainService.findByTopOrganizationIdAndUserAccount(checkDO); + if (existUser != null) { + throw new ServiceException("登录账号已存在"); + } + } + + } \ No newline at end of file