fix(aihr): bind sop feedback to its query
This commit is contained in:
+4
-4
@@ -238,7 +238,7 @@ public class AihrSopSeedService {
|
||||
throw new ServiceException("缺少片段ID");
|
||||
}
|
||||
validateFeedbackFragmentOwnership(fragmentIds);
|
||||
Long reviewId = normalizeFeedbackReviewId(request.reviewId());
|
||||
Long reviewId = normalizeFeedbackReviewId(request.reviewId(), queryText);
|
||||
ensureAnswerFeedbackTable();
|
||||
String reviewStatus = "down".equals(verdict) ? "待复核" : "已复核";
|
||||
Timestamp now = Timestamp.valueOf(java.time.LocalDateTime.now());
|
||||
@@ -2119,7 +2119,7 @@ public class AihrSopSeedService {
|
||||
}
|
||||
}
|
||||
|
||||
private Long normalizeFeedbackReviewId(Long reviewId) {
|
||||
private Long normalizeFeedbackReviewId(Long reviewId, String queryText) {
|
||||
if (reviewId == null || reviewId <= 0) {
|
||||
return null;
|
||||
}
|
||||
@@ -2127,8 +2127,8 @@ public class AihrSopSeedService {
|
||||
Integer count = jdbcTemplate.queryForObject("""
|
||||
SELECT COUNT(*)
|
||||
FROM aihr_sop_answer_review
|
||||
WHERE tenant_id = ? AND id = ?
|
||||
""", Integer.class, tenantId(), reviewId);
|
||||
WHERE tenant_id = ? AND id = ? AND query_text = ?
|
||||
""", Integer.class, tenantId(), reviewId, truncate(AihrSensitiveText.forModel(queryText), 1000));
|
||||
return count != null && count > 0 ? reviewId : null;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -187,8 +187,8 @@ public class AihrSopSeedServiceTest {
|
||||
}
|
||||
String code = Files.readString(source);
|
||||
|
||||
assertTrue(code.contains("Long reviewId = normalizeFeedbackReviewId(request.reviewId())"));
|
||||
assertTrue(code.contains("WHERE tenant_id = ? AND id = ?"));
|
||||
assertTrue(code.contains("Long reviewId = normalizeFeedbackReviewId(request.reviewId(), queryText)"));
|
||||
assertTrue(code.contains("WHERE tenant_id = ? AND id = ? AND query_text = ?"));
|
||||
}
|
||||
|
||||
private static AihrSopSeedService.KnowledgeHit hit(Long fragmentId, String title) {
|
||||
|
||||
Reference in New Issue
Block a user