ai-manus/chat-server/src/main/java/com/bjtds/brichat/service/DatasetFilesService.java

162 lines
4.9 KiB
Java
Raw Normal View History

package com.bjtds.brichat.service;
import com.bjtds.brichat.entity.dataset.TDatasetFiles;
import com.bjtds.common.utils.Pagination;
import java.util.List;
/**
* 知识库文件/文件夹业务层接口
*
* @author system
*/
public interface DatasetFilesService {
/**
* 根据知识库id和parent_id 分页查询 文件/文件夹
*
* @param difyDatasetId 知识库ID
* @param parentId 父目录ID
* @param fileName 文件名支持模糊查询可选
* @param orderBy 排序字段 (name, size, created_at, updated_at)
* @param orderDirection 排序方向 (ASC, DESC)
* @param pageNo 页码
* @param pageSize 页大小
* @return 分页结果
*/
Pagination<TDatasetFiles> getFilesByDatasetIdAndParentId(String difyDatasetId,
Long parentId,
String fileName,
String orderBy,
String orderDirection,
Integer pageNo,
Integer pageSize);
/**
* 根据知识库id和name查询 文件/文件夹
*
* @param difyDatasetId 知识库ID
* @param name 文件/文件夹名称支持模糊查询
* @param orderBy 排序字段
* @param orderDirection 排序方向
* @param pageNo 页码
* @param pageSize 页大小
* @return 分页结果
*/
Pagination<TDatasetFiles> getFilesByDatasetIdAndName(String difyDatasetId,
String name,
String orderBy,
String orderDirection,
Integer pageNo,
Integer pageSize);
/**
* 根据ID查询文件/文件夹详情
*
* @param id 文件/文件夹ID
* @return 文件/文件夹信息
*/
TDatasetFiles getFileById(Integer id);
/**
* 创建文件/文件夹
*
* @param datasetFiles 文件/文件夹信息对象
* @return 创建的文件/文件夹信息
*/
TDatasetFiles createFile(TDatasetFiles datasetFiles);
/**
* 删除文件/文件夹逻辑删除
*
* @param id 文件/文件夹ID
* @return 是否删除成功
*/
boolean deleteFile(Integer id);
/**
* 重命名文件/文件夹
*
* @param id 文件/文件夹ID
* @param newName 新名称
* @return 是否重命名成功
*/
boolean renameFile(Integer id, String newName);
/**
* 检查同一父目录下是否存在同名文件/文件夹
*
* @param parentId 父目录ID
* @param name 文件/文件夹名称
* @param difyDatasetId 知识库ID
* @param excludeId 排除的ID用于重命名时排除自己
* @return 是否存在同名文件/文件夹
*/
boolean checkNameExists(Long parentId, String name, String difyDatasetId, Integer excludeId);
/**
* 根据路径查询文件/文件夹
*
* @param path 路径
* @param difyDatasetId 知识库ID
* @return 文件/文件夹信息
*/
TDatasetFiles getFileByPath(String path, String difyDatasetId);
/**
* 更新文件/文件夹信息
*
* @param datasetFiles 文件/文件夹信息
* @return 是否更新成功
*/
boolean updateFile(TDatasetFiles datasetFiles);
/**
* 构建文件完整路径
*
* @param parentPath 父目录路径
* @param fileName 文件名
* @return 完整路径
*/
String buildFilePath(String parentPath, String fileName);
/**
* 获取父目录路径
*
* @param parentId 父目录ID
* @param difyDatasetId 知识库ID
* @return 父目录路径如果是根目录返回空字符串
*/
String getParentPath(Long parentId, String difyDatasetId);
/**
* 获取指定文件夹下的所有文件不包含文件夹递归查询
*
* @param parentId 文件夹ID
* @param difyDatasetId 知识库ID
* @return 文件列表
*/
List<TDatasetFiles> getAllFilesByParentId(Long parentId, String difyDatasetId);
/**
* 物理删除文件/文件夹真实删除数据库记录
*
* @param id 文件/文件夹ID
* @return 是否删除成功
*/
boolean physicalDeleteFile(Integer id);
/**
* 根据父目录ID物理删除所有子文件/文件夹
*
* @param parentId 父目录ID
* @return 是否删除成功
*/
boolean physicalDeleteFilesByParentId(Long parentId);
2025-09-17 08:46:43 +08:00
/**
* 获取所有文件
*/
List<TDatasetFiles> getAllFiles();
}