diff --git a/src/main/java/com/example/Centralthon/domain/order/service/OrderService.java b/src/main/java/com/example/Centralthon/domain/order/service/OrderService.java index fb43f7e..03c0e30 100644 --- a/src/main/java/com/example/Centralthon/domain/order/service/OrderService.java +++ b/src/main/java/com/example/Centralthon/domain/order/service/OrderService.java @@ -1,10 +1,8 @@ package com.example.Centralthon.domain.order.service; -import com.example.Centralthon.domain.order.web.dto.OrderReq; -import com.example.Centralthon.domain.order.web.dto.OrderRes; - -import java.util.List; +import com.example.Centralthon.domain.order.web.dto.CreateOrderReq; +import com.example.Centralthon.domain.order.web.dto.CreateOrderRes; public interface OrderService { - OrderRes orderMenus(OrderReq orderReq); + CreateOrderRes orderMenus(CreateOrderReq orderReq); } diff --git a/src/main/java/com/example/Centralthon/domain/order/service/OrderServiceImpl.java b/src/main/java/com/example/Centralthon/domain/order/service/OrderServiceImpl.java index decaa3c..105cc24 100644 --- a/src/main/java/com/example/Centralthon/domain/order/service/OrderServiceImpl.java +++ b/src/main/java/com/example/Centralthon/domain/order/service/OrderServiceImpl.java @@ -8,9 +8,9 @@ import com.example.Centralthon.domain.order.exception.CodeNotCreatedException; import com.example.Centralthon.domain.order.repository.OrderItemRepository; import com.example.Centralthon.domain.order.repository.OrderRepository; +import com.example.Centralthon.domain.order.web.dto.CreateOrderReq; +import com.example.Centralthon.domain.order.web.dto.CreateOrderRes; import com.example.Centralthon.domain.order.web.dto.OrderItemListReq; -import com.example.Centralthon.domain.order.web.dto.OrderReq; -import com.example.Centralthon.domain.order.web.dto.OrderRes; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; @@ -37,7 +37,7 @@ public class OrderServiceImpl implements OrderService { @Override @Transactional - public OrderRes orderMenus(OrderReq orderReq) { + public CreateOrderRes orderMenus(CreateOrderReq orderReq) { Map orderList = new HashMap<>(); for (OrderItemListReq orderItemListReq : orderReq.getItems()) { @@ -60,13 +60,15 @@ public OrderRes orderMenus(OrderReq orderReq) { Order order = createOrderWithUniqueCode(totalPrice); List orderItemList = new ArrayList<>(); + List storeIdList = new ArrayList<>(); for(Menu menu : menuList) { OrderItem orderItem = OrderItem.toEntity(order, menu, orderList.get(menu.getId())); orderItemList.add(orderItem); + if(!storeIdList.contains(menu.getStore().getId())) storeIdList.add(menu.getStore().getId()); } orderItemRepository.saveAll(orderItemList); - return OrderRes.from(order); + return CreateOrderRes.of(order, storeIdList); } private Order createOrderWithUniqueCode(int totalPrice) { diff --git a/src/main/java/com/example/Centralthon/domain/order/web/controller/OrderController.java b/src/main/java/com/example/Centralthon/domain/order/web/controller/OrderController.java index da1dcfa..94874b8 100644 --- a/src/main/java/com/example/Centralthon/domain/order/web/controller/OrderController.java +++ b/src/main/java/com/example/Centralthon/domain/order/web/controller/OrderController.java @@ -1,8 +1,8 @@ package com.example.Centralthon.domain.order.web.controller; import com.example.Centralthon.domain.order.service.OrderService; -import com.example.Centralthon.domain.order.web.dto.OrderReq; -import com.example.Centralthon.domain.order.web.dto.OrderRes; +import com.example.Centralthon.domain.order.web.dto.CreateOrderReq; +import com.example.Centralthon.domain.order.web.dto.CreateOrderRes; import com.example.Centralthon.global.response.SuccessResponse; import com.example.Centralthon.global.response.code.SuccessResponseCode; import jakarta.validation.Valid; @@ -18,8 +18,8 @@ public class OrderController { private final OrderService orderService; @PostMapping - public ResponseEntity> createOrder(@RequestBody @Valid OrderReq orderReq) { - OrderRes orderRes = orderService.orderMenus(orderReq); - return ResponseEntity.status(HttpStatus.CREATED).body(SuccessResponse.of(orderRes, SuccessResponseCode.SUCCESS_CREATED)); + public ResponseEntity> createOrder(@RequestBody @Valid CreateOrderReq orderReq) { + CreateOrderRes createOrderRes = orderService.orderMenus(orderReq); + return ResponseEntity.status(HttpStatus.CREATED).body(SuccessResponse.of(createOrderRes, SuccessResponseCode.SUCCESS_CREATED)); } } diff --git a/src/main/java/com/example/Centralthon/domain/order/web/dto/OrderReq.java b/src/main/java/com/example/Centralthon/domain/order/web/dto/CreateOrderReq.java similarity index 91% rename from src/main/java/com/example/Centralthon/domain/order/web/dto/OrderReq.java rename to src/main/java/com/example/Centralthon/domain/order/web/dto/CreateOrderReq.java index e36408a..0dcd06d 100644 --- a/src/main/java/com/example/Centralthon/domain/order/web/dto/OrderReq.java +++ b/src/main/java/com/example/Centralthon/domain/order/web/dto/CreateOrderReq.java @@ -9,7 +9,7 @@ @Getter @Setter -public class OrderReq { +public class CreateOrderReq { @NotEmpty(message = "주문 항목은 빈 배열일 수 없습니다.") List<@Valid OrderItemListReq> items; } diff --git a/src/main/java/com/example/Centralthon/domain/order/web/dto/CreateOrderRes.java b/src/main/java/com/example/Centralthon/domain/order/web/dto/CreateOrderRes.java new file mode 100644 index 0000000..8ea2476 --- /dev/null +++ b/src/main/java/com/example/Centralthon/domain/order/web/dto/CreateOrderRes.java @@ -0,0 +1,14 @@ +package com.example.Centralthon.domain.order.web.dto; + +import com.example.Centralthon.domain.order.entity.Order; + +import java.util.List; + +public record CreateOrderRes( + String code, + List storeList +) { + public static CreateOrderRes of(Order order, List storeList) { + return new CreateOrderRes(order.getPickUpCode(), storeList); + } +} diff --git a/src/main/java/com/example/Centralthon/domain/order/web/dto/OrderRes.java b/src/main/java/com/example/Centralthon/domain/order/web/dto/OrderRes.java deleted file mode 100644 index 0c351a2..0000000 --- a/src/main/java/com/example/Centralthon/domain/order/web/dto/OrderRes.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.example.Centralthon.domain.order.web.dto; - -import com.example.Centralthon.domain.order.entity.Order; - -public record OrderRes( - String code -) { - public static OrderRes from(Order order) { - return new OrderRes(order.getPickUpCode()); - } -}