5 小时以前 55d694aaae4e421b5e55cd941500e08f85cb5d4d
src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -365,20 +366,34 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void recycleCustomer(CustomerDto customerDto) {
        Customer customer = customerMapper.selectById(customerDto.getId());
        if (customer.getType() == 1 && customer.getIsAssigned() == 1) {  // 公海且已分配
            validatePublicSeaRecyclePermission(customer.getId());
            customer.setIsAssigned(0);
            customer.setUsageStatus(0L);
            customer.setUsageUser(0L);
            customerMapper.updateById(customer);
            // 删除该客户的所有共享关系
            customerUserService.remove(
                new QueryWrapper<CustomerUser>().lambda()
                    .eq(CustomerUser::getCustomerId, customerDto.getId())
            );
        if (customerDto == null || customerDto.getId() == null) {
            throw new RuntimeException("客户ID不能为空");
        }
        Customer customer = customerMapper.selectById(customerDto.getId());
        if (customer == null) {
            throw new RuntimeException("客户档案不存在");
        }
        boolean assigned = Objects.equals(customer.getIsAssigned(), 1)
                || Objects.equals(customer.getUsageStatus(), 1L)
                || (customer.getUsageUser() != null && customer.getUsageUser() > 0);
        if (!assigned) {
            throw new RuntimeException("该客户当前未处于领用状态,无法回收");
        }
        validatePublicSeaRecyclePermission(customer.getId());
        int updated = customerMapper.update(null, new UpdateWrapper<Customer>()
                .eq("id", customer.getId())
                .set("is_assigned", 0)
                .set("usage_status", 0)
                .set("usage_user", null));
        if (updated == 0) {
            throw new RuntimeException("客户回收失败,请刷新后重试");
        }
        // 删除该客户的所有共享关系
        customerUserService.remove(
            new QueryWrapper<CustomerUser>().lambda()
                .eq(CustomerUser::getCustomerId, customerDto.getId())
        );
    }
    // 客户共享