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.mapper.*; import com.ruoyi.basic.pojo.*; import com.ruoyi.basic.service.WorkShopFileService; import com.ruoyi.common.config.MinioConfig; import com.ruoyi.common.utils.file.MinioUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; /** * @description 针对表【work_shop_file(车间附件名称)】的数据库操作Service实现 * @createDate 2024-03-12 16:17:55 */ @Service public class WorkShopFileServiceImpl extends ServiceImpl implements WorkShopFileService { @Resource private WorkShopFileMapper workShopFileMapper; @Resource private ProductPartMapper productPartMapper; @Resource private ProductMapper productMapper; @Resource private StructureTestObjectPartMapper structureTestObjectPartMapper; @Resource private StructureTestObjectMapper structureTestObjectMapper; @Resource private MinioUtils minioUtils; @Autowired private MinioConfig minioConfig; @Override public int delFile(Integer id) { // 若 id 为空,直接返回 0,表示未删除任何记录 if (id == null) { return 0; } try { // 查询要删除的文件信息 WorkShopFile file = workShopFileMapper.selectById(id); if (file != null && file.getFileUrl() != null) { // 检查 MinIO 中文件是否存在 if (minioUtils.objectExists(minioConfig.getBucketName(), file.getFileUrl())) { // 先删除 MinIO 中的对象 minioUtils.removeObjectsResult(minioConfig.getBucketName(), file.getFileUrl()); } } // 执行数据库删除操作 int deleteResult = workShopFileMapper.deleteById(id); return deleteResult; } catch (Exception e) { // 处理异常,可根据实际情况记录日志或抛出自定义异常 e.printStackTrace(); return 0; } } @Override public IPage partFileList(Page page, String partNo) { StructureTestObject structureTestObject = findStructureTestObjectByPartNo(partNo); if (structureTestObject != null && structureTestObject.getWorkShopId() != null) { return workShopFileMapper.selectPage(page, new LambdaQueryWrapper().eq(WorkShopFile::getWorkShopId, structureTestObject.getWorkShopId())); } return null; } @Override public List fileListById(Integer workShopId) { return workShopFileMapper.selectList(new LambdaQueryWrapper().eq(WorkShopFile::getWorkShopId,workShopId)); } private StructureTestObject findStructureTestObjectByPartNo(String partNo) { ProductPart productPart = productPartMapper.selectOne(new LambdaQueryWrapper().eq(ProductPart::getPartNo, partNo)); if (productPart != null) { Product product = productMapper.selectById(productPart.getProductId()); if (product != null) { return structureTestObjectMapper.selectById(product.getObjectId()); } } StructureTestObjectPart structureTestObjectPart = structureTestObjectPartMapper.selectOne(new LambdaQueryWrapper().eq(StructureTestObjectPart::getPartNo, partNo)); if (structureTestObjectPart != null) { return structureTestObjectMapper.selectById(structureTestObjectPart.getTestObjectId()); } return null; } }