package com.yuanchu.limslaboratory.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.yuanchu.limslaboratory.pojo.Product; import com.yuanchu.limslaboratory.mapper.ProductMapper; import com.yuanchu.limslaboratory.service.ProductService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import com.yuanchu.limslaboratory.service.UserService; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Map; /** *

* 服务实现类 *

* * @author 江苏鵷雏网络科技有限公司 * @since 2023-07-17 */ @Service public class ProductServiceImpl extends ServiceImpl implements ProductService { @Resource private ProductMapper productMapper; @Override public List selectProductByMaterialId(String materialId) { return productMapper.selectProductByMaterialId(materialId); } @Autowired private UserService userService; @Override public Integer addProductInformation(Product product) { return productMapper.insert(product); } @Override public List> getListProductInformation(Integer materialId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Product::getMaterialId, materialId); wrapper.select(Product::getId, Product::getName, Product::getFather); wrapper.groupBy(Product::getFather); List> products = productMapper.selectMaps(wrapper); for (Map product:products){ if (!ObjectUtils.isEmpty(product.get("father"))){ product.remove("name"); product.remove("id"); LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); wrapper1.eq(Product::getFather, product.get("father")); wrapper1.select(Product::getId, Product::getName); List> maps = productMapper.selectMaps(wrapper1); product.put("sonProduct", maps); } } for (Map product:products){ System.out.println(product); } return products; } @Override public Map getProductInformation(Integer productId) { Map productMap = productMapper.getProductInformation(productId); String userName = userService.selectByUserId((Integer) productMap.get("user_id")); productMap.remove("user_id"); productMap.put("userName", userName); return productMap; } @Override public Integer deleteProductInformation(Integer productId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Product::getId, productId); return productMapper.delete(wrapper); } @Override public void deleteProductEqMaterialId(List materialListId) { for (String materialId : materialListId){ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Product::getMaterialId, materialId); wrapper.select(Product::getId); List products = productMapper.selectList(wrapper); List productDeleteId = new ArrayList<>(); for (Product product : products){ productDeleteId.add(product.getId()); } productMapper.deleteBatchIds(productDeleteId); } } }