Skip to content

Commit bb89cdc

Browse files
authored
Merge pull request #316 from mosu-dev/develop
Prod : 가상계좌 결제 완료 시, 알림톡 발송
2 parents 231fdd5 + abdc8fc commit bb89cdc

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

src/main/java/life/mosu/mosuserver/application/virtualaccount/event/DepositSuccessEventHandler.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,16 @@
22

33

44
import life.mosu.mosuserver.application.virtualaccount.VirtualAccountLogService;
5+
import life.mosu.mosuserver.domain.examapplication.repository.ExamApplicationJpaRepository;
56
import life.mosu.mosuserver.domain.virtualaccount.DepositStatus;
67
import life.mosu.mosuserver.domain.virtualaccount.VirtualAccountLogJpaEntity;
8+
import life.mosu.mosuserver.global.exception.CustomRuntimeException;
9+
import life.mosu.mosuserver.global.exception.ErrorCode;
710
import 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;
813
import life.mosu.mosuserver.infra.notify.dto.mail.DepositSuccessMailRequest;
14+
import life.mosu.mosuserver.infra.notify.support.NotifyEventPublisher;
915
import life.mosu.mosuserver.presentation.virtualaccount.dto.event.DepositSuccessEvent;
1016
import lombok.RequiredArgsConstructor;
1117
import 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

Comments
 (0)