diff --git a/src/main/java/net/teumteum/meeting/service/MeetingAlertPublisher.java b/src/main/java/net/teumteum/meeting/service/MeetingAlertPublisher.java index 858650e..bcc2bd8 100644 --- a/src/main/java/net/teumteum/meeting/service/MeetingAlertPublisher.java +++ b/src/main/java/net/teumteum/meeting/service/MeetingAlertPublisher.java @@ -16,6 +16,7 @@ @Transactional(readOnly = true) public class MeetingAlertPublisher { + private static final String KR_TIME_ZONE = "Asia/Seoul"; private static final String EVERY_ONE_MINUTES = "0 * * * * *"; private static final String EVERY_12PM = "0 0 12 * * *"; @@ -24,18 +25,20 @@ public class MeetingAlertPublisher { @Scheduled(cron = EVERY_ONE_MINUTES) public void alertBeforeMeeting() { - var alertStart = LocalDateTime.now(ZoneId.of("Asia/Seoul")).plusMinutes(5).withNano(0).withSecond(0); + var alertStart = LocalDateTime.now(ZoneId.of(KR_TIME_ZONE)).plusMinutes(5).withNano(0).withSecond(0); var alertEnd = alertStart.plusMinutes(1).withNano(0).withSecond(0); var alertTargets = meetingRepository.findAlertMeetings(alertStart, alertEnd); - alertTargets.forEach(meeting -> eventPublisher.publishEvent( - new BeforeMeetingAlerted(meeting.getParticipantUserIds()) - ) - ); + alertTargets.stream() + .filter(alertTarget -> alertTarget.getParticipantUserIds().size() > 2) + .forEach(meeting -> eventPublisher.publishEvent( + new BeforeMeetingAlerted(meeting.getParticipantUserIds()) + ) + ); } @Scheduled(cron = EVERY_12PM) public void alertEndMeeting() { - var today = LocalDateTime.now(ZoneId.of("Asia/Seoul")) + var today = LocalDateTime.now(ZoneId.of(KR_TIME_ZONE)) .withNano(0) .withSecond(0) .withMinute(0) @@ -44,14 +47,16 @@ public void alertEndMeeting() { var yesterday = today.minusDays(1); var alertTargets = meetingRepository.findAlertMeetings(yesterday, today); - alertTargets.forEach(meeting -> eventPublisher.publishEvent( - new EndMeetingAlerted(meeting.getId(), meeting.getTitle(), meeting.getParticipantUserIds()) - )); + alertTargets.stream() + .filter(alertTarget -> alertTarget.getParticipantUserIds().size() > 2) + .forEach(meeting -> eventPublisher.publishEvent( + new EndMeetingAlerted(meeting.getId(), meeting.getTitle(), meeting.getParticipantUserIds()) + )); } @Scheduled(cron = EVERY_ONE_MINUTES) public void alertEndMeetingForQa() { - var today = LocalDateTime.now(ZoneId.of("Asia/Seoul")) + var today = LocalDateTime.now(ZoneId.of(KR_TIME_ZONE)) .withNano(0) .withSecond(0) .withMinute(0) @@ -61,8 +66,10 @@ public void alertEndMeetingForQa() { var yesterday = today.minusDays(365); var alertTargets = meetingRepository.findAlertMeetings(yesterday, future); - alertTargets.forEach(meeting -> eventPublisher.publishEvent( - new EndMeetingAlerted(meeting.getId(), meeting.getTitle(), meeting.getParticipantUserIds()) - )); + alertTargets.stream() + .filter(alertTarget -> alertTarget.getParticipantUserIds().size() > 2) + .forEach(meeting -> eventPublisher.publishEvent( + new EndMeetingAlerted(meeting.getId(), meeting.getTitle(), meeting.getParticipantUserIds()) + )); } }