7 天以前 b39154d1e708d7f8dd1f2832d881d853d583fe47
```
fix(customer): 解决客户名称重复问题

- 在application-dev.yml中修正数据库URL配置
- 添加ServiceException导入用于异常处理
- 在新增客户时校验客户名称唯一性
- 在修改客户时校验客户名称唯一性(排除自身)
- 新增checkCustomerNameUnique方法实现名称唯一性检查
- 使用LambdaQueryWrapper构建查询条件进行重复验证
```
已修改2个文件
29 ■■■■■ 文件已修改
src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-dev.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -16,6 +16,7 @@
import com.ruoyi.basic.pojo.CustomerUser;
import com.ruoyi.basic.service.*;
import com.ruoyi.basic.vo.CustomerVo;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
@@ -199,6 +200,8 @@
        LoginUser loginUser = SecurityUtils.getLoginUser();
        Long tenantId = loginUser.getTenantId();
        customer.setTenantId(tenantId);
        // 校验客户名称唯一性
        checkCustomerNameUnique(customer.getCustomerName(), tenantId, null);
        return customerMapper.insert(customer);
    }
@@ -213,10 +216,34 @@
        LoginUser loginUser = SecurityUtils.getLoginUser();
        Long tenantId = loginUser.getTenantId();
        customer.setTenantId(tenantId);
        // 校验客户名称唯一性(排除自身)
        checkCustomerNameUnique(customer.getCustomerName(), tenantId, customer.getId());
        return customerMapper.updateById(customer);
    }
    /**
     * 校验客户名称唯一性
     *
     * @param customerName 客户名称
     * @param tenantId 租户ID
     * @param excludeId 排除的客户ID(修改时排除自身)
     */
    private void checkCustomerNameUnique(String customerName, Long tenantId, Long excludeId) {
        if (StringUtils.isNotEmpty(customerName)) {
            LambdaQueryWrapper<Customer> queryWrapper = new LambdaQueryWrapper<>();
            queryWrapper.eq(Customer::getTenantId, tenantId)
                    .eq(Customer::getCustomerName, customerName);
            if (excludeId != null) {
                queryWrapper.ne(Customer::getId, excludeId);
            }
            Long count = customerMapper.selectCount(queryWrapper);
            if (count > 0) {
                throw new ServiceException("客户名称'" + customerName + "'已存在,请修改");
            }
        }
    }
    /**
     * 批量删除客户档案
     *
     * @param ids 需要删除的客户档案主键
src/main/resources/application-dev.yml
@@ -74,7 +74,7 @@
    druid:
      # 主库数据源
      master:
        url: jdbc:mysql://localhost:3306/product-inventory-management-new-pro?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        url: jdbc:mysql://localhost:3306/product-inventory-management-jghg-pro?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: root
        password: 123456
      # 从库数据源