22
33
44import life .mosu .mosuserver .application .virtualaccount .VirtualAccountLogService ;
5+ import life .mosu .mosuserver .domain .application .entity .ApplicationStatus ;
6+ import life .mosu .mosuserver .domain .application .repository .ApplicationJpaRepository ;
57import life .mosu .mosuserver .domain .examapplication .repository .ExamApplicationJpaRepository ;
68import life .mosu .mosuserver .domain .virtualaccount .DepositStatus ;
79import life .mosu .mosuserver .domain .virtualaccount .VirtualAccountLogJpaEntity ;
@@ -25,7 +27,7 @@ public class DepositSuccessEventHandler implements DepositEventHandler<DepositSu
2527 private final MailNotifier <DepositSuccessMailRequest > mailer ;
2628 private final NotifyEventPublisher notifier ;
2729 private final ExamApplicationJpaRepository examApplicationJpaRepository ;
28-
30+ private final ApplicationJpaRepository applicationJpaRepository ;
2931 @ Override
3032 @ Transactional
3133 public void handle (DepositSuccessEvent event ) {
@@ -38,6 +40,12 @@ public void handle(DepositSuccessEvent event) {
3840 .orElseThrow (
3941 () -> new CustomRuntimeException (ErrorCode .EXAM_APPLICATION_NOT_FOUND ));
4042
43+ var application = applicationJpaRepository .findById (log .getApplicationId ())
44+ .orElseThrow (
45+ () -> new CustomRuntimeException (ErrorCode .APPLICATION_LIST_NOT_FOUND ));
46+ if (application .getStatus () == ApplicationStatus .PENDING ) {
47+ application .changeStatus (ApplicationStatus .APPROVED );
48+ }
4149 LunaNotificationEvent lunaNotificationEvent = LunaNotificationEvent .create (
4250 LunaNotificationStatus .APPLICATION_GUEST_SUCCESS ,
4351 exam .getUserId (), exam .getId ());
0 commit comments