package com.yuanchu.limslaboratory.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 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(String 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) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(Product::getId, productId); wrapper.set(Product::getState, 0); return productMapper.update(new Product(), wrapper); } @Override public void MaterialIdDeleteProduct(List deleteMaterialId) { for (String materialId : deleteMaterialId) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(Product::getMaterialId, materialId); wrapper.set(Product::getState, 0); productMapper.update(new Product(), wrapper); } } @Override public Integer updateMaterialInformation(Product product) { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(Product::getId, product.getId()); return productMapper.update(product, updateWrapper); } //通过项目名查询项目的试验方法 @Override public List selectInstrumentByProname(String name) { return productMapper.selectInstrumentByProname(name); } }