181 lines
5.3 KiB
Java
181 lines
5.3 KiB
Java
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);
|
||
|
||
|
||
|
||
} |