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

181 lines
5.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
/**
* 获取所有文件
*/
List<TDatasetFiles> getAllFiles();
/**
* 根据数据集ID更新所有文件的索引
*/
void updateByDatasetId(String difyDatasetId);
/**
* 根据数据集ID和文档ID查询文件
*/
void updateByDatasetIdAndDocId(String difyDatasetId, String difyDocId);
/**
* 根据文档ID查询文件
*/
TDatasetFiles getFileByDocId(String difyDocId);
}