cjl
2023-09-26 9ff80d30c433c274dac4a2d07bbbbb7ec3cc6122
screen-api/src/main/java/com/moral/api/service/impl/FileTableServiceImpl.java
@@ -5,6 +5,7 @@
import com.moral.api.exception.BusinessException;
import com.moral.api.mapper.FileTableMapper;
import com.moral.api.pojo.enums.FileType;
import com.moral.api.pojo.enums.YesOrNo;
import com.moral.api.pojo.vo.file.FileVo;
import com.moral.api.pojo.vo.user.QxUser;
import com.moral.api.service.FileTableService;
@@ -14,8 +15,11 @@
import com.moral.util.DateUtils;
import lombok.extern.slf4j.Slf4j;
import net.coobird.thumbnailator.Thumbnails;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
@@ -23,6 +27,7 @@
import java.io.*;
import java.net.URLEncoder;
import java.util.*;
import java.util.stream.Collectors;
/**
 * <p>
@@ -185,4 +190,48 @@
            log.error("读取文件异常!!! e={}", e.getMessage());
        }
    }
    @Override
    @Transactional
    public void upDateResult(List<FileVo> list,int relationId,int fileModule) {
        List<FileTable> existsList = this.lambdaQuery().eq(FileTable::getRelationId, relationId)
                .eq(FileTable::getFileModule, fileModule)
                .eq(FileTable::getIsDel, YesOrNo.NO.value).list();
        // 新增附件
        if (!CollectionUtils.isEmpty(list)) {
            List<FileTable> addList = new ArrayList();
            // 2.2.筛选出需要保存的文件
            list.forEach(it -> {
               existsList.removeIf(file -> file.getFileId().equals(it.getFileId()));
               it.setFileId(relationId);
               FileTable file = new FileTable();
               BeanUtils.copyProperties(it,file);
               addList.add(file);
            });
            if (!CollectionUtils.isEmpty(addList)) {
                // 保存
                this.updateBatchById(addList);
            }
        }
        // 删除附件
        if (!CollectionUtils.isEmpty(existsList)) {
            removeByIds(existsList.stream().map(FileTable::getFileId).collect(Collectors.toList()));
        }
    }
    @Override
    public List<FileVo> list(int relationId, int fileModule) {
        List<FileVo> list = new ArrayList<>();
        List<FileTable> existsList = this.lambdaQuery().eq(FileTable::getRelationId, relationId)
                .eq(FileTable::getFileModule, fileModule)
                .eq(FileTable::getIsDel, YesOrNo.NO.value).orderByAsc(FileTable::getCreateTime).list();
        existsList.forEach(it->{
            FileVo fileVo = new FileVo();
            fileVo.setFileId(it.getFileId());
            fileVo.setFileName(it.getFileName());
            list.add(fileVo);
        });
        return list;
    }
}