Skip to content

Commit

Permalink
hotfix: 알림 테스트용 시간 설정
Browse files Browse the repository at this point in the history
  • Loading branch information
GaBaljaintheroom committed Jan 4, 2025
1 parent 1aa7ff1 commit 72b1161
Showing 1 changed file with 15 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,23 @@ public void reserveTicketingAlerts(TicketingAlertServiceRequest ticketingAlert)
ticketingAlertScheduler.addJob(jobDetail, true, true);
}

LocalDateTime currentTime = LocalDateTime.now();

List<TriggerKey> triggerKeysToRemove = ticketingAlert.deleteAlertAts().stream()
.map(alertTime -> getTriggerKey(ticketingAlert, alertTime))
.map(alertTime -> getTriggerKey(ticketingAlert, currentTime, alertTime))
.toList();
ticketingAlertScheduler.unscheduleJobs(triggerKeysToRemove);

for (LocalDateTime alertTime : ticketingAlert.addAlertAts()) {
List<LocalDateTime> currentTimePlusSeconds = List.of(
currentTime.minusSeconds(5),
currentTime.minusSeconds(10),
currentTime.minusSeconds(30),
currentTime.minusSeconds(60)
);

for (LocalDateTime alertTime : currentTimePlusSeconds) {
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity(getTriggerKey(ticketingAlert, alertTime))
.withIdentity(getTriggerKey(ticketingAlert, currentTime, alertTime))
.startAt(Date.from(alertTime.atZone(ZoneId.systemDefault()).toInstant()))
.forJob(jobKey)
.build();
Expand All @@ -71,18 +80,19 @@ public void reserveTicketingAlerts(TicketingAlertServiceRequest ticketingAlert)

private TriggerKey getTriggerKey(
TicketingAlertServiceRequest ticketingAlert,
LocalDateTime currentTime,
LocalDateTime alertTime
) {
return TriggerKey.triggerKey(
ticketingAlert.userFcmToken() + " : "
+ ticketingAlert.showId() + " : "
+ alertTime,
calculateAlertMinutes(alertTime, ticketingAlert.ticketingAt())
calculateAlertMinutes(alertTime, currentTime)
);
}

private String calculateAlertMinutes(LocalDateTime alertTime, LocalDateTime ticketingAt) {
return String.valueOf(Duration.between(alertTime, ticketingAt).toMinutes());
return String.valueOf(Duration.between(alertTime, ticketingAt).toSeconds());
}

private JobDetail getJobDetail(TicketingAlertServiceRequest ticketingAlert) {
Expand Down

0 comments on commit 72b1161

Please sign in to comment.