Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat : after order ticket create #162

Merged
merged 8 commits into from
Jan 20, 2023
Merged

Conversation

ImNM
Copy link
Member

@ImNM ImNM commented Jan 20, 2023

개요

작업사항

  • 도메인 이벤트 활용해서 티켓을 생성합니다.
  • 원랜 비동기적으로 처리할려 했으나,,, 보상 트랜잭션 설계등을 해야해서
  • 생성 파트는 동기적으로 처리할려고합니다
    @Async 빠졌다는 소리입니다!

transaction phase before commit으로 놓아서
해당 이벤트 핸들러 메소드 들이 트랜잭션이 커밋 되기 이전에 수행됩니다.

          @TransactionalEventListener(
            classes = DoneOrderEvent.class,
            phase = TransactionPhase.BEFORE_COMMIT)
    public void handleDoneOrderEvent(DoneOrderEvent doneOrderEvent) {

따라서 티켓 발급 수행시에 추후에 들어갈 재고 감소 로직이나,
티켓 발급시 에러 발생하면
주문 쪽 까지 롤백 됩니다.

또한 주문 rollback 과정속에서 토스 쪽 결제가 이미 승인된 상태면
결제 취소를 다시해줘야하는데 그부분은

transaction phase after rollback 옵션으로
해결했습니다.

    @Async
    @TransactionalEventListener(
            classes = DoneOrderEvent.class,
            phase = TransactionPhase.AFTER_ROLLBACK)
    @Transactional
    public void handleDoneOrderFailEvent(DoneOrderEvent doneOrderEvent) {

토스쪽은 멱등성 보장되므로 여러번 요청보내도 상관없슴다!

변경로직

  • 내용을 적어주세요.

@ImNM ImNM added For: API [이슈 대상] 외부 API Type: Feature [이슈 목적] 새로운 기능 추가 labels Jan 20, 2023
@ImNM ImNM self-assigned this Jan 20, 2023
@ImNM ImNM changed the title Feature/116 after order ticket create ( 민준이랑 이야기할예정 리뷰아직 x ) feat : after order ticket create ( 리뷰아직 x ) Jan 20, 2023
Copy link
Member

@sanbonai06 sanbonai06 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했슴다! 수고하셨어용 머지하면 받아서 작업 하겠습니당

@ImNM ImNM changed the title feat : after order ticket create ( 리뷰아직 x ) feat : after order ticket create Jan 20, 2023
@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 195 Code Smells

5.0% 5.0% Coverage
1.3% 1.3% Duplication

@ImNM ImNM merged commit 7f97745 into dev Jan 20, 2023
@ImNM ImNM deleted the feature/116-after-order-ticket-create branch January 20, 2023 14:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
For: API [이슈 대상] 외부 API Type: Feature [이슈 목적] 새로운 기능 추가
Projects
None yet
Development

Successfully merging this pull request may close these issues.

🚀 [feature] 주문 완료시 티켓 생성
3 participants