feat: 优化文件删除逻辑,支持级联删除版本和派生文件

- 删除文件时,如果存在多个版本,一并删除所有版本

- 删除PDF/doc/docx/xls/xlsx时,一并删除其派生的txt文件

- 文件删除失败时记录日志但不影响删除成功
This commit is contained in:
2026-02-06 17:23:37 +08:00
parent cd5f5ef6da
commit 24d8ee49a1
5 changed files with 116 additions and 20 deletions

View File

@@ -64,7 +64,7 @@
AND (status IS NULL OR status <> 'ARCHIVED')
</select>
<select id="findByDatasetIdAndFileName" resultType="com.datamate.datamanagement.domain.model.dataset.DatasetFile">
<select id="findByDatasetIdAndFileName" resultType="com.datamate.datamanagement.domain.model.dataset.DatasetFile">
SELECT <include refid="Base_Column_List"/>
FROM t_dm_dataset_files
WHERE dataset_id = #{datasetId}
@@ -74,8 +74,16 @@
LIMIT 1
</select>
<select id="findAllByDatasetId" parameterType="string"
resultType="com.datamate.datamanagement.domain.model.dataset.DatasetFile">
<select id="findAllByDatasetIdAndLogicalPath" resultType="com.datamate.datamanagement.domain.model.dataset.DatasetFile">
SELECT <include refid="Base_Column_List"/>
FROM t_dm_dataset_files
WHERE dataset_id = #{datasetId}
AND logical_path = #{logicalPath}
ORDER BY version DESC, upload_time DESC
</select>
<select id="findAllByDatasetId" parameterType="string"
resultType="com.datamate.datamanagement.domain.model.dataset.DatasetFile">
SELECT <include refid="Base_Column_List"/>
FROM t_dm_dataset_files
WHERE dataset_id = #{datasetId}