serv-文件管理

This commit is contained in:
2025-10-16 10:31:13 +08:00
parent 0dd65e9eda
commit aace132108
16 changed files with 1671 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.xyzh</groupId>
<artifactId>api</artifactId>
<version>${school-news.version}</version>
</parent>
<groupId>org.xyzh</groupId>
<artifactId>api-file</artifactId>
<version>${school-news.version}</version>
<packaging>jar</packaging>
<name>api-file</name>
<description>文件模块API</description>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
</properties>
</project>

View File

@@ -0,0 +1,124 @@
package org.xyzh.api.file;
import org.springframework.web.multipart.MultipartFile;
import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.dto.system.TbSysFile;
/**
* @description 文件服务接口
* @filename FileService.java
* @author system
* @copyright xyzh
* @since 2025-10-16
*/
public interface FileService {
/**
* @description 上传文件
* @param file 文件对象
* @param module 所属模块
* @param businessId 业务ID
* @return ResultDomain<TbSysFile> 上传结果,包含文件信息
* @author system
* @since 2025-10-16
*/
ResultDomain<TbSysFile> uploadFile(MultipartFile file, String module, String businessId);
/**
* @description 上传文件(带上传者信息)
* @param file 文件对象
* @param module 所属模块
* @param businessId 业务ID
* @param uploader 上传者用户ID
* @return ResultDomain<TbSysFile> 上传结果,包含文件信息
* @author system
* @since 2025-10-16
*/
ResultDomain<TbSysFile> uploadFile(MultipartFile file, String module, String businessId, String uploader);
/**
* @description 下载文件
* @param fileId 文件ID
* @return ResultDomain<byte[]> 文件字节数组
* @author system
* @since 2025-10-16
*/
ResultDomain<byte[]> downloadFile(String fileId);
/**
* @description 删除文件(逻辑删除)
* @param fileId 文件ID
* @return ResultDomain<TbSysFile> 删除结果
* @author system
* @since 2025-10-16
*/
ResultDomain<TbSysFile> deleteFile(String fileId);
/**
* @description 物理删除文件(同时删除存储和数据库记录)
* @param fileId 文件ID
* @return ResultDomain<TbSysFile> 删除结果
* @author system
* @since 2025-10-16
*/
ResultDomain<TbSysFile> deleteFilePhysically(String fileId);
/**
* @description 根据文件ID查询文件信息
* @param fileId 文件ID
* @return ResultDomain<TbSysFile> 文件信息
* @author system
* @since 2025-10-16
*/
ResultDomain<TbSysFile> getFileById(String fileId);
/**
* @description 根据业务ID查询文件列表
* @param module 所属模块
* @param businessId 业务ID
* @return ResultDomain<TbSysFile> 文件列表
* @author system
* @since 2025-10-16
*/
ResultDomain<TbSysFile> getFilesByBusinessId(String module, String businessId);
/**
* @description 根据上传者查询文件列表
* @param uploader 上传者用户ID
* @return ResultDomain<TbSysFile> 文件列表
* @author system
* @since 2025-10-16
*/
ResultDomain<TbSysFile> getFilesByUploader(String uploader);
/**
* @description 获取文件访问URL
* @param fileId 文件ID
* @return ResultDomain<String> 文件访问URL
* @author system
* @since 2025-10-16
*/
ResultDomain<String> getFileUrl(String fileId);
/**
* @description 批量上传文件
* @param files 文件对象列表
* @param module 所属模块
* @param businessId 业务ID
* @param uploader 上传者用户ID可选
* @return ResultDomain<TbSysFile> 上传结果,包含文件信息列表
* @author system
* @since 2025-10-16
*/
ResultDomain<TbSysFile> batchUploadFiles(MultipartFile[] files, String module, String businessId, String uploader);
/**
* @description 批量删除文件(逻辑删除)
* @param fileIds 文件ID列表
* @return ResultDomain<TbSysFile> 删除结果
* @author system
* @since 2025-10-16
*/
ResultDomain<TbSysFile> batchDeleteFiles(String[] fileIds);
}

View File

@@ -21,6 +21,7 @@
<module>api-ai</module>
<module>api-study</module>
<module>api-news</module>
<module>api-file</module>
</modules>
<properties>