Просмотр исходного кода

编码改为手动输入后判重

zhaopeiqing 6 месяцев назад
Родитель
Сommit
624edeaa94

+ 2 - 0
yudao-module-customer/yudao-module-customer-api/src/main/java/cn/iocoder/yudao/module/customer/enums/ErrorCodeConstants.java

@@ -12,4 +12,6 @@ public interface ErrorCodeConstants {
     // ========== 客户模块 1-014-000-000 ==========
     ErrorCode CUSTOMER_INFO_NOT_EXISTS = new ErrorCode(1_014_000_000, "客户信息不存在");
     ErrorCode CUSTOMER_BUSINESS_OPPORTUNITY_NOT_EXISTS = new ErrorCode(1_014_000_001, "客户商机不存在");
+    ErrorCode CUSTOMER_CODE_EXISTS = new ErrorCode(1_014_000_002, "客户编码已存在");
+    ErrorCode CUSTOMER_BUSINESS_CODE_EXISTS = new ErrorCode(1_014_000_003, "商机编码已存在");
 }

+ 25 - 2
yudao-module-customer/yudao-module-customer-biz/src/main/java/cn/iocoder/yudao/module/customer/service/businessopportunity/CustomerBusinessOpportunityServiceImpl.java

@@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.security.core.LoginUser;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
 import cn.iocoder.yudao.module.customer.controller.admin.info.vo.CustomerInfoRespVO;
+import cn.iocoder.yudao.module.customer.dal.dataobject.info.CustomerInfoDO;
 import cn.iocoder.yudao.module.customer.service.info.CustomerInfoService;
 import cn.iocoder.yudao.module.employee.api.EmployeeApi;
 import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
@@ -12,6 +13,7 @@ import cn.iocoder.yudao.module.infra.api.file.FileApi;
 import cn.iocoder.yudao.module.infra.api.file.dto.FileDTO;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
@@ -30,7 +32,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.customer.dal.mysql.businessopportunity.CustomerBusinessOpportunityMapper;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.iocoder.yudao.module.customer.enums.ErrorCodeConstants.CUSTOMER_BUSINESS_OPPORTUNITY_NOT_EXISTS;
+import static cn.iocoder.yudao.module.customer.enums.ErrorCodeConstants.*;
 
 /**
  * 客户商机 Service 实现类
@@ -54,6 +56,14 @@ public class CustomerBusinessOpportunityServiceImpl implements CustomerBusinessO
 
     @Override
     public Long createBusinessOpportunity(CustomerBusinessOpportunitySaveReqVO createReqVO) {
+        // 商机编号判重
+        if (StringUtils.isNotBlank(createReqVO.getOpportunityCode())
+                && businessOpportunityMapper.selectOne(
+                        new LambdaQueryWrapper<CustomerBusinessOpportunityDO>()
+                                .eq(CustomerBusinessOpportunityDO::getOpportunityCode,
+                                        createReqVO.getOpportunityCode())) != null) {
+            throw exception(CUSTOMER_BUSINESS_CODE_EXISTS);
+        }
         // 获取用户信息和租户ID
         LoginUser user = SecurityFrameworkUtils.getLoginUser();
         Long tenantId = user != null && user.getTenantId() != null ? user.getTenantId() : 0L;
@@ -81,7 +91,20 @@ public class CustomerBusinessOpportunityServiceImpl implements CustomerBusinessO
     @Override
     public void updateBusinessOpportunity(CustomerBusinessOpportunitySaveReqVO updateReqVO) {
         // 校验存在
-        validateBusinessOpportunityExists(updateReqVO.getId());
+//        validateBusinessOpportunityExists(updateReqVO.getId());
+        CustomerBusinessOpportunityDO info = businessOpportunityMapper.selectById(updateReqVO.getId());
+        if (info == null) {
+            throw exception(CUSTOMER_BUSINESS_CODE_EXISTS);
+        }
+        if (StringUtils.isNotBlank(updateReqVO.getOpportunityCode())
+                && !info.getOpportunityCode().equals(updateReqVO.getOpportunityCode())) {// 编码改变,需要判重
+            if (businessOpportunityMapper.selectOne(
+                    new LambdaQueryWrapper<CustomerBusinessOpportunityDO>()
+                            .eq(CustomerBusinessOpportunityDO::getOpportunityCode,
+                                    updateReqVO.getOpportunityCode())) != null) {
+                throw exception(CUSTOMER_BUSINESS_CODE_EXISTS);
+            }
+        }
         // 保存业务uuid到附件中
         fileApi.updateFileBiz(updateReqVO.getFileIdList(), updateReqVO.getOpportunityId());
         // 获取用户信息和租户ID

+ 24 - 1
yudao-module-customer/yudao-module-customer-biz/src/main/java/cn/iocoder/yudao/module/customer/service/info/CustomerInfoServiceImpl.java

@@ -29,6 +29,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.customer.dal.mysql.info.CustomerInfoMapper;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.customer.enums.ErrorCodeConstants.CUSTOMER_CODE_EXISTS;
 import static cn.iocoder.yudao.module.customer.enums.ErrorCodeConstants.CUSTOMER_INFO_NOT_EXISTS;
 
 /**
@@ -51,6 +52,14 @@ public class CustomerInfoServiceImpl implements CustomerInfoService {
 
     @Override
     public Long createInfo(CustomerInfoSaveReqVO createReqVO) {
+        // 客户编号判重
+        if (StringUtils.isNotBlank(createReqVO.getCustomerCode())
+                && infoMapper.selectOne(
+                        new LambdaQueryWrapper<CustomerInfoDO>()
+                                .eq(CustomerInfoDO::getCustomerCode,
+                                        createReqVO.getCustomerCode())) != null) {
+            throw exception(CUSTOMER_CODE_EXISTS);
+        }
         // 获取用户信息和租户ID
         LoginUser user = SecurityFrameworkUtils.getLoginUser();
 //        Long tenantId = user != null && user.getTenantId() != null ? user.getTenantId() : 0L;
@@ -78,7 +87,21 @@ public class CustomerInfoServiceImpl implements CustomerInfoService {
     @Override
     public void updateInfo(CustomerInfoSaveReqVO updateReqVO) {
         // 校验存在
-        validateInfoExists(updateReqVO.getId());
+//        validateInfoExists(updateReqVO.getId());
+        CustomerInfoDO info = infoMapper.selectById(updateReqVO.getId());
+        if (info == null) {
+            throw exception(CUSTOMER_INFO_NOT_EXISTS);
+        }
+        if (StringUtils.isNotBlank(updateReqVO.getCustomerCode())
+                && !info.getCustomerCode().equals(updateReqVO.getCustomerCode())) {// 编码改变,需要判重
+            // 客户编号判重
+            if (infoMapper.selectOne(
+                    new LambdaQueryWrapper<CustomerInfoDO>()
+                            .eq(CustomerInfoDO::getCustomerCode,
+                                    updateReqVO.getCustomerCode())) != null) {
+                throw exception(CUSTOMER_CODE_EXISTS);
+            }
+        }
         // 保存业务uuid到附件中
         fileApi.updateFileBiz(updateReqVO.getFileIdList(), updateReqVO.getCustomerId());
         // 获取用户信息和租户ID