diff --git a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserApplicationService.java b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserApplicationService.java index 3e9694159..900aa8caa 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserApplicationService.java +++ b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserApplicationService.java @@ -1319,7 +1319,10 @@ public class UserApplicationService { //组装新增用户信息 addUserInfoShipper(userDO); UserEntity userEntity = userDomainService.addUser(userDO); - if ((StringUtils.isEmpty(userEntity.getRoleCode()) || !RoleEnum.PLAT_ADMIN.getCode().equals(userEntity.getRoleCode())) && + // 客户管理(addCustomer 等)已指定 customer/supplier 并写入 user_role,不可再覆盖为默认货主 ownerCargo + if (isCustomerManagementPresetRole(userEntity.getRoleCode())) { + // 保持插入结果,不再改 role_code / user_role + } else if ((StringUtils.isEmpty(userEntity.getRoleCode()) || !RoleEnum.PLAT_ADMIN.getCode().equals(userEntity.getRoleCode())) && (userDO.getUserAccountType() == null || userDO.getUserAccountType() < 4)) { //给用户分配默认普通角色权限 RoleDo roleDo = new RoleDo(); @@ -1432,7 +1435,9 @@ public class UserApplicationService { //组装新增用户信息 addUserInfo(userDO); UserEntity userEntity = userDomainService.addUser(userDO); - if ((StringUtils.isEmpty(userEntity.getRoleCode()) || !RoleEnum.PLAT_ADMIN.getCode().equals(userEntity.getRoleCode())) && + if (isCustomerManagementPresetRole(userEntity.getRoleCode())) { + // 保持插入结果,不再改 role_code / user_role + } else if ((StringUtils.isEmpty(userEntity.getRoleCode()) || !RoleEnum.PLAT_ADMIN.getCode().equals(userEntity.getRoleCode())) && (userDO.getUserAccountType() == null || userDO.getUserAccountType() < 4)) { //给用户分配默认普通角色权限 RoleDo roleDo = new RoleDo(); @@ -5139,6 +5144,18 @@ public class UserApplicationService { return userShipperDO; } + /** + * 客户管理入口(如 addCustomer)已按 customer/supplier 写入角色与 user_role, + * addUser 内对「非 plat_admin」统一覆盖为默认货主时会误伤此类用户,需跳过覆盖。 + */ + private static boolean isCustomerManagementPresetRole(String roleCode) { + if (roleCode == null) { + return false; + } + return RoleEnum.CUSTOMER.getCode().equals(roleCode) + || RoleEnum.SUPPLIER.getCode().equals(roleCode); + } + /** * @return boolean * @description 判断是否开启仓配一体 diff --git a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/CustomerDTO.java b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/CustomerDTO.java index fb3fc2460..badac2c2e 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/CustomerDTO.java +++ b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/CustomerDTO.java @@ -31,7 +31,6 @@ public class CustomerDTO extends BaseVOEntity { private String userName; @ApiModelProperty("联系人") - @NotBlank(message = "联系人不能为空") private String emergencyContactName; @ApiModelProperty("联系电话")