-
Notifications
You must be signed in to change notification settings - Fork 6
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 : 주문 승인 , 조회 (#67) #83
Conversation
/** | ||
* 트랜잭션이 클래스 래벨에서 시작해서 레디스 락도 트랜잭션을 격리성 보장하기위해서 새로시작하는데 레디슨 락 끝나고 커밋된후에 데이타가 안읽힘. 왜냐면 클래스 레벨 | ||
* 트랜잭션이 레디슨 락보다 먼저 시작했기때문 (Read_commited) 그래서 새로운 트랜잭션 만들어서 반영 근데 이거 그냥 lazy 로딩 때문에 그런거지 쿼리 | ||
* 짜야되는거임! | ||
* | ||
* @param confirmedOrderId | ||
* @param userName | ||
* @return | ||
*/ | ||
// TODO : 쿼리만들기 | ||
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lazy 로딩 관련해서 QueryDsl로 쿼리 짜서 해결해봅시당
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
커맨드 관련한 api 먼저 쫙뽑구
조회용 따로 만들어야겠네유
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고민 많이하신 만큼 훌륭합니다
LGTM 🌟
추가로 컨플릭트 난 부분 저희 둘 작업 모두 반영해주시면 감사하겠습니당
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 고생하셨습니다✨
Kudos, SonarCloud Quality Gate passed! 0 Bugs |
개요
작업사항
주문 승인 & 주문 조회까지 같이 작업해뒀습니다
만들고자 한 화면
보니깐 예매정보가 결국 여러개 들어가야합니다.
옵션이 다르면 다른 오더라인으로 잡히기 때문에
그에 따라서 예매정보 부분 ( 밑 응답예시의 tickets 부분입니다. ) 이 여러개달라져야합니다.
가령,
고스락22회티켓 3매 옵션 예로 3개 동일
고스락 22회 티켓 1매 옵션 아니오
이렇게되면 오더라인이 2개가 되고, 결제완료창에서 보여지는 주문 정보에도 예매정보 부분이 2개가 되어야합니다.(위의 빨간색 네모 부분)
데이터 더 집어넣을꺼 있을것 같긴한데 이렇게 두겠습니다 일다눙
RefundInfoVo 를 만들었습니다 취소관련 정보가 이벤트로 부터 나옵니다.
취소가능기간이 이벤트 시작 시간 전까지 입니다!
다음번엔 승인 결제 작업들어갈건데 좀 더 로직들 깔끔하게 정제해보겠습니다
트랜잭션 관련...
ConfirmOrderUseCase 클래스 관련 내용입니다.
트랜잭션 시작 -> 주문생성을위해 레디슨락 호출 -> 레디슨락안에서 새로운 트랜잭션 시작 -> 성공적으로 commit
-> 이후에 lazy로딩으로 응답을 해줄려다보니... 데이터가 최신화가 안됨.
보니깐 트랜잭션을 먼저 시작해버리니.. read_commit 룰 때문에
안에서 락걸고 안전하게 성공적으로 작업한 데이터가 안 읽힘...
위링크 참조해서 같은 서비스 목받고, 새로운 트랜잭션 만드는 조건으로
메서드
를 호출시킴결국 전파가 일어남
위방식으로 해결했습니다. 소스 보세염
( 트랜잭션 내부에서 같은 클래스의 메소드를 호출하면 트랜잭션 새로안생김 )
변경로직