@@ -575,6 +575,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
. beforeData ( List . of ( deleteFileMetadataInfo ) )
. templateId ( req . getTemplateId ( ) )
. templateName ( req . getTemplateName ( ) )
. knowledgeBaseName ( extractRelativePath ( dirMetadataInfo ) )
. build ( ) ;
if ( CollectionUtils . isNotEmpty ( deleteFileApproveRequestBuilder . getBeforeData ( ) ) ) {
setCreatorNames ( deleteFileApproveRequestBuilder . getBeforeData ( ) ) ;
@@ -1589,6 +1590,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
. beforeData ( List . of ( fileInfo ) )
. templateId ( req . getTemplateId ( ) )
. templateName ( req . getTemplateName ( ) )
. knowledgeBaseName ( extractRelativePath ( dirMetadataInfo ) )
. build ( ) ;
if ( CollectionUtils . isNotEmpty ( uploadFileApproveRequestBuilder . getBeforeData ( ) ) ) {
setCreatorNames ( uploadFileApproveRequestBuilder . getBeforeData ( ) ) ;
@@ -1622,6 +1624,32 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
return fileName . substring ( lastDotIndex + 1 ) ;
}
/**
* 从目录的objectKey中提取相对路径( 移除目录类型前缀)
* 如: knowledge/知识库A/子目录/ → /知识库A/子目录/
* @param dirMetadataInfo 文件所在目录的元数据
* @return 目录相对路径(以/开头) , 如果提取失败则返回null
*/
private String extractRelativePath ( FileMetadataInfo dirMetadataInfo ) {
if ( dirMetadataInfo = = null | | dirMetadataInfo . getObjectKey ( ) = = null | | dirMetadataInfo . getDirType ( ) = = null ) {
return null ;
}
DirTypeEnum dirTypeEnum = DirTypeEnum . getDirTypeByValue ( dirMetadataInfo . getDirType ( ) ) ;
if ( dirTypeEnum = = null ) {
return null ;
}
String objectKey = dirMetadataInfo . getObjectKey ( ) ;
String prefix = dirTypeEnum . getDirName ( ) ;
if ( ! objectKey . startsWith ( prefix ) ) {
return null ;
}
// 移除前缀: knowledge/知识库A/子目录/ → /知识库A/子目录/
return objectKey . substring ( prefix . length ( ) ) ;
}
@Override
public SdmResponse downloadRecord ( AddDownloadRecordReq req ) {
@@ -1739,6 +1767,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
. afterData ( List . of ( tempFileMetadataInfo ) )
. templateId ( req . getTemplateId ( ) )
. templateName ( req . getTemplateName ( ) )
. knowledgeBaseName ( extractRelativePath ( dirMetadataInfo ) )
. build ( ) ;
if ( CollectionUtils . isNotEmpty ( updateFileMetaIntoApproveRequestBuilder . getBeforeData ( ) ) ) {
setCreatorNames ( updateFileMetaIntoApproveRequestBuilder . getBeforeData ( ) ) ;
@@ -1875,6 +1904,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
. afterData ( List . of ( newFileInfo ) )
. templateId ( req . getTemplateId ( ) )
. templateName ( req . getTemplateName ( ) )
. knowledgeBaseName ( extractRelativePath ( dirMetadataInfo ) )
. build ( ) ;
if ( CollectionUtils . isNotEmpty ( uploadAndUpdateFileApproveRequestBuilder . getBeforeData ( ) ) ) {
setCreatorNames ( uploadAndUpdateFileApproveRequestBuilder . getBeforeData ( ) ) ;
@@ -2704,6 +2734,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
. beforeData ( succFileMetadataInfos )
. templateId ( firstFile . getTemplateId ( ) )
. templateName ( firstFile . getTemplateName ( ) )
. knowledgeBaseName ( extractRelativePath ( dirMetadataInfo ) )
. build ( ) ;
if ( CollectionUtils . isNotEmpty ( batchUploadFileApproveRequestBuilder . getBeforeData ( ) ) ) {
setCreatorNames ( batchUploadFileApproveRequestBuilder . getBeforeData ( ) ) ;