diff --git a/src/main/java/life/mosu/mosuserver/application/virtualaccount/event/DepositSuccessEventHandler.java b/src/main/java/life/mosu/mosuserver/application/virtualaccount/event/DepositSuccessEventHandler.java index 4284a9e2..edbf74cd 100644 --- a/src/main/java/life/mosu/mosuserver/application/virtualaccount/event/DepositSuccessEventHandler.java +++ b/src/main/java/life/mosu/mosuserver/application/virtualaccount/event/DepositSuccessEventHandler.java @@ -2,6 +2,8 @@ import life.mosu.mosuserver.application.virtualaccount.VirtualAccountLogService; +import life.mosu.mosuserver.domain.application.entity.ApplicationStatus; +import life.mosu.mosuserver.domain.application.repository.ApplicationJpaRepository; import life.mosu.mosuserver.domain.examapplication.repository.ExamApplicationJpaRepository; import life.mosu.mosuserver.domain.virtualaccount.DepositStatus; import life.mosu.mosuserver.domain.virtualaccount.VirtualAccountLogJpaEntity; @@ -25,7 +27,7 @@ public class DepositSuccessEventHandler implements DepositEventHandler mailer; private final NotifyEventPublisher notifier; private final ExamApplicationJpaRepository examApplicationJpaRepository; - + private final ApplicationJpaRepository applicationJpaRepository; @Override @Transactional public void handle(DepositSuccessEvent event) { @@ -38,6 +40,12 @@ public void handle(DepositSuccessEvent event) { .orElseThrow( () -> new CustomRuntimeException(ErrorCode.EXAM_APPLICATION_NOT_FOUND)); + var application = applicationJpaRepository.findById(log.getApplicationId()) + .orElseThrow( + () -> new CustomRuntimeException(ErrorCode.APPLICATION_LIST_NOT_FOUND)); + if (application.getStatus() == ApplicationStatus.PENDING) { + application.changeStatus(ApplicationStatus.APPROVED); + } LunaNotificationEvent lunaNotificationEvent = LunaNotificationEvent.create( LunaNotificationStatus.APPLICATION_GUEST_SUCCESS, exam.getUserId(), exam.getId());