package com.cloudroam.service.impl; import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.cloudroam.common.enumeration.FileReTypeEnum; import com.cloudroam.dto.file.FileImageInfo; import com.cloudroam.model.FileDO; import com.cloudroam.model.LinFileReDO; import com.cloudroam.mapper.LinFileReMapper; import com.cloudroam.service.FileService; import com.cloudroam.service.LinFileReService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** *

* 文件关联关系表 服务实现类 *

* * @author generator@TaoJie * @since 2024-08-06 */ @Service public class LinFileReServiceImpl extends ServiceImpl implements LinFileReService { @Autowired private FileService fileService; @Override public List getByReIdType(String reid, FileReTypeEnum fileReTypeEnum) { QueryWrapper fileReDOQueryWrapper=new QueryWrapper<>(); fileReDOQueryWrapper.lambda() .eq(StringUtils.isNotBlank(reid),LinFileReDO::getReId,reid) .eq(!Objects.isNull(fileReTypeEnum),LinFileReDO::getType,fileReTypeEnum.getCode()); final List fileReDOList = baseMapper.selectList(fileReDOQueryWrapper); final List fileIds = fileReDOList.stream().map(fileReDO -> fileReDO.getFileId()).collect(Collectors.toList()); return fileIds; } @Override public List getFileByReIdType(String reid, FileReTypeEnum fileReTypeEnum) { if(StringUtils.isNotBlank(reid)){ final List fileIds = this.getByReIdType(reid, fileReTypeEnum); if(!CollectionUtils.isEmpty(fileIds)){ final List fileDOS = fileService.getBaseMapper().selectBatchIds(fileIds); return fileDOS; } } return null; } @Transactional @Override public boolean saveFileReByReIdType(String reId,List ganteImgList, FileReTypeEnum fileReTypeEnum) { // 甘特图 // 先删除甘特图信息 QueryWrapper linFileReDOQueryWrapper=new QueryWrapper<>(); linFileReDOQueryWrapper.lambda() .eq(LinFileReDO::getReId,reId) .eq(LinFileReDO::getType,fileReTypeEnum.getCode()) ; remove(linFileReDOQueryWrapper); if(CollectionUtils.isEmpty(ganteImgList)) return false; // 保存甘特图信息 final List fileReDOList = ganteImgList.stream().map(fileImageInfo -> { LinFileReDO linFileReDO = new LinFileReDO(); linFileReDO.setId(IdUtil.simpleUUID()); linFileReDO.setFileId(String.valueOf(fileImageInfo.getImgId())); linFileReDO.setReId(reId); linFileReDO.setType(fileReTypeEnum.getCode()); return linFileReDO; }).collect(Collectors.toList()); saveBatch(fileReDOList); return true; } @Override public List transFileToFileImageInfo(List fileList) { if(!CollectionUtils.isEmpty(fileList)){ List fileImageInfos=fileList.stream().map(fileDO -> { FileImageInfo fileImageInfo=new FileImageInfo(); fileImageInfo.setId(String.valueOf(fileDO.getId())); fileImageInfo.setImgId(Integer.valueOf(fileDO.getId())); fileImageInfo.setDisplay(fileDO.getPath()); return fileImageInfo; }).collect(Collectors.toList()); return fileImageInfos; }else{ return null; } } @Transactional @Override public boolean saveFileAnyReByReIdType(String reId, List fileList, FileReTypeEnum fileReTypeEnum) { QueryWrapper removeWrapper=new QueryWrapper<>(); removeWrapper.lambda() .eq(LinFileReDO::getReId,reId) .eq(LinFileReDO::getType,fileReTypeEnum.getCode()) ; remove(removeWrapper); if(CollectionUtils.isEmpty(fileList)) return false; if(!CollectionUtils.isEmpty(fileList)){ List fileReDOList = fileList.stream().map(file -> { LinFileReDO fileReDO = new LinFileReDO(); fileReDO.setId(IdUtil.simpleUUID()); fileReDO.setFileId(String.valueOf(file)); fileReDO.setReId(reId); fileReDO.setType(fileReTypeEnum.getCode()); return fileReDO; }).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(fileReDOList)){ return saveBatch(fileReDOList); } } return true; } }