From ca37bc5a3bd07284bc6e6020696c1c208c9ce870 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Mon, 23 Feb 2026 18:03:57 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=A4=9A=E4=B8=AA=20n?= =?UTF-8?q?ull=20=E5=8F=82=E6=95=B0=E5=92=8C=E7=A9=BA=E9=9B=86=E5=90=88?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. EditReviewRepository - reviewedAt null 参数问题 - PENDING 状态时 reviewedAt 为 null - 修复:null 时不在 SET 语句中包含该字段 2. KnowledgeItemApplicationService - 空 IN 子句问题 - getKnowledgeManagementStatistics() 未检查空集合 - 导致 WHERE id IN () MySQL 语法错误 - 修复:添加空集合检查,提前返回零计数 验证: - 其他 Neo4j 操作已正确处理 null 参数 - 其他 listByIds/removeByIds 调用已有保护 --- .../application/KnowledgeItemApplicationService.java | 6 ++++++ .../domain/repository/EditReviewRepository.java | 12 +++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) 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 1358693..1baafef 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 @@ -266,6 +266,12 @@ public class KnowledgeItemApplicationService { response.setTotalKnowledgeSets(totalSets); List accessibleSetIds = knowledgeSetRepository.listSetIdsByCriteria(baseQuery, ownerFilterUserId, excludeConfidential); + if (CollectionUtils.isEmpty(accessibleSetIds)) { + response.setTotalFiles(0L); + response.setTotalSize(0L); + response.setTotalTags(0L); + return response; + } List accessibleSets = knowledgeSetRepository.listByIds(accessibleSetIds); if (CollectionUtils.isEmpty(accessibleSets)) { response.setTotalFiles(0L); diff --git a/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/domain/repository/EditReviewRepository.java b/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/domain/repository/EditReviewRepository.java index 6bfc3fa..7ae299a 100644 --- a/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/domain/repository/EditReviewRepository.java +++ b/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/domain/repository/EditReviewRepository.java @@ -43,7 +43,13 @@ public class EditReviewRepository { params.put("reviewedBy", review.getReviewedBy() != null ? review.getReviewedBy() : ""); params.put("reviewComment", review.getReviewComment() != null ? review.getReviewComment() : ""); params.put("createdAt", review.getCreatedAt()); - params.put("reviewedAt", review.getReviewedAt()); + + // reviewed_at 为 null 时(PENDING 状态)不写入 SET,避免 null 参数导致属性缺失 + String reviewedAtSet = ""; + if (review.getReviewedAt() != null) { + reviewedAtSet = ", r.reviewed_at = $reviewedAt"; + params.put("reviewedAt", review.getReviewedAt()); + } neo4jClient .query( @@ -57,8 +63,8 @@ public class EditReviewRepository { " r.submitted_by = $submittedBy, " + " r.reviewed_by = $reviewedBy, " + " r.review_comment = $reviewComment, " + - " r.created_at = $createdAt, " + - " r.reviewed_at = $reviewedAt " + + " r.created_at = $createdAt" + + reviewedAtSet + " " + "RETURN r" ) .bindAll(params)