| | |
| | | package com.ruoyi.basic.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | 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; |
| | |
| | | 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 |
| | |
| | | return tree; |
| | | } |
| | | |
| | | @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)); |
| | | } |
| | | |
| | | |
| | | // 递归构建子节点 |
| | |
| | | @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; |
| | | } |
| | | |
| | | } |