forked from gzzfw/backEnd/gz-dyh

liyj
2024-09-04 bf9543d3f9ef2de6b8d04e3153e43e7eec3843a2
dyh-service/dyh-sys/src/main/java/cn/huge/module/file/service/FileInfoService.java
@@ -3,15 +3,21 @@
import cn.huge.base.common.exception.ServiceException;
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.IdUtils;
import cn.huge.base.common.utils.ObjectUtils;
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.constant.BaseConsts;
import cn.huge.module.file.dao.mapper.FileInfoMapper;
import cn.huge.module.file.domain.dto.FileForCatDTO;
import cn.huge.module.file.domain.dto.FileForCatListDTO;
import cn.huge.module.file.domain.dto.UploaderDTO;
import cn.huge.module.file.domain.po.FileInfo;
import cn.huge.module.file.domain.po.FileRelate;
import cn.huge.module.file.utils.FtpUtils;
import cn.huge.module.file.utils.FtpMultipartFileWrapper;
import cn.huge.module.sys.constant.FileOwnerTypeBaseEnum;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
@@ -21,9 +27,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
 * @title: 附件信息表业务逻辑处理
@@ -145,7 +149,7 @@
     * @param uploaderDTO 上传人信息
     * @return
     */
    public FileInfo webPploadFile(MultipartFile file, String ownerId, String ownerType, int fileCount, UploaderDTO uploaderDTO) {
    public FileInfo webUploadFile(MultipartFile file, String mainId, String ownerId, String ownerType, int fileCount, UploaderDTO uploaderDTO) {
        try {
            String fileId = utilsClient.getNewTimeId();
            // 创建附件信息
@@ -155,6 +159,7 @@
            ftpUtils.upload(fileInfo.getPath(), fileInfo.getFileName(), file.getInputStream());
            // 保存附件信息
            fileInfo.setName(FileOwnerTypeBaseEnum.getDes(ownerType) + BaseConsts.UNDER + fileCount);
            fileInfo.setMainId(mainId);
            fileInfo.setOwnerId(ownerId);
            fileInfo.setOwnerCat(FileOwnerTypeBaseEnum.getCat(ownerType));
            fileInfo.setOwnerCatName(FileOwnerTypeBaseEnum.getDes(fileInfo.getOwnerCat()));
@@ -183,7 +188,7 @@
     * @param uploaderDTO 上传人信息
     * @return
     */
    public FileInfo wechatPploadFile(MultipartFile file, String ownerId, String ownerType, int fileCount, UploaderDTO uploaderDTO) {
    public FileInfo wechatUploadFile(MultipartFile file, String mainId, String ownerId, String ownerType, int fileCount, UploaderDTO uploaderDTO) {
        try {
            String fileId = utilsClient.getNewTimeId();
            // 创建附件信息
@@ -193,6 +198,7 @@
            ftpUtils.upload(fileInfo.getPath(), fileInfo.getFileName(), file.getInputStream());
            // 保存附件信息
            fileInfo.setName(FileOwnerTypeBaseEnum.getDes(ownerType) + BaseConsts.UNDER + fileCount);
            fileInfo.setMainId(mainId);
            fileInfo.setOwnerId(ownerId);
            fileInfo.setOwnerCat(FileOwnerTypeBaseEnum.getCat(ownerType));
            fileInfo.setOwnerCatName(FileOwnerTypeBaseEnum.getDes(fileInfo.getOwnerCat()));
@@ -212,4 +218,59 @@
        }
    }
    /**
     * 查看附件组件-分类查询附件
     * @param terms
     * @return
     */
    public List<FileForCatListDTO> webListFileByCat(Map<String, Object> terms){
        List<FileForCatListDTO> fileForCatListDTOList = new ArrayList<>();
        // 查询附件信息进行封装
        List<FileForCatDTO> oldFileForCatDTOList = mapper.listFileByCatTerms(terms);
        if (CollectionUtils.isNotEmpty(oldFileForCatDTOList)) {
            Set<String> setTmp = new HashSet<>();
            for (FileForCatDTO fileForCatDTO: oldFileForCatDTOList) {
                if (ObjectUtils.isNotEmpty(fileForCatDTO.getOwnerCat())) {
                    setTmp.add(fileForCatDTO.getOwnerCat());
                }
            }
            Iterator<String> it = setTmp.iterator();
            while (it.hasNext()) {
                String ownerCat = it.next();
                FileForCatListDTO fileForCatListDTO = new FileForCatListDTO();
                fileForCatListDTO.setOwnerCat(ownerCat);
                fileForCatListDTO.setOwnerCatName(FileOwnerTypeBaseEnum.getDes(ownerCat));
                List<FileForCatDTO> newFileForCatDTOS = new ArrayList<>();
                for (FileForCatDTO fileForCatDTO : oldFileForCatDTOList) {
                    if (ownerCat.equals(fileForCatDTO.getOwnerCat())) {
                        newFileForCatDTOS.add(fileForCatDTO);
                    }
                }
                fileForCatListDTO.setFileList(newFileForCatDTOS);
                fileForCatListDTO.setFileSize(newFileForCatDTOS.size());
                fileForCatListDTOList.add(fileForCatListDTO);
            }
        }
        return fileForCatListDTOList;
    }
    /**
     * 根据编号删除附件
     * @param id 附件编号
     */
    public void deleteFileById(String id) {
        try{
            // 删除关系表
            QueryWrapper<FileRelate> fileRelateQueryWrapper = new QueryWrapper<>();
            fileRelateQueryWrapper.eq("file_id", id);
            fileRelateService.remove(fileRelateQueryWrapper);
            // 删除附件信息表
            mapper.deleteById(id);
            // 删除ftp文件
        }catch (Exception e){
            log.error("service方法[FileInfoService.deleteFileById]调用失败,异常信息:"+e, e);
            throw new ServiceException("FileInfoService.deleteFileById", e);
        }
    }
}