cjl
2023-10-10 e574f485b2eb4f539984d61fc442b3f051a382d8
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>
@@ -59,7 +64,7 @@
            sysFile.setCreateId(user.getUserId()).setCreateName(user.getUserName());
        }
        save(sysFile);
        return new FileVo().setFileId(sysFile.getFileId()).setFileName(originalFilename);
        return new FileVo().setFileId(sysFile.getFileId()).setFileName(originalFilename).setFileType(fileType.getValue());
    }
    @Override
@@ -95,7 +100,7 @@
    }
    private String getFilePath(String sysCode) {
        return sysCode.concat(StringUtils.SLASH).concat(StringUtils.SLASH).concat(DateUtils.dateToDateString(new Date(),DateUtils.yyyyMMdd_EN)).concat(StringUtils.SLASH);
        return sysCode.concat(StringUtils.SLASH).concat(DateUtils.dateToDateString(new Date(),DateUtils.yyyyMMdd_EN)).concat(StringUtils.SLASH);
    }
    public void storageFile(MultipartFile file, String originalFilename, String targetFolder) {
@@ -185,4 +190,49 @@
            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()));
               FileTable file = new FileTable();
               BeanUtils.copyProperties(it,file);
               file.setRelationId(relationId);
               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());
            fileVo.setFileType(it.getFileType());
            list.add(fileVo);
        });
        return list;
    }
}