feat: 增改时校验客户名称和编号唯一

This commit is contained in:
caiyuchao
2025-05-26 11:14:26 +08:00
parent 25146b57c5
commit 3ee5944153
2 changed files with 20 additions and 1 deletions

View File

@@ -8,5 +8,7 @@ import org.agt.framework.common.exception.ErrorCode;
* @since: 2025-05-22
*/
public interface ErrorCodeConstants {
ErrorCode CUSTOMER_NOT_EXISTS = new ErrorCode(2000, "客户不存在");
ErrorCode CUSTOMER_NOT_EXISTS = new ErrorCode(1_100_001_001, "客户不存在");
ErrorCode CUSTOMER_NAME_DUPLICATE = new ErrorCode(1_100_001_002, "客户名称`{}`已存在");
ErrorCode CUSTOMER_CODE_DUPLICATE = new ErrorCode(1_100_001_003, "客户编号`{}`已存在");
}

View File

@@ -12,6 +12,8 @@ import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import static org.agt.framework.common.exception.util.ServiceExceptionUtil.exception;
import static org.agt.module.license.enums.ErrorCodeConstants.CUSTOMER_CODE_DUPLICATE;
import static org.agt.module.license.enums.ErrorCodeConstants.CUSTOMER_NAME_DUPLICATE;
import static org.agt.module.license.enums.ErrorCodeConstants.CUSTOMER_NOT_EXISTS;
/**
@@ -28,6 +30,8 @@ public class CustomerServiceImpl implements CustomerService {
@Override
public Long createCustomer(CustomerSaveReqVO createReqVO) {
// 校验客户名称和编号是否唯一
validateCustomerNameAndCodeUnique(createReqVO.getName(), createReqVO.getCode(), createReqVO.getId());
// 插入
CustomerDO customer = BeanUtils.toBean(createReqVO, CustomerDO.class);
customerMapper.insert(customer);
@@ -37,6 +41,8 @@ public class CustomerServiceImpl implements CustomerService {
@Override
public void updateCustomer(CustomerSaveReqVO updateReqVO) {
// 校验客户名称和编号是否唯一
validateCustomerNameAndCodeUnique(updateReqVO.getName(), updateReqVO.getCode(), updateReqVO.getId());
// 校验存在
validateCustomerExists(updateReqVO.getId());
// 更新
@@ -58,6 +64,17 @@ public class CustomerServiceImpl implements CustomerService {
}
}
private void validateCustomerNameAndCodeUnique(String name, String code, Long id) {
Boolean isNameUnique = validateCustomerNameUnique(name, id);
if (!isNameUnique) {
throw exception(CUSTOMER_NAME_DUPLICATE, name);
}
Boolean isCodeUnique = validateCustomerCodeUnique(code, id);
if (!isCodeUnique) {
throw exception(CUSTOMER_CODE_DUPLICATE, code);
}
}
@Override
public CustomerDO getCustomer(Long id) {
return customerMapper.selectById(id);