package com.vci.ubcs.resource.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.vci.ubcs.resource.bo.FileObjectBO; import com.vci.ubcs.resource.dto.FileObjectDTO; import com.vci.ubcs.resource.dto.FileReleaseDTO; import com.vci.ubcs.resource.dto.FileShareDTO; import com.vci.ubcs.resource.entity.FileObject; import com.vci.ubcs.resource.query.FileQuery; import com.vci.ubcs.resource.vo.FileObjectVO; import com.vci.ubcs.starter.exception.VciBaseException; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.util.Collection; import java.util.List; /** * 文件的服务 * @author weidy * @date 2023/1/31 */ public interface IFileService extends IService { /** * 下载,注意多个文件的时候,会自动下载为一个压缩包 * @param oids 主键集合 * @return 文件的信息 */ FileObjectBO downloadFileByOids(Collection oids); /** * 删除文件 * @param oids 主键集合 * @return 执行结果 */ void deleteFiles(Collection oids) throws VciBaseException; /** * 上传文件 * @param file 文件的信息 * @param fileObjectDTO 文件的相关信息 * @return 文件上传后的信息 */ R uploadFile(MultipartFile file, FileObjectDTO fileObjectDTO); /** * 修改文件的信息(不会改objectName和filePath) * @param fileDTOs 文件的信息 * @return 修改后的信息 */ R> updateFileInfos(Collection fileDTOs); FileObjectVO do2Vo(FileObject fileObject); List do2Vos(Collection fileObjects); /** * 分享文件到其他数据中 * * @param shareDTO 来源业务 * @return 分享后的文件信息 */ R> shareFiles(FileShareDTO shareDTO); /** * 文件列表查询 * @param fileQuery 文件查询 * @param query 分页查询对象 * @return 文件的显示信息 */ IPage listFiles(FileQuery fileQuery, Query query); /** * 使用文件的主键批量获取对象 * @param oids 文件的主键集合 * @return 文件的显示信息 */ List listFilesByOids(Collection oids); /** * 文件生效 * @param oids 主键集合 * @return 执行结果 */ R releasedFiles(Collection oids); /** * 批量指定文件业务数据后生效 * @param releaseDTOS 生效的相关信息 * @return 执行结果 */ R releasedFilesForOwn(Collection releaseDTOS); /** * 在上传文件后,保存文件的信息 * @param fileObjectDTO 文件信息传输对象 * @return 文件信息显示对象 */ R saveFileAfterUpload(FileObjectDTO fileObjectDTO); /** * 获取对象 * @param oid 主键 * @return 文件的显示对象 */ FileObjectVO get(String oid); }