From bd37858cccafd025238886d375d71749c5525a7c Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Fri, 30 Jan 2026 16:48:39 +0800 Subject: [PATCH] =?UTF-8?q?refactor(dataset):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=E8=B7=AF=E5=BE=84=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=92=8C=E5=85=B3=E8=81=94=E5=85=B3=E7=B3=BB=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除Dataset类中initCreateParam方法的parentPath参数 - 简化handleParentChange方法中的路径构建逻辑 - 更新错误消息将"子数据集"改为"关联数据集" - 修改前端界面将"父数据集"相关术语统一为"关联数据集" - 在导入配置组件中添加类型定义和改进文件处理逻辑 - 限制数据源选项排除COLLECTION类型避免错误选择 --- .../DatasetApplicationService.java | 9 +- .../domain/model/dataset/Dataset.java | 4 +- .../exception/DataManagementErrorCode.java | 4 +- .../DataManagement/Create/EditDataset.tsx | 2 +- .../Create/components/BasicInformation.tsx | 6 +- .../DataManagement/Detail/DatasetDetail.tsx | 8 +- .../Detail/components/ImportConfiguration.tsx | 139 +++++++++++------- 7 files changed, 101 insertions(+), 71 deletions(-) diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/DatasetApplicationService.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/DatasetApplicationService.java index 3e90b11..9f987ea 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/DatasetApplicationService.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/DatasetApplicationService.java @@ -73,7 +73,7 @@ public class DatasetApplicationService { Dataset dataset = DatasetConverter.INSTANCE.convertToDataset(createDatasetRequest); Dataset parentDataset = resolveParentDataset(createDatasetRequest.getParentDatasetId(), dataset.getId()); dataset.setParentDatasetId(parentDataset == null ? null : parentDataset.getId()); - dataset.initCreateParam(datasetBasePath, parentDataset == null ? null : parentDataset.getPath()); + dataset.initCreateParam(datasetBasePath); // 处理标签 Set processedTags = Optional.ofNullable(createDatasetRequest.getTags()) .filter(CollectionUtils::isNotEmpty) @@ -291,7 +291,9 @@ public class DatasetApplicationService { private void handleParentChange(Dataset dataset, String parentDatasetId) { String normalized = normalizeParentId(parentDatasetId); - if (Objects.equals(dataset.getParentDatasetId(), normalized)) { + String expectedPath = buildDatasetPath(datasetBasePath, dataset.getId()); + if (Objects.equals(dataset.getParentDatasetId(), normalized) + && Objects.equals(dataset.getPath(), expectedPath)) { return; } long childCount = datasetRepository.countByParentId(dataset.getId()); @@ -299,8 +301,7 @@ public class DatasetApplicationService { throw BusinessException.of(DataManagementErrorCode.DATASET_HAS_CHILDREN); } Dataset parent = normalized == null ? null : resolveParentDataset(normalized, dataset.getId()); - String newPath = buildDatasetPath(parent == null ? datasetBasePath : parent.getPath(), dataset.getId()); - moveDatasetPath(dataset, newPath); + moveDatasetPath(dataset, expectedPath); dataset.setParentDatasetId(parent == null ? null : parent.getId()); } diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/domain/model/dataset/Dataset.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/domain/model/dataset/Dataset.java index eeebc37..cf5375f 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/domain/model/dataset/Dataset.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/domain/model/dataset/Dataset.java @@ -114,9 +114,9 @@ public class Dataset extends BaseEntity { this.updatedAt = LocalDateTime.now(); } - public void initCreateParam(String datasetBasePath, String parentPath) { + public void initCreateParam(String datasetBasePath) { this.id = UUID.randomUUID().toString(); - String basePath = normalizeBasePath(parentPath != null && !parentPath.isBlank() ? parentPath : datasetBasePath); + String basePath = normalizeBasePath(datasetBasePath); this.path = basePath + File.separator + this.id; if (this.status == null) { this.status = DatasetStatusType.DRAFT; diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/infrastructure/exception/DataManagementErrorCode.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/infrastructure/exception/DataManagementErrorCode.java index 8312975..4955d1f 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/infrastructure/exception/DataManagementErrorCode.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/infrastructure/exception/DataManagementErrorCode.java @@ -42,9 +42,9 @@ public enum DataManagementErrorCode implements ErrorCode { */ DIRECTORY_NOT_FOUND("data_management.0007", "目录不存在"), /** - * 存在子数据集 + * 存在关联数据集 */ - DATASET_HAS_CHILDREN("data_management.0008", "存在子数据集,禁止删除或移动"), + DATASET_HAS_CHILDREN("data_management.0008", "存在关联数据集,禁止删除或移动"), /** * 数据集文件不存在 */ diff --git a/frontend/src/pages/DataManagement/Create/EditDataset.tsx b/frontend/src/pages/DataManagement/Create/EditDataset.tsx index 1dac677..cabc524 100644 --- a/frontend/src/pages/DataManagement/Create/EditDataset.tsx +++ b/frontend/src/pages/DataManagement/Create/EditDataset.tsx @@ -96,7 +96,7 @@ export default function EditDataset({