From 696a50aae8b8a74e02d3eec359b0a091885ea063 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Thu, 18 Jun 2026 08:48:48 +0800 Subject: [PATCH] =?UTF-8?q?fix(bugcollect):=20getIssueDetail=20=E8=A1=A5?= =?UTF-8?q?=E5=85=A8=20events=20=E5=88=97=E8=A1=A8=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=20Web=20=E6=8E=A7=E5=88=B6=E5=8F=B0=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit toIssueResponse 中 events 始终传 null,导致 GET /issues/{id} 返回的 events 字段为空。 getIssueDetail 现在主动查询最近 20 条 IssueEvent 并填充到响应中。 Co-Authored-By: Claude Sonnet 4.6 --- .../com/xuqm/bugcollect/service/LogService.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/xuqm-bugcollect-service/src/main/java/com/xuqm/bugcollect/service/LogService.java b/xuqm-bugcollect-service/src/main/java/com/xuqm/bugcollect/service/LogService.java index 5ff971c..426cafd 100644 --- a/xuqm-bugcollect-service/src/main/java/com/xuqm/bugcollect/service/LogService.java +++ b/xuqm-bugcollect-service/src/main/java/com/xuqm/bugcollect/service/LogService.java @@ -187,7 +187,21 @@ public class LogService { public IssueResponse getIssueDetail(Long id) { LogIssueEntity issue = issueRepository.findById(id) .orElseThrow(() -> new IllegalArgumentException("Issue not found: " + id)); - return toIssueResponse(issue); + Pageable pageable = PageRequest.of(0, 20, Sort.by(Sort.Direction.DESC, "createdAt")); + List events = issueEventRepository + .findByIssueIdOrderByCreatedAtDesc(issue.getId(), pageable) + .getContent() + .stream() + .map(this::toIssueEventResponse) + .toList(); + return new IssueResponse( + issue.getId(), issue.getAppKey(), issue.getFingerprint(), + issue.getLevel(), + issue.getStatus() != null ? issue.getStatus() : (issue.isResolved() ? "resolved" : "open"), + issue.getTitle(), issue.getFirstSeenAt(), issue.getLastSeenAt(), + issue.getCount(), issue.getAffectedUsers(), issue.isResolved(), + issue.getAssignee(), issue.getPlatform(), issue.getRelease(), events + ); } @Transactional(readOnly = true)