fix(bugcollect): getIssueDetail 补全 events 列表,修复 Web 控制台事件列表为空

toIssueResponse 中 events 始终传 null,导致 GET /issues/{id} 返回的 events 字段为空。
getIssueDetail 现在主动查询最近 20 条 IssueEvent 并填充到响应中。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
这个提交包含在:
XuqmGroup 2026-06-18 08:48:48 +08:00
父节点 dcd429c52d
当前提交 696a50aae8

查看文件

@ -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<IssueEventResponse> 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)