diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/TagApplicationService.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/TagApplicationService.java index 95587564..466fc152 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/TagApplicationService.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/TagApplicationService.java @@ -1,6 +1,8 @@ package com.datamate.datamanagement.application; +import com.datamate.common.infrastructure.exception.BusinessException; import com.datamate.datamanagement.domain.model.dataset.Tag; +import com.datamate.datamanagement.infrastructure.exception.DataManagementErrorCode; import com.datamate.datamanagement.infrastructure.persistence.mapper.TagMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -30,7 +32,7 @@ public TagApplicationService(TagMapper tagMapper) { public Tag createTag(String name, String color, String description) { // 检查名称是否已存在 if (tagMapper.findByName(name) != null) { - throw new IllegalArgumentException("Tag with name '" + name + "' already exists"); + throw BusinessException.of(DataManagementErrorCode.TAG_NAME_DUPLICATE); } Tag tag = new Tag(name, description, null, color); diff --git a/frontend/public/config/error-code.json b/frontend/public/config/error-code.json index 0a7bc651..81f85cd6 100644 --- a/frontend/public/config/error-code.json +++ b/frontend/public/config/error-code.json @@ -16,6 +16,29 @@ "operator.0004": "不支持的文件类型,当前仅支持tar和zip", "operator.0005": "解析算子包失败", "operator.0006": "缺少必要的字段", + "data_management.0001": "数据集不存在", + "data_management.0002": "数据集已存在", + "data_management.0003": "数据集状态错误", + "data_management.0004": "数据集标签不存在", + "data_management.0005": "数据集标签已存在", + "data_management.0006": "数据集文件已存在", + "data_management.0007": "目录不存在", + "data_management.0008": "数据集名称长度不能超过255个字符", + "data_management.0009": "数据集类型不合法", + "data_management.0010": "数据集状态不合法", + "data_management.0011": "标签名称长度不能超过100个字符", + "data_management.0012": "标签名称已存在", + "data_management.0013": "标签颜色格式不正确,应为十六进制颜色代码", + "data_management.0014": "保留天数必须为非负整数", + "data_management.0015": "路径长度不能超过限制", + "data_management.0016": "文件名包含非法字符", + "data_management.0017": "路径前缀不能以点开头", + "sys.0001": "未知错误", + "sys.0002": "系统繁忙,请稍后重试", + "sys.0003": "参数错误", + "sys.0004": "资源未找到", + "sys.0005": "权限不足", + "sys.0006": "文件系统错误", "400": "请求参数错误", "401": "登录已过期,请重新登录", "403": "没有权限访问该资源", diff --git a/frontend/src/components/business/TagManagement.tsx b/frontend/src/components/business/TagManagement.tsx index 56e621c5..e821b289 100644 --- a/frontend/src/components/business/TagManagement.tsx +++ b/frontend/src/components/business/TagManagement.tsx @@ -119,7 +119,8 @@ const TagManager: React.FC = ({ const { data } = await onFetch?.(); setTags(data || []); } catch (e) { - message.error(t("tagManagement.messages.fetchFailed")); + // 错误已由全局拦截器处理,无需重复提示 + console.error("Failed to fetch tags:", e); } }; @@ -133,7 +134,8 @@ const TagManager: React.FC = ({ setNewTag(""); message.success(t("tagManagement.messages.addSuccess")); } catch (error) { - message.error(t("tagManagement.messages.addFailed")); + // 错误已由全局拦截器处理,无需重复提示 + console.error("Failed to add tag:", error); } }; @@ -144,7 +146,8 @@ const TagManager: React.FC = ({ fetchTags(); message.success(t("tagManagement.messages.deleteSuccess")); } catch (error) { - message.error(t("tagManagement.messages.deleteFailed")); + // 错误已由全局拦截器处理,无需重复提示 + console.error("Failed to delete tag:", error); } }; @@ -154,7 +157,8 @@ const TagManager: React.FC = ({ fetchTags(); message.success(t("tagManagement.messages.updateSuccess")); } catch (error) { - message.error(t("tagManagement.messages.updateFailed")); + // 错误已由全局拦截器处理,无需重复提示 + console.error("Failed to update tag:", error); } };