주문 데이터 준비

// 1. 주문 데이터 준비
productOrderSubmitService.prepareOrderDTO(orderDTO, amount, userDetails);

기능 설명

주문 저장

// 2. 주문 저장
int orderNo = productOrderSubmitService.registerOrder(orderDTO);

기능 설명

상세 주문 저장

// 3. 상세 주문 저장
productOrderSubmitService.registerOrderItem(orderNo, cartNos, itemPointList, session);

기능 설명

바로 주문 처리

// 4. 바로 주문 처리
if (cartNos == null) {
    CartDTO cartDTO = (CartDTO) session.getAttribute("cartDTO");
    cartNos = Collections.singletonList(cartDTO.getCartNo());
}

기능 설명

재고·판매량 갱신

// 5. 재고, 판매량 갱신
productOrderSubmitService.changeSoldAndStock(cartNos);

기능 설명

쿠폰 사용 처리

// 6. 쿠폰 사용 처리
productOrderSubmitService.changeState(issueNo);

기능 설명

포인트 차감

// 7. 포인트 차감
productOrderSubmitService.changePoint(usedPoint, userDetails, orderNo);