diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/KnowledgeItemApplicationService.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/KnowledgeItemApplicationService.java index 74c0ee0..77b7d34 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/KnowledgeItemApplicationService.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/KnowledgeItemApplicationService.java @@ -16,6 +16,7 @@ import com.datamate.datamanagement.domain.model.knowledge.KnowledgeItem; import com.datamate.datamanagement.domain.model.knowledge.KnowledgeSet; import com.datamate.datamanagement.infrastructure.config.DataManagementProperties; import com.datamate.datamanagement.infrastructure.exception.DataManagementErrorCode; +import com.datamate.datamanagement.infrastructure.persistence.mapper.TagMapper; import com.datamate.datamanagement.infrastructure.persistence.repository.DatasetFileRepository; import com.datamate.datamanagement.infrastructure.persistence.repository.DatasetRepository; import com.datamate.datamanagement.infrastructure.persistence.repository.KnowledgeItemRepository; @@ -86,6 +87,7 @@ public class KnowledgeItemApplicationService { private final DatasetRepository datasetRepository; private final DatasetFileRepository datasetFileRepository; private final DataManagementProperties dataManagementProperties; + private final TagMapper tagMapper; public KnowledgeItem createKnowledgeItem(String setId, CreateKnowledgeItemRequest request) { KnowledgeSet knowledgeSet = requireKnowledgeSet(setId); @@ -233,6 +235,7 @@ public class KnowledgeItemApplicationService { long datasetFileSize = safeLong(knowledgeItemRepository.sumDatasetFileSize()); long uploadFileSize = calculateUploadFileTotalSize(); response.setTotalSize(datasetFileSize + uploadFileSize); + response.setTotalTags(safeLong(tagMapper.countKnowledgeSetTags())); return response; } diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/infrastructure/persistence/mapper/TagMapper.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/infrastructure/persistence/mapper/TagMapper.java index 84c1bb2..eaa32f8 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/infrastructure/persistence/mapper/TagMapper.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/infrastructure/persistence/mapper/TagMapper.java @@ -14,6 +14,7 @@ public interface TagMapper { List findByIdIn(@Param("ids") List ids); List findByKeyword(@Param("keyword") String keyword); List findAllByOrderByUsageCountDesc(); + Long countKnowledgeSetTags(); int insert(Tag tag); int update(Tag tag); diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/KnowledgeManagementStatisticsResponse.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/KnowledgeManagementStatisticsResponse.java index 7abddc1..78a6b39 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/KnowledgeManagementStatisticsResponse.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/KnowledgeManagementStatisticsResponse.java @@ -12,4 +12,5 @@ public class KnowledgeManagementStatisticsResponse { private Long totalKnowledgeSets = 0L; private Long totalFiles = 0L; private Long totalSize = 0L; + private Long totalTags = 0L; } diff --git a/backend/services/data-management-service/src/main/resources/mappers/TagMapper.xml b/backend/services/data-management-service/src/main/resources/mappers/TagMapper.xml index accaad8..60a0a97 100644 --- a/backend/services/data-management-service/src/main/resources/mappers/TagMapper.xml +++ b/backend/services/data-management-service/src/main/resources/mappers/TagMapper.xml @@ -53,6 +53,19 @@ ORDER BY usage_count DESC, name ASC + + INSERT INTO t_dm_tags (id, name, description, category, color, usage_count) VALUES (#{id}, #{name}, #{description}, #{category}, #{color}, #{usageCount}) diff --git a/frontend/src/pages/KnowledgeManagement/Home/KnowledgeManagementPage.tsx b/frontend/src/pages/KnowledgeManagement/Home/KnowledgeManagementPage.tsx index ca4f973..0d6fda5 100644 --- a/frontend/src/pages/KnowledgeManagement/Home/KnowledgeManagementPage.tsx +++ b/frontend/src/pages/KnowledgeManagement/Home/KnowledgeManagementPage.tsx @@ -40,6 +40,10 @@ const DEFAULT_STATISTICS: StatisticsItem[] = [ title: "文件总数", value: 0, }, + { + title: "标签总数", + value: 0, + }, { title: "总大小", value: "0 B", @@ -113,6 +117,10 @@ export default function KnowledgeManagementPage() { title: "文件总数", value: stats?.totalFiles ?? 0, }, + { + title: "标签总数", + value: stats?.totalTags ?? 0, + }, { title: "总大小", value: formatBytes(stats?.totalSize ?? 0), @@ -276,7 +284,7 @@ export default function KnowledgeManagementPage() {
-
+
{statisticsData.map((item) => (