Skip to content

Commit 2efd6a0

Browse files
committed
fix: fixed an issue where files inside folders could not be deleted
1 parent fa03cb0 commit 2efd6a0

5 files changed

Lines changed: 21 additions & 15 deletions

File tree

backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/DatasetFileApplicationService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,9 +229,9 @@ public DatasetFile getDatasetFile(Dataset dataset, String fileId, String prefix)
229229
* 删除文件
230230
*/
231231
@Transactional
232-
public void deleteDatasetFile(String datasetId, String fileId) {
232+
public void deleteDatasetFile(String datasetId, String fileId, String prefix) {
233233
Dataset dataset = datasetRepository.getById(datasetId);
234-
DatasetFile file = getDatasetFile(dataset, fileId, null);
234+
DatasetFile file = getDatasetFile(dataset, fileId, prefix);
235235
dataset.setFiles(new ArrayList<>(Collections.singleton(file)));
236236
datasetFileRepository.removeById(fileId);
237237
if (CommonUtils.isUUID(fileId)) {

backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/rest/DatasetFileController.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,11 @@ public Response<PagedResponse<DatasetFile>> getDatasetFiles(
6565
@GetMapping("/{fileId}")
6666
public ResponseEntity<Response<DatasetFileResponse>> getDatasetFileById(
6767
@PathVariable("datasetId") String datasetId,
68-
@PathVariable("fileId") String fileId) {
68+
@PathVariable("fileId") String fileId,
69+
@RequestParam(value = "prefix", required = false, defaultValue = "") String prefix) {
6970
try {
7071
Dataset dataset = datasetApplicationService.getDataset(datasetId);
71-
DatasetFile datasetFile = datasetFileApplicationService.getDatasetFile(dataset, fileId, null);
72+
DatasetFile datasetFile = datasetFileApplicationService.getDatasetFile(dataset, fileId, prefix);
7273
return ResponseEntity.ok(Response.ok(DatasetConverter.INSTANCE.convertToResponse(datasetFile)));
7374
} catch (IllegalArgumentException e) {
7475
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(Response.error(SystemErrorCode.UNKNOWN_ERROR, null));
@@ -78,9 +79,10 @@ public ResponseEntity<Response<DatasetFileResponse>> getDatasetFileById(
7879
@DeleteMapping("/{fileId}")
7980
public ResponseEntity<Response<Void>> deleteDatasetFile(
8081
@PathVariable("datasetId") String datasetId,
81-
@PathVariable("fileId") String fileId) {
82+
@PathVariable("fileId") String fileId,
83+
@RequestParam(value = "prefix", required = false, defaultValue = "") String prefix) {
8284
try {
83-
datasetFileApplicationService.deleteDatasetFile(datasetId, fileId);
85+
datasetFileApplicationService.deleteDatasetFile(datasetId, fileId, prefix);
8486
return ResponseEntity.ok().build();
8587
} catch (IllegalArgumentException e) {
8688
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(Response.error(SystemErrorCode.UNKNOWN_ERROR, null));

frontend/src/pages/DataManagement/Detail/useFilesOperation.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,12 @@ export function useFilesOperation(dataset: Dataset) {
113113
setPreviewFileDetail(undefined);
114114
try {
115115
// 获取文件元信息(来自 t_dm_dataset_files)
116-
const detailRes: any = await getDatasetFileByIdUsingGet(datasetId, file.id);
116+
const prefix = pagination.prefix || "";
117+
const detailRes: any = await getDatasetFileByIdUsingGet(datasetId, file.id, prefix);
117118
const detail = detailRes?.data || detailRes;
118119
setPreviewFileDetail(detail);
119120

120121
const image = isImageFile(detail?.fileName || file.fileName, detail?.fileType);
121-
const prefix = pagination.prefix || "";
122122
const { blob, blobUrl } = await downloadFileByIdUsingGet(datasetId, prefix, file.id, file.fileName, "preview");
123123

124124
if (image) {
@@ -136,7 +136,8 @@ export function useFilesOperation(dataset: Dataset) {
136136

137137
const handleDeleteFile = async (file) => {
138138
try {
139-
await deleteDatasetFileUsingDelete(dataset.id, file.id);
139+
const prefix = pagination.prefix || "";
140+
await deleteDatasetFileUsingDelete(dataset.id, file.id, prefix);
140141
fetchFiles(); // 刷新文件列表
141142
message.success({ content: `文件 ${file.fileName} 已删除` });
142143
} catch (error) {
@@ -191,7 +192,7 @@ export function useFilesOperation(dataset: Dataset) {
191192
// 先删除文件
192193
for (const file of files) {
193194
try {
194-
await deleteDatasetFileUsingDelete(dataset.id, file.id);
195+
await deleteDatasetFileUsingDelete(dataset.id, file.id, directoryPath);
195196
} catch (e) {
196197
console.error("删除文件失败", file, e);
197198
}

frontend/src/pages/DataManagement/dataset.api.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,11 @@ export function queryDatasetFilesUsingGet(id: string | number, params?: any) {
5757
// 根据ID获取单个数据集文件详情
5858
export function getDatasetFileByIdUsingGet(
5959
datasetId: string | number,
60-
fileId: string | number
60+
fileId: string | number,
61+
prefix: string
6162
) {
6263
return get(
63-
`/api/data-management/datasets/${datasetId}/files/${fileId}`
64+
`/api/data-management/datasets/${datasetId}/files/${fileId}`, { prefix: prefix}
6465
);
6566
}
6667

@@ -124,9 +125,10 @@ export function downloadFileByIdUsingGet(
124125
// 删除数据集文件
125126
export function deleteDatasetFileUsingDelete(
126127
datasetId: string | number,
127-
fileId: string | number
128+
fileId: string | number,
129+
prefix: string
128130
) {
129-
return del(`/api/data-management/datasets/${datasetId}/files/${fileId}`);
131+
return del(`/api/data-management/datasets/${datasetId}/files/${fileId}`, { prefix: prefix });
130132
}
131133

132134
// 重命名数据集文件(仅修改主名称,后缀保持不变)

frontend/src/utils/request.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,8 @@ class Request {
368368
const isQueryParams =
369369
Object.keys(params).length === 1 &&
370370
(Object.prototype.hasOwnProperty.call(params, "id") ||
371-
Object.prototype.hasOwnProperty.call(params, "ids"));
371+
Object.prototype.hasOwnProperty.call(params, "ids") ||
372+
Object.prototype.hasOwnProperty.call(params, "prefix"));
372373

373374
if (isQueryParams) {
374375
fullURL = this.buildURL(url, params);

0 commit comments

Comments
 (0)