maven
2026-03-16 69e1d95373227f364b2fa6d3852be24bafd1a9dc
src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.dto.ProductAndModelDto;
import com.ruoyi.basic.dto.ProductDto;
import com.ruoyi.basic.dto.ProductTreeDto;
import com.ruoyi.basic.mapper.ProductMapper;
@@ -15,12 +16,14 @@
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.web.domain.AjaxResult;
import lombok.AllArgsConstructor;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@Service
@AllArgsConstructor
@@ -57,6 +60,11 @@
    @Override
    public IPage<ProductModel> listPageProductModel(Page<ProductModel> page, ProductModel productModel) {
        return productModelMapper.listPageProductModel(page, productModel);
    }
    @Override
    public AjaxResult listPage(Page page, ProductAndModelDto productDto) {
        return AjaxResult.success(productModelMapper.listPage(page, productDto));
    }
@@ -116,14 +124,24 @@
    @Override
    public int delProductByIds(Long[] ids) {
        // 1. 删除子表 product_model 中关联的数据
        LambdaQueryWrapper<ProductModel> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.in(ProductModel::getProductId, ids);
        productModelMapper.delete(queryWrapper);
        for (Long id : ids) {
            LambdaQueryWrapper<ProductModel> queryWrapper = new LambdaQueryWrapper<>();
            queryWrapper.eq(ProductModel::getId, id);
            List<ProductModel> productModels = productModelMapper.selectList(queryWrapper);
            if(CollectionUtils.isNotEmpty(productModels)){
                List<ProductModel> productList = productModelMapper.selectList(new LambdaQueryWrapper<ProductModel>()
                        .eq(ProductModel::getProductId, productModels.get(0).getProductId()));
                if(CollectionUtils.isNotEmpty(productList) && productList.size() == 1){
                    // 当只有一条数据时删除产品
                    productMapper.deleteBatchIds(productModels.stream()
                            .map(ProductModel::getProductId)
                            .collect(Collectors.toList()));
                }
                return productModelMapper.deleteBatchIds(Arrays.asList(ids));
        // 2. 删除主表 product 数据
        int deleteCount = productMapper.deleteBatchIds(Arrays.asList(ids));
        return deleteCount;
            }
        }
        return 1;
    }
}