Section 1. 주문 취소하기
1. Item Entity
- 주문 취소 시 상품의 재고를 상품 주문 수량만큼 다시 더해주는 addStock() 메소드를 추가함
2. OrderItem Entity
- Item.addStock() 메소드를 호출하는 cancel 메소드 추가
- 주문 상품 수량을 파라미터로 넘김
3. Order Entity
- 주문 상태를 CANCEL 로 변경
- 모든 OrderItem 객체의 cancel() 메소드를 수행
4. OrderService
- 상품을 주문한 유저와 주문 취소를 요청한 유저가 동일한지 검증
- orElseThrow 언제 해야되는 지??
- 주문 취소 메소드 (변경 감지)
5. OrderController
- 상품을 주문한 유저가 맞는 지 검증 후 orderService.cancelOrder() 메소드 수행
6. 주문 취소 테스트
- 주문 객체를 저장한 뒤에 주문 취소를 수행하여 주문 상태가 "CANCEL" 이고 주문하기 전의 상품 수량과 일치하는지 테스트
7. 구매 내역 페이지 주문 취소
- 해당 주문을 취소하도록 요청을 보내는 cancelOrder() 함수 Ajax 코드
- "주문취소" 버튼을 클릭하면 페이지를 생성할 때 미리 설정해놨던 value = "${order.orderId}" 값을 파라미터로해서 cancelOrder() 함수 호출
8. 주문 취소결과