diff --git a/services/order/src/main/java/com/ticketPing/order/application/service/OrderService.java b/services/order/src/main/java/com/ticketPing/order/application/service/OrderService.java index c059d2ab..d88beaa9 100644 --- a/services/order/src/main/java/com/ticketPing/order/application/service/OrderService.java +++ b/services/order/src/main/java/com/ticketPing/order/application/service/OrderService.java @@ -7,6 +7,7 @@ import com.ticketPing.order.domain.model.entity.OrderSeat; import com.ticketPing.order.domain.model.enums.OrderStatus; import com.ticketPing.order.domain.repository.OrderRepository; +import com.ticketPing.order.presentation.request.CreateOrderRequest; import exception.ApplicationException; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -36,7 +37,10 @@ public class OrderService { private final PerformanceClient performanceClient; @Transactional - public OrderResponse createOrder(UUID scheduleId, UUID seatId, UUID userId) { + public OrderResponse createOrder(CreateOrderRequest createOrderRequest, UUID userId) { + UUID scheduleId = createOrderRequest.scheduleId(); + UUID seatId = createOrderRequest.seatId(); + validateDuplicateOrder(seatId); OrderSeatResponse orderData = performanceClient.getOrderInfo(userId, scheduleId, seatId).getBody().getData(); Order order = saveOrderWithOrderSeat(userId, orderData); @@ -108,5 +112,4 @@ private void publishForQueueTokenRemoval(UUID userId, UUID performanceId) { val event = OrderCompletedForQueueTokenRemovalEvent.create(userId, performanceId); eventApplicationService.publishForQueueTokenRemoval(event); } - } diff --git a/services/order/src/main/java/com/ticketPing/order/presentation/controller/OrderController.java b/services/order/src/main/java/com/ticketPing/order/presentation/controller/OrderController.java index 378e21a6..f8bda59d 100644 --- a/services/order/src/main/java/com/ticketPing/order/presentation/controller/OrderController.java +++ b/services/order/src/main/java/com/ticketPing/order/presentation/controller/OrderController.java @@ -2,7 +2,7 @@ import com.ticketPing.order.application.dtos.OrderResponse; import com.ticketPing.order.application.service.OrderService; -import org.springframework.data.domain.Page; +import com.ticketPing.order.presentation.request.CreateOrderRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Slice; import org.springframework.http.ResponseEntity; @@ -11,7 +11,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.UUID; import static response.CommonResponse.success; @@ -27,10 +26,9 @@ public class OrderController { @Operation(summary = "예매 좌석 생성") @PostMapping public ResponseEntity> createOrder(@RequestHeader("X_USER_ID") UUID userId, - @RequestParam("performanceId") UUID performanceId, - @RequestParam("scheduleId") UUID scheduleId, - @RequestParam("seatId") UUID seatId) { - OrderResponse orderResponse = orderService.createOrder(scheduleId, seatId, userId); + @RequestParam("performanceId") UUID performanceId, + @RequestBody CreateOrderRequest createOrderRequest) { + OrderResponse orderResponse = orderService.createOrder(createOrderRequest, userId); return ResponseEntity .status(201) .body(success(orderResponse)); @@ -49,8 +47,8 @@ public ResponseEntity>> getUserReservation(@ @Operation(summary = "주문 정보 검증") @PostMapping("/{orderId}/validate") public ResponseEntity> validateOrder(@RequestHeader("X_USER_ID") UUID userId, - @RequestParam("performanceId") UUID performanceId, - @PathVariable("orderId") UUID orderId) { + @RequestParam("performanceId") UUID performanceId, + @PathVariable("orderId") UUID orderId) { orderService.validateOrderAndExtendTTL(orderId, userId); return ResponseEntity .status(200)