검증게시판 기능 추가

This commit is contained in:
Macbook
2026-05-27 15:41:19 +09:00
parent 7a0af36b9b
commit 63693d47c0
57 changed files with 4480 additions and 14 deletions
@@ -0,0 +1,56 @@
package com.goldenchart.websocket;
import com.goldenchart.dto.VerificationIssueEventDto;
import com.goldenchart.dto.VerificationIssueDto;
import com.goldenchart.entity.VerificationIssueStage;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
@Slf4j
public class VerificationIssueEventBroker {
public static final String TOPIC = "/sub/verification-issues/events";
private final SimpMessagingTemplate messagingTemplate;
public void publishCreated(VerificationIssueDto issue, String sourceDeviceId) {
publish(VerificationIssueEventDto.builder()
.eventType(VerificationIssueEventDto.TYPE_CREATED)
.issueId(issue.getId())
.title(issue.getTitle())
.stage(issue.getStage())
.updatedAt(issue.getUpdatedAt())
.sourceDeviceId(sourceDeviceId)
.build());
}
public void publishStageChanged(
VerificationIssueDto issue,
VerificationIssueStage previousStage,
String sourceDeviceId) {
publish(VerificationIssueEventDto.builder()
.eventType(VerificationIssueEventDto.TYPE_STAGE_CHANGED)
.issueId(issue.getId())
.title(issue.getTitle())
.stage(issue.getStage())
.previousStage(previousStage)
.updatedAt(issue.getUpdatedAt())
.sourceDeviceId(sourceDeviceId)
.build());
}
private void publish(VerificationIssueEventDto event) {
try {
messagingTemplate.convertAndSend(TOPIC, event);
if (log.isDebugEnabled()) {
log.debug("[VerificationIssueEvent] {} issueId={}", event.getEventType(), event.getIssueId());
}
} catch (Exception e) {
log.warn("[VerificationIssueEvent] publish failed: {}", e.getMessage());
}
}
}