From 5347c7cd1bca58a6d9aef90493422f4179034a60 Mon Sep 17 00:00:00 2001 From: tomatozil Date: Mon, 17 Feb 2025 22:18:50 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=EC=95=8C=EB=A6=BC=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EC=88=98=EC=A0=95,=20=EC=BF=BC=EB=A6=AC=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/eventhub/application/AlarmService.java | 15 +++++++++------ .../application/port/AlarmRepository.java | 2 +- .../repository/AlarmRepositoryAdapter.java | 5 ++--- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/monicar-event-hub/src/main/java/org/eventhub/application/AlarmService.java b/monicar-event-hub/src/main/java/org/eventhub/application/AlarmService.java index 9fab765..2238371 100644 --- a/monicar-event-hub/src/main/java/org/eventhub/application/AlarmService.java +++ b/monicar-event-hub/src/main/java/org/eventhub/application/AlarmService.java @@ -5,6 +5,7 @@ import org.eventhub.application.port.AlarmRepository; import org.eventhub.application.port.AlarmSender; import org.eventhub.domain.Alarm; +import org.eventhub.domain.AlarmStatus; import org.eventhub.infrastructure.external.command.AlarmSend; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -24,20 +25,22 @@ public class AlarmService { @Value("${alarm-interval-distance}") private Integer alarmIntervalDistance; - public Optional findById(Long vehicleId) { + public Optional findByVehicleId(Long vehicleId) { return alarmRepository.findByVehicleId(vehicleId); } @Transactional(propagation = Propagation.REQUIRES_NEW) public Optional saveAlarmIfNecessary(Long vehicleId, Long totalDistance) { try { - boolean isNecessary = alarmRepository.findByVehicleIdAlarmRequired(vehicleId) - .map(alarm -> checkBiggerThanIntervalDistance(totalDistance, alarm.getDrivingDistance())) - .orElse(true); + Optional alarm = alarmRepository.findRecentOneByVehicleId(vehicleId); + int referenceDistance = alarm.map(Alarm::getDrivingDistance).orElse(0); - if (isNecessary) { - return Optional.ofNullable(alarmRepository.save(vehicleId)); + if (checkBiggerThanIntervalDistance(totalDistance, referenceDistance)) { + if (alarm.isEmpty() || alarm.get().getStatus().equals(AlarmStatus.COMPLETED)) { + return Optional.ofNullable(alarmRepository.save(vehicleId)); + } } + return Optional.empty(); } catch (Exception e) { log.error("Alarm 쿼리 예외 발생", e); } diff --git a/monicar-event-hub/src/main/java/org/eventhub/application/port/AlarmRepository.java b/monicar-event-hub/src/main/java/org/eventhub/application/port/AlarmRepository.java index 16958f9..9af797b 100644 --- a/monicar-event-hub/src/main/java/org/eventhub/application/port/AlarmRepository.java +++ b/monicar-event-hub/src/main/java/org/eventhub/application/port/AlarmRepository.java @@ -7,6 +7,6 @@ public interface AlarmRepository { Optional findByVehicleId(Long vehicleId); - Optional findByVehicleIdAlarmRequired(Long vehicleId); + Optional findRecentOneByVehicleId(Long vehicleId); Long save(Long vehicleId); } \ No newline at end of file diff --git a/monicar-event-hub/src/main/java/org/eventhub/infrastructure/repository/AlarmRepositoryAdapter.java b/monicar-event-hub/src/main/java/org/eventhub/infrastructure/repository/AlarmRepositoryAdapter.java index 53779a4..f3fbe18 100644 --- a/monicar-event-hub/src/main/java/org/eventhub/infrastructure/repository/AlarmRepositoryAdapter.java +++ b/monicar-event-hub/src/main/java/org/eventhub/infrastructure/repository/AlarmRepositoryAdapter.java @@ -26,13 +26,12 @@ public Optional findByVehicleId(Long vehicleId) { } @Override - public Optional findByVehicleIdAlarmRequired(Long vehicleId) { + public Optional findRecentOneByVehicleId(Long vehicleId) { QAlarmEntity alarmEntity = QAlarmEntity.alarmEntity; Optional alarm = Optional.ofNullable(jpaQueryFactory.select(alarmEntity) .from(alarmEntity) - .where(alarmEntity.id.eq(vehicleId) - .and(alarmEntity.status.eq(AlarmStatus.COMPLETED))) + .where(alarmEntity.vehicleId.eq(vehicleId)) .orderBy(alarmEntity.createdAt.desc()) .fetchFirst() ); From 2aa266e181facc95ef4e0398bcf481e48ef60b44 Mon Sep 17 00:00:00 2001 From: tomatozil Date: Mon, 17 Feb 2025 22:26:26 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=EB=B3=80=EC=88=98=EB=AA=85=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/eventhub/application/AlarmService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/monicar-event-hub/src/main/java/org/eventhub/application/AlarmService.java b/monicar-event-hub/src/main/java/org/eventhub/application/AlarmService.java index 2238371..e1cc6a3 100644 --- a/monicar-event-hub/src/main/java/org/eventhub/application/AlarmService.java +++ b/monicar-event-hub/src/main/java/org/eventhub/application/AlarmService.java @@ -33,9 +33,9 @@ public Optional findByVehicleId(Long vehicleId) { public Optional saveAlarmIfNecessary(Long vehicleId, Long totalDistance) { try { Optional alarm = alarmRepository.findRecentOneByVehicleId(vehicleId); - int referenceDistance = alarm.map(Alarm::getDrivingDistance).orElse(0); + int targetDistance = alarm.map(Alarm::getDrivingDistance).orElse(0); - if (checkBiggerThanIntervalDistance(totalDistance, referenceDistance)) { + if (checkBiggerThanIntervalDistance(totalDistance, targetDistance)) { if (alarm.isEmpty() || alarm.get().getStatus().equals(AlarmStatus.COMPLETED)) { return Optional.ofNullable(alarmRepository.save(vehicleId)); }