22
33
44import life .mosu .mosuserver .application .virtualaccount .VirtualAccountLogService ;
5+ import life .mosu .mosuserver .domain .examapplication .repository .ExamApplicationJpaRepository ;
56import life .mosu .mosuserver .domain .virtualaccount .DepositStatus ;
67import life .mosu .mosuserver .domain .virtualaccount .VirtualAccountLogJpaEntity ;
8+ import life .mosu .mosuserver .global .exception .CustomRuntimeException ;
9+ import life .mosu .mosuserver .global .exception .ErrorCode ;
710import life .mosu .mosuserver .infra .notify .MailNotifier ;
11+ import life .mosu .mosuserver .infra .notify .dto .luna .LunaNotificationEvent ;
12+ import life .mosu .mosuserver .infra .notify .dto .luna .LunaNotificationStatus ;
813import life .mosu .mosuserver .infra .notify .dto .mail .DepositSuccessMailRequest ;
14+ import life .mosu .mosuserver .infra .notify .support .NotifyEventPublisher ;
915import life .mosu .mosuserver .presentation .virtualaccount .dto .event .DepositSuccessEvent ;
1016import lombok .RequiredArgsConstructor ;
1117import org .springframework .stereotype .Service ;
@@ -17,6 +23,8 @@ public class DepositSuccessEventHandler implements DepositEventHandler<DepositSu
1723
1824 private final VirtualAccountLogService virtualAccountLogService ;
1925 private final MailNotifier <DepositSuccessMailRequest > mailer ;
26+ private final NotifyEventPublisher notifier ;
27+ private final ExamApplicationJpaRepository examApplicationJpaRepository ;
2028
2129 @ Override
2230 @ Transactional
@@ -25,6 +33,16 @@ public void handle(DepositSuccessEvent event) {
2533 event .getOrderId (),
2634 DepositStatus .DONE
2735 );
36+ var exam = examApplicationJpaRepository .findByApplicationId (log .getApplicationId ())
37+ .stream ().findFirst ()
38+ .orElseThrow (
39+ () -> new CustomRuntimeException (ErrorCode .EXAM_APPLICATION_NOT_FOUND ));
40+
41+ LunaNotificationEvent lunaNotificationEvent = LunaNotificationEvent .create (
42+ LunaNotificationStatus .APPLICATION_SUCCESS ,
43+ exam .getUserId (), exam .getId ());
44+
45+ notifier .notify (lunaNotificationEvent );
2846 sendMail (log , event .getFormattedCreatedAt ());
2947 }
3048
0 commit comments