diff --git a/backend/JiShop/src/main/java/com/jishop/order/controller/OrderController.java b/backend/JiShop/src/main/java/com/jishop/order/controller/OrderController.java index 061ffd33..b637d80b 100644 --- a/backend/JiShop/src/main/java/com/jishop/order/controller/OrderController.java +++ b/backend/JiShop/src/main/java/com/jishop/order/controller/OrderController.java @@ -6,27 +6,18 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.servlet.http.HttpServletResponse; import org.springframework.data.domain.Page; import org.springframework.http.ResponseEntity; -import java.io.IOException; import java.util.List; @Tag(name = "주문 API", description = "주문 관련 API") public interface OrderController { - //회원 주문 - 결제와 연동 - @Operation( - summary = "회원 주문 및 결제 API", - description = "회원이 장바구니에서 주문 및 결제 시 사용하는 API" - ) - void createOrder(User user, OrderRequest orderRequest, HttpServletResponse response) throws IOException; - //회원 주문 -// @Operation(summary = "회원 주문", description = "회원이 장바구니에서 주문 시 사용하는 API") -// ResponseEntity createOrder(User user, OrderRequest orderRequest); + @Operation(summary = "회원 주문", description = "회원이 장바구니에서 주문 시 사용하는 API") + ResponseEntity createOrder(User user, OrderRequest orderRequest); //회원 바로주문 @Operation(summary = "회원 바로 주문", description = "회원이 상품 상세 페이지에서 바로 주문할 때 사용되는 API") @@ -41,35 +32,26 @@ ResponseEntity> getOrderList( @Parameter(description = "각 페이지에 가져올 데이터의 개수를 정하는 값", example = "10") int size ); - //회원 주문 상세 조회 - 결제와 연동 - @Operation( - summary = "회원 주문 상세 조회", - description = "주문 및 결제 완료 후 orderNumber로 조회 가능") + //회원 주문 상세 조회 + @Operation(summary = "회원 주문 상세 조회", description = "orderId로 조회 가능") ResponseEntity getOrder( User user, - @Parameter(description = "조회할 주문 ID", example = "O250401T6P0C") String orderNumber + @Parameter(description = "조회할 주문 ID", example = "1") Long orderId ); -// //회원 주문 상세 조회 -// @Operation(summary = "회원 주문 상세 조회", description = "orderId로 조회 가능") -// ResponseEntity getOrder( -// User user, -// @Parameter(description = "조회할 주문 ID", example = "1") Long orderId -// ); - //회원 주문 취소 -// @Operation(summary = "회원 주문 취소", description = "orderId로 주문 취소 가능") -// ResponseEntity cancelOrder( -// User user, -// @Parameter(description = "조회할 주문 ID", example = "1") Long orderId -// ); + @Operation(summary = "회원 주문 취소", description = "orderId로 주문 취소 가능") + ResponseEntity cancelOrder( + User user, + @Parameter(description = "조회할 주문 ID", example = "1") Long orderId + ); //회원 취소 상세페이지 -// @Operation(summary = "회원 취소 상세 페이지", description = "orderId로 취소 상세 페이지 조회 가능") -// ResponseEntity getOrderCancel( -// User user, -// @Parameter(description = "조회할 주문 ID", example = "1") Long orderId -// ); + @Operation(summary = "회원 취소 상세 페이지", description = "orderId로 취소 상세 페이지 조회 가능") + ResponseEntity getOrderCancel( + User user, + @Parameter(description = "조회할 주문 ID", example = "1") Long orderId + ); // 장바구니에서 주문서로 넘어가는 API @Operation(summary = "장바구니에서 주문서로 넘어갈 때 사용하는 API") @@ -78,4 +60,20 @@ ResponseEntity getOrder( //바로 주문하기에서 주문서로 넘어가는 API @Operation(summary = "바로 주문하기에서 주문서로 넘어갈 때 사용하는 API") ResponseEntity getCheckoutInstant(User user, Long saleProductId, int quantity); + + //회원 주문 - 결제와 연동 +// @Operation( +// summary = "회원 주문 및 결제 API", +// description = "회원이 장바구니에서 주문 및 결제 시 사용하는 API" +// ) +// void createOrder(User user, OrderRequest orderRequest, HttpServletResponse response) throws IOException; + + //회원 주문 상세 조회 - 결제와 연동 +// @Operation( +// summary = "회원 주문 상세 조회", +// description = "주문 및 결제 완료 후 orderNumber로 조회 가능") +// ResponseEntity getOrder( +// User user, +// @Parameter(description = "조회할 주문 ID", example = "O250401T6P0C") String orderNumber +// ); } diff --git a/backend/JiShop/src/main/java/com/jishop/order/controller/OrderControllerImpl.java b/backend/JiShop/src/main/java/com/jishop/order/controller/OrderControllerImpl.java index f5916627..a3ec09ee 100644 --- a/backend/JiShop/src/main/java/com/jishop/order/controller/OrderControllerImpl.java +++ b/backend/JiShop/src/main/java/com/jishop/order/controller/OrderControllerImpl.java @@ -22,44 +22,24 @@ public class OrderControllerImpl implements OrderController { private final OrderService orderService; - //주문 생성 - 결제 페이지와 연동 + // 주문 생성 @Override @PostMapping - public void createOrder(@CurrentUser User user, - @RequestBody @Valid OrderRequest orderRequest, - HttpServletResponse response) throws IOException { + public ResponseEntity createOrder(@CurrentUser User user, + @Valid @RequestBody OrderRequest orderRequest) { OrderResponse orderResponse = orderService.createOrder(user, orderRequest); - response.sendRedirect("/orders/checkout/view?orderNumber=" - + orderResponse.orderNumber() - + "&amount=" + orderResponse.totalPrice()); - } -// @Override -// @PostMapping -// public ResponseEntity createOrder(@CurrentUser User user, -// @Valid @RequestBody OrderRequest orderRequest) { -// OrderResponse orderResponse = orderService.createOrder(user, orderRequest); -// -// return ResponseEntity.ok(orderResponse); -// } - - //주문 내역 단건 조회 - 결제 페이지와 연동 + return ResponseEntity.ok(orderResponse); + } + + //주문 내역 단건 조회 @Override - @GetMapping("/{orderNumber}") - public ResponseEntity getOrder(@CurrentUser User user, @PathVariable String orderNumber){ - OrderDetailPageResponse orderDetailResponse = orderService.getOrder(user, orderNumber, null); + @GetMapping("/{orderId}") + public ResponseEntity getOrder(@CurrentUser User user, @PathVariable Long orderId){ + OrderDetailPageResponse orderDetailResponse = orderService.getOrder(user, orderId, null, null); return ResponseEntity.ok(orderDetailResponse); } - -// //주문 내역 단건 조회 -// @Override -// @GetMapping("/{orderId}") -// public ResponseEntity getOrder(@CurrentUser User user, @PathVariable Long orderId){ -// OrderDetailPageResponse orderDetailResponse = orderService.getOrder(user, orderId, null, null); -// -// return ResponseEntity.ok(orderDetailResponse); -// } //주문 전체 조회 (페이징 처리) @Override @@ -76,13 +56,13 @@ public ResponseEntity> getOrderList( } //주문 취소 -// @Override -// @PatchMapping("/{orderId}") -// public ResponseEntity cancelOrder(@CurrentUser User user, @PathVariable Long orderId){ -// orderService.cancelOrder(user, orderId, null, null); -// -// return ResponseEntity.ok("주문이 취소되었습니다"); -// } + @Override + @PatchMapping("/{orderId}") + public ResponseEntity cancelOrder(@CurrentUser User user, @PathVariable Long orderId){ + orderService.cancelOrder(user, orderId, null, null); + + return ResponseEntity.ok("주문이 취소되었습니다"); + } // 바로 구매하기 @Override @@ -94,13 +74,13 @@ public ResponseEntity createInstantOrder(@CurrentUser User user, } //회원 주문 취소 상세 페이지 -// @Override -// @GetMapping("/getCancel/{orderId}") -// public ResponseEntity getOrderCancel(@CurrentUser User user, @PathVariable Long orderId) { -// OrderCancelResponse orderCancelResponse = orderService.getCancelPage(user, orderId, null, null); -// -// return ResponseEntity.ok(orderCancelResponse); -// } + @Override + @GetMapping("/getCancel/{orderId}") + public ResponseEntity getOrderCancel(@CurrentUser User user, @PathVariable Long orderId) { + OrderCancelResponse orderCancelResponse = orderService.getCancelPage(user, orderId, null, null); + + return ResponseEntity.ok(orderCancelResponse); + } //장바구니에서 주문서로 넘어갈 때 사용하는 API @PostMapping("/checkout") @@ -120,4 +100,25 @@ public ResponseEntity getCheckoutInstant(@CurrentUser User user, return ResponseEntity.ok(products); } + + //주문 생성 - 결제 페이지와 연동 +// @Override +// @PostMapping +// public void createOrder(@CurrentUser User user, +// @RequestBody @Valid OrderRequest orderRequest, +// HttpServletResponse response) throws IOException { +// OrderResponse orderResponse = orderService.createOrder(user, orderRequest); +// response.sendRedirect("/orders/checkout/view?orderNumber=" +// + orderResponse.orderNumber() +// + "&amount=" + orderResponse.totalPrice()); +// } + + //주문 내역 단건 조회 - 결제 페이지와 연동 +// @Override +// @GetMapping("/{orderNumber}") +// public ResponseEntity getOrder(@CurrentUser User user, @PathVariable String orderNumber){ +// OrderDetailPageResponse orderDetailResponse = orderService.getOrder(user, orderNumber, null); +// +// return ResponseEntity.ok(orderDetailResponse); +// } } \ No newline at end of file diff --git a/backend/JiShop/src/main/java/com/jishop/order/controller/OrderViewController.java b/backend/JiShop/src/main/java/com/jishop/order/controller/OrderViewController.java index 7976a590..6f92f659 100644 --- a/backend/JiShop/src/main/java/com/jishop/order/controller/OrderViewController.java +++ b/backend/JiShop/src/main/java/com/jishop/order/controller/OrderViewController.java @@ -1,15 +1,15 @@ -package com.jishop.order.controller; - -import io.swagger.v3.oas.annotations.Operation; -import org.springframework.ui.Model; -import io.swagger.v3.oas.annotations.tags.Tag; - -@Tag(name = "결제 페이지 렌더링 API") -public interface OrderViewController { - - @Operation( - summary = "결제 페이지 렌더링 API", - description = "회원이 장바구니에서 주문 시 결제 페이지를 렌더링하는 API" - ) - String createOrderAndRedirect(String orderNumber, int amount, Model model); -} +//package com.jishop.order.controller; +// +//import io.swagger.v3.oas.annotations.Operation; +//import org.springframework.ui.Model; +//import io.swagger.v3.oas.annotations.tags.Tag; +// +//@Tag(name = "결제 페이지 렌더링 API") +//public interface OrderViewController { +// +// @Operation( +// summary = "결제 페이지 렌더링 API", +// description = "회원이 장바구니에서 주문 시 결제 페이지를 렌더링하는 API" +// ) +// String createOrderAndRedirect(String orderNumber, int amount, Model model); +//} diff --git a/backend/JiShop/src/main/java/com/jishop/order/controller/OrderViewControllerImpl.java b/backend/JiShop/src/main/java/com/jishop/order/controller/OrderViewControllerImpl.java index 56321084..13b4ae49 100644 --- a/backend/JiShop/src/main/java/com/jishop/order/controller/OrderViewControllerImpl.java +++ b/backend/JiShop/src/main/java/com/jishop/order/controller/OrderViewControllerImpl.java @@ -1,35 +1,35 @@ -package com.jishop.order.controller; - -import com.jishop.config.TossPaymentConfig; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; -import org.springframework.ui.Model; - -@Controller -@RequiredArgsConstructor -@RequestMapping("/orders") -public class OrderViewControllerImpl implements OrderViewController { - - private final TossPaymentConfig tossPaymentConfig; - +//package com.jishop.order.controller; +// +//import com.jishop.config.TossPaymentConfig; +//import lombok.RequiredArgsConstructor; +//import org.springframework.stereotype.Controller; +//import org.springframework.web.bind.annotation.*; +//import org.springframework.ui.Model; +// +//@Controller +//@RequiredArgsConstructor +//@RequestMapping("/orders") +//public class OrderViewControllerImpl implements OrderViewController { +// +// private final TossPaymentConfig tossPaymentConfig; +// // @GetMapping("/test") // public String test() { // return "test-order"; // } - - @GetMapping("/checkout/view") - public String createOrderAndRedirect(@RequestParam String orderNumber, - @RequestParam int amount, - Model model) { - // 결제 페이지에 필요한 데이터 전달 - model.addAttribute("orderId", orderNumber); // Toss 결제용 - model.addAttribute("amount", amount); - model.addAttribute("clientKey", tossPaymentConfig.getClientKey()); - model.addAttribute("successUrl", "/payments/success"); - model.addAttribute("failUrl", "/payments/fail"); - - return "checkout"; // templates/checkout.html - } -} - +// +// @GetMapping("/checkout/view") +// public String createOrderAndRedirect(@RequestParam String orderNumber, +// @RequestParam int amount, +// Model model) { +// // 결제 페이지에 필요한 데이터 전달 +// model.addAttribute("orderId", orderNumber); // Toss 결제용 +// model.addAttribute("amount", amount); +// model.addAttribute("clientKey", tossPaymentConfig.getClientKey()); +// model.addAttribute("successUrl", "/payments/success"); +// model.addAttribute("failUrl", "/payments/fail"); +// +// return "checkout"; // templates/checkout.html +// } +//} +// diff --git a/backend/JiShop/src/main/java/com/jishop/order/repository/OrderRepository.java b/backend/JiShop/src/main/java/com/jishop/order/repository/OrderRepository.java index 672ff59e..4f3e47f2 100644 --- a/backend/JiShop/src/main/java/com/jishop/order/repository/OrderRepository.java +++ b/backend/JiShop/src/main/java/com/jishop/order/repository/OrderRepository.java @@ -17,31 +17,19 @@ @Repository public interface OrderRepository extends JpaRepository { // 특정 사용자의 단일 주문 조회 (fetch join 적용) -// @Query("SELECT DISTINCT o FROM Order o " + -// "LEFT JOIN FETCH o.orderDetails od " + -// "WHERE o.id = :orderId AND o.userId = :userId") -// Optional findByIdWithDetails(@Param("userId") Long userId, @Param("orderId") Long orderId); @Query("SELECT DISTINCT o FROM Order o " + "LEFT JOIN FETCH o.orderDetails od " + - "WHERE o.orderNumber = :orderNumber AND o.userId = :userId") - Optional findByIdWithDetails(@Param("userId") Long userId, @Param("orderNumber") Long orderNumber); + "WHERE o.id = :orderId AND o.userId = :userId") + Optional findByIdWithDetails(@Param("userId") Long userId, @Param("orderId") Long orderId); -// @Query("SELECT DISTINCT o FROM Order o " + -// "LEFT JOIN FETCH o.orderDetails od " + -// "LEFT JOIN FETCH od.saleProduct sp " + -// "LEFT JOIN FETCH sp.option " + -// "LEFT JOIN FETCH sp.product " + -// "LEFT JOIN FETCH sp.stock " + -// "WHERE o.orderId = :orderId AND o.userId = :userId") -// Optional findByIdWithDetailsAndProducts(@Param("userId") Long userId, @Param("orderId") Long orderNumber); @Query("SELECT DISTINCT o FROM Order o " + "LEFT JOIN FETCH o.orderDetails od " + "LEFT JOIN FETCH od.saleProduct sp " + "LEFT JOIN FETCH sp.option " + "LEFT JOIN FETCH sp.product " + "LEFT JOIN FETCH sp.stock " + - "WHERE o.orderNumber = :orderNumber AND o.userId = :userId") - Optional findByIdWithDetailsAndProducts(@Param("userId") Long userId, @Param("orderNumber") String orderNumber); + "WHERE o.id = :orderId AND o.userId = :userId") + Optional findByIdWithDetailsAndProducts(@Param("userId") Long userId, @Param("orderId") Long orderNumber); // 페이징을 위한 첫 번째 쿼리: 페이징된 ID 목록 가져오기 @Query("SELECT o.id FROM Order o " + diff --git a/backend/JiShop/src/main/java/com/jishop/order/service/OrderCancelService.java b/backend/JiShop/src/main/java/com/jishop/order/service/OrderCancelService.java index d9ac75e9..a597194e 100644 --- a/backend/JiShop/src/main/java/com/jishop/order/service/OrderCancelService.java +++ b/backend/JiShop/src/main/java/com/jishop/order/service/OrderCancelService.java @@ -4,5 +4,5 @@ public interface OrderCancelService { //회원 비회원 주문 취소 -// void cancelOrder(User user, Long orderId, String orderNumber, String phone); + void cancelOrder(User user, Long orderId, String orderNumber, String phone); } diff --git a/backend/JiShop/src/main/java/com/jishop/order/service/OrderGetService.java b/backend/JiShop/src/main/java/com/jishop/order/service/OrderGetService.java index b9232b54..eff77769 100644 --- a/backend/JiShop/src/main/java/com/jishop/order/service/OrderGetService.java +++ b/backend/JiShop/src/main/java/com/jishop/order/service/OrderGetService.java @@ -12,14 +12,13 @@ public interface OrderGetService { //회원 비회원 주문 상세 페이지 -// OrderDetailPageResponse getOrder(User user, Long orderId, String orderNumber, String phone); - OrderDetailPageResponse getOrder(User user, String orderNumber, String phone); + OrderDetailPageResponse getOrder(User user, Long orderId, String orderNumber, String phone); //페이징 처리 주문 목록 전체 조회 Page getPaginatedOrders(User user, String period, int page, int size); //회원 비회원 주문취소 상세 페이지 -// OrderCancelResponse getCancelPage(User user, Long orderId, String orderNumber, String phone); + OrderCancelResponse getCancelPage(User user, Long orderId, String orderNumber, String phone); //회원 비회원 장바구니에서 주문서로 넘어가는 API CartResponse getCheckOut(User user, List orderDetailRequest); diff --git a/backend/JiShop/src/main/java/com/jishop/order/service/OrderService.java b/backend/JiShop/src/main/java/com/jishop/order/service/OrderService.java index 1614e78d..58e9f6f8 100644 --- a/backend/JiShop/src/main/java/com/jishop/order/service/OrderService.java +++ b/backend/JiShop/src/main/java/com/jishop/order/service/OrderService.java @@ -12,11 +12,10 @@ public interface OrderService { //회원 OrderResponse createOrder(User user, OrderRequest orderRequest); OrderResponse createInstantOrder(User user, InstantOrderRequest instantOrderRequest); -// OrderDetailPageResponse getOrder(User user, Long orderId, String orderNumber, String phone); - OrderDetailPageResponse getOrder(User user, String orderNumber, String phone); + OrderDetailPageResponse getOrder(User user, Long orderId, String orderNumber, String phone); Page getPaginatedOrders(User user, String period, int page, int size); -// void cancelOrder(User user, Long orderId, String orderNumber, String phone); -// OrderCancelResponse getCancelPage(User user, Long orderId, String orderNumber, String phone); + void cancelOrder(User user, Long orderId, String orderNumber, String phone); + OrderCancelResponse getCancelPage(User user, Long orderId, String orderNumber, String phone); CartResponse getCheckout(User user, List orderDetailRequest); CartResponse getCheckoutInstant(User user, Long saleProductId, int quantity); @@ -24,8 +23,8 @@ public interface OrderService { OrderResponse createGuestOrder(OrderRequest orderRequest); OrderResponse createGuestInstantOrder(InstantOrderRequest orderRequest); OrderDetailPageResponse getGuestOrder(String orderNumber, String phone); -// void cancelGuestOrder(String orderNumber, String phone); -// OrderCancelResponse getGuestCancelPage(String orderNumber, String phone); + void cancelGuestOrder(String orderNumber, String phone); + OrderCancelResponse getGuestCancelPage(String orderNumber, String phone); CartResponse getGuestCheckout(User user, List orderDetailRequest); CartResponse getGuestCheckoutInstant(User user, Long saleProductId, int quantity); } diff --git a/backend/JiShop/src/main/java/com/jishop/order/service/OrderUtilService.java b/backend/JiShop/src/main/java/com/jishop/order/service/OrderUtilService.java index 1d618b47..35f3fefd 100644 --- a/backend/JiShop/src/main/java/com/jishop/order/service/OrderUtilService.java +++ b/backend/JiShop/src/main/java/com/jishop/order/service/OrderUtilService.java @@ -10,8 +10,7 @@ public interface OrderUtilService { -// Order findOrder(User user, Long orderId, String orderNumber, String phone); - Order findOrder(User user, String orderNumber, String phone); + Order findOrder(User user, Long orderId, String orderNumber, String phone); String generateOrderNumber(); List processOrderDetails(Order order, List orderDetailRequestList); List convertToOrderDetailResponses(List details, User user); diff --git a/backend/JiShop/src/main/java/com/jishop/order/service/impl/OrderCancelServiceImpl.java b/backend/JiShop/src/main/java/com/jishop/order/service/impl/OrderCancelServiceImpl.java index 3fc78ca4..26c1cd39 100644 --- a/backend/JiShop/src/main/java/com/jishop/order/service/impl/OrderCancelServiceImpl.java +++ b/backend/JiShop/src/main/java/com/jishop/order/service/impl/OrderCancelServiceImpl.java @@ -26,12 +26,12 @@ public class OrderCancelServiceImpl implements OrderCancelService { private final OrderUtilService orderUtilService; // 주문 취소 - (회원/비회원 통합) -// @Override -// public void cancelOrder(User user, Long orderId, String orderNumber, String phone) { -// Order order = orderUtilService.findOrder(user, orderId, orderNumber, phone); -// -// processCancellation(order); -// } + @Override + public void cancelOrder(User user, Long orderId, String orderNumber, String phone) { + Order order = orderUtilService.findOrder(user, orderId, orderNumber, phone); + + processCancellation(order); + } private void processCancellation(Order order) { orderUtilService.validateOrderCancellation(order); diff --git a/backend/JiShop/src/main/java/com/jishop/order/service/impl/OrderGetServiceImpl.java b/backend/JiShop/src/main/java/com/jishop/order/service/impl/OrderGetServiceImpl.java index ba92cd3d..991bb772 100644 --- a/backend/JiShop/src/main/java/com/jishop/order/service/impl/OrderGetServiceImpl.java +++ b/backend/JiShop/src/main/java/com/jishop/order/service/impl/OrderGetServiceImpl.java @@ -36,16 +36,9 @@ public class OrderGetServiceImpl implements OrderGetService { private final SaleProductRepository saleProductRepository; // 주문 상세 조회 (회원/비회원 통합) -// @Override -// public OrderDetailPageResponse getOrder(User user, Long orderId, String orderNumber, String phone) { -// Order order = orderUtilService.findOrder(user, orderId, orderNumber, phone); -// -// return createOrderDetailPageResponse(order, user); -// } - @Override - public OrderDetailPageResponse getOrder(User user, String orderNumber, String phone) { - Order order = orderUtilService.findOrder(user, orderNumber, phone); + public OrderDetailPageResponse getOrder(User user, Long orderId, String orderNumber, String phone) { + Order order = orderUtilService.findOrder(user, orderId, orderNumber, phone); return createOrderDetailPageResponse(order, user); } @@ -79,14 +72,14 @@ public Page getPaginatedOrders(User user, String period, int page } // 회원,비회원 주문 취소 상세 페이지 -// @Override -// public OrderCancelResponse getCancelPage(User user, Long orderId, String orderNumber, String phone) { -// Order order = orderUtilService.findOrder(user, orderId, orderNumber, phone); -// -// OrderDetailPageResponse pageResponse = createOrderDetailPageResponse(order, user); -// -// return new OrderCancelResponse(order.getUpdatedAt(), pageResponse); -// } + @Override + public OrderCancelResponse getCancelPage(User user, Long orderId, String orderNumber, String phone) { + Order order = orderUtilService.findOrder(user, orderId, orderNumber, phone); + + OrderDetailPageResponse pageResponse = createOrderDetailPageResponse(order, user); + + return new OrderCancelResponse(order.getUpdatedAt(), pageResponse); + } //회원, 비회원 장바구니에서 주문서로 넘어가는 API @Override diff --git a/backend/JiShop/src/main/java/com/jishop/order/service/impl/OrderServiceImpl.java b/backend/JiShop/src/main/java/com/jishop/order/service/impl/OrderServiceImpl.java index 1c165ee5..6374707e 100644 --- a/backend/JiShop/src/main/java/com/jishop/order/service/impl/OrderServiceImpl.java +++ b/backend/JiShop/src/main/java/com/jishop/order/service/impl/OrderServiceImpl.java @@ -36,14 +36,9 @@ public OrderResponse createInstantOrder(User user, InstantOrderRequest instantOr } //회원 주문 상세 조회 -// @Override -// public OrderDetailPageResponse getOrder(User user, Long orderId, String orderNumber, String phone) { -// return orderGetService.getOrder(user, orderId, orderNumber, phone); -// } - @Override - public OrderDetailPageResponse getOrder(User user, String orderNumber, String phone) { - return orderGetService.getOrder(user, orderNumber, phone); + public OrderDetailPageResponse getOrder(User user, Long orderId, String orderNumber, String phone) { + return orderGetService.getOrder(user, orderId, orderNumber, phone); } //회원 주문 목록 조회 @@ -53,16 +48,16 @@ public Page getPaginatedOrders(User user, String period, int page } //회원 주문 취소 -// @Override -// public void cancelOrder(User user, Long orderId, String orderNumber, String phone) { -// orderCancelService.cancelOrder(user, orderId, orderNumber, phone); -// } + @Override + public void cancelOrder(User user, Long orderId, String orderNumber, String phone) { + orderCancelService.cancelOrder(user, orderId, orderNumber, phone); + } //회원 주문 취소 상세 페이지 조회 -// @Override -// public OrderCancelResponse getCancelPage(User user, Long orderId, String orderNumber, String phone) { -// return orderGetService.getCancelPage(user, orderId, orderNumber, phone); -// } + @Override + public OrderCancelResponse getCancelPage(User user, Long orderId, String orderNumber, String phone) { + return orderGetService.getCancelPage(user, orderId, orderNumber, phone); + } //회원 장바구니에서 주문서로 넘어갈 때 사용되는 API @Override @@ -90,24 +85,21 @@ public OrderResponse createGuestInstantOrder(InstantOrderRequest orderRequest) { //비회원 주문 상세 페이지 @Override -// public OrderDetailPageResponse getGuestOrder(String orderNumber, String phone) { -// return orderGetService.getOrder(null, null, orderNumber, phone); -// } public OrderDetailPageResponse getGuestOrder(String orderNumber, String phone) { - return orderGetService.getOrder(null, orderNumber, phone); + return orderGetService.getOrder(null, null, orderNumber, phone); } //비회원 주문 취소 -// @Override -// public void cancelGuestOrder(String orderNumber, String phone) { -// orderCancelService.cancelOrder(null, null, orderNumber, phone); -// } + @Override + public void cancelGuestOrder(String orderNumber, String phone) { + orderCancelService.cancelOrder(null, null, orderNumber, phone); + } //비회원 주문 취소 페이지 조회 -// @Override -// public OrderCancelResponse getGuestCancelPage(String orderNumber, String phone) { -// return orderGetService.getCancelPage(null, null, orderNumber, phone); -// } + @Override + public OrderCancelResponse getGuestCancelPage(String orderNumber, String phone) { + return orderGetService.getCancelPage(null, null, orderNumber, phone); + } //비회원 장바구니에서 주문서로 넘어갈 때 사용하는 API @Override diff --git a/backend/JiShop/src/main/java/com/jishop/order/service/impl/OrderUtilServiceImpl.java b/backend/JiShop/src/main/java/com/jishop/order/service/impl/OrderUtilServiceImpl.java index 28ec89aa..8784028d 100644 --- a/backend/JiShop/src/main/java/com/jishop/order/service/impl/OrderUtilServiceImpl.java +++ b/backend/JiShop/src/main/java/com/jishop/order/service/impl/OrderUtilServiceImpl.java @@ -32,19 +32,9 @@ public class OrderUtilServiceImpl implements OrderUtilService { private final ReviewRepository reviewRepository; // 주문 조회 공통 로직 -// public Order findOrder(User user, Long orderId, String orderNumber, String phone) { -// if (user != null) { -// return orderRepository.findByIdWithDetailsAndProducts(user.getId(), orderId) -// .orElseThrow(() -> new DomainException(ErrorType.ORDER_NOT_FOUND)); -// } else { -// return orderRepository.findByOrderNumberAndPhone(orderNumber, phone) -// .orElseThrow(() -> new DomainException(ErrorType.ORDER_NOT_FOUND)); -// } -// } - - public Order findOrder(User user, String orderNumber, String phone) { + public Order findOrder(User user, Long orderId, String orderNumber, String phone) { if (user != null) { - return orderRepository.findByIdWithDetailsAndProducts(user.getId(), orderNumber) + return orderRepository.findByIdWithDetailsAndProducts(user.getId(), orderId) .orElseThrow(() -> new DomainException(ErrorType.ORDER_NOT_FOUND)); } else { return orderRepository.findByOrderNumberAndPhone(orderNumber, phone) diff --git a/backend/JiShop/src/main/java/com/jishop/payment/controller/PaymentFlowController.java b/backend/JiShop/src/main/java/com/jishop/payment/controller/PaymentFlowController.java index 7e77cc62..b47692d4 100644 --- a/backend/JiShop/src/main/java/com/jishop/payment/controller/PaymentFlowController.java +++ b/backend/JiShop/src/main/java/com/jishop/payment/controller/PaymentFlowController.java @@ -1,24 +1,24 @@ -package com.jishop.payment.controller; - -import com.jishop.payment.dto.PaymentConfirmRequest; -import com.jishop.payment.dto.PaymentConfirmResponse; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.http.ResponseEntity; - -@Tag(name = "결제 승인 성공 및 실패 API") -public interface PaymentFlowController { - - @Operation( - summary = "결제 승인 성공 API", - description = "토스페이먼츠로 보낸 결제 승인 요청 성공 시 리다렉트되는 API" - ) - ResponseEntity confirm(PaymentConfirmRequest request); - - - @Operation( - summary = "결제 승인 실패 API", - description = "토스페이먼츠로 보낸 결제 승인 요청 실패 시 리다렉트되는 API" - ) - ResponseEntity fail(String code, String message); -} +//package com.jishop.payment.controller; +// +//import com.jishop.payment.dto.PaymentConfirmRequest; +//import com.jishop.payment.dto.PaymentConfirmResponse; +//import io.swagger.v3.oas.annotations.Operation; +//import io.swagger.v3.oas.annotations.tags.Tag; +//import org.springframework.http.ResponseEntity; +// +//@Tag(name = "결제 승인 성공 및 실패 API") +//public interface PaymentFlowController { +// +// @Operation( +// summary = "결제 승인 성공 API", +// description = "토스페이먼츠로 보낸 결제 승인 요청 성공 시 리다렉트되는 API" +// ) +// ResponseEntity confirm(PaymentConfirmRequest request); +// +// +// @Operation( +// summary = "결제 승인 실패 API", +// description = "토스페이먼츠로 보낸 결제 승인 요청 실패 시 리다렉트되는 API" +// ) +// ResponseEntity fail(String code, String message); +//} diff --git a/backend/JiShop/src/main/java/com/jishop/payment/controller/PaymentFlowControllerImpl.java b/backend/JiShop/src/main/java/com/jishop/payment/controller/PaymentFlowControllerImpl.java index 97c51dec..16bd89d1 100644 --- a/backend/JiShop/src/main/java/com/jishop/payment/controller/PaymentFlowControllerImpl.java +++ b/backend/JiShop/src/main/java/com/jishop/payment/controller/PaymentFlowControllerImpl.java @@ -1,55 +1,55 @@ -package com.jishop.payment.controller; - -import com.jishop.payment.dto.PaymentConfirmRequest; -import com.jishop.payment.dto.PaymentConfirmResponse; -import com.jishop.payment.service.PaymentService; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.Valid; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.util.UriComponentsBuilder; - -import java.io.IOException; - - -@Slf4j -@RestController -@RequiredArgsConstructor -@RequestMapping("/payments") -public class PaymentFlowControllerImpl { - - private final PaymentService paymentService; - +//package com.jishop.payment.controller; +// +//import com.jishop.payment.dto.PaymentConfirmRequest; +//import com.jishop.payment.dto.PaymentConfirmResponse; +//import com.jishop.payment.service.PaymentService; +//import jakarta.servlet.http.HttpServletResponse; +//import jakarta.validation.Valid; +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.http.ResponseEntity; +//import org.springframework.web.bind.annotation.GetMapping; +//import org.springframework.web.bind.annotation.RequestMapping; +//import org.springframework.web.bind.annotation.RequestParam; +//import org.springframework.web.bind.annotation.RestController; +//import org.springframework.web.util.UriComponentsBuilder; +// +//import java.io.IOException; +// +// +//@Slf4j +//@RestController +//@RequiredArgsConstructor +//@RequestMapping("/payments") +//public class PaymentFlowControllerImpl { +// +// private final PaymentService paymentService; +// +//// @GetMapping("/success") +//// public ResponseEntity confirm(@Valid PaymentConfirmRequest request) { +//// PaymentConfirmResponse response = paymentService.confirmPayment(request); +//// // 프론트 주소로(결제 완료되었습니다 페이지) 변경, redirect + response 같이 보내기 +//// // Get으로 전송 +//// return ResponseEntity.ok(response); +//// } +// // @GetMapping("/success") -// public ResponseEntity confirm(@Valid PaymentConfirmRequest request) { -// PaymentConfirmResponse response = paymentService.confirmPayment(request); -// // 프론트 주소로(결제 완료되었습니다 페이지) 변경, redirect + response 같이 보내기 -// // Get으로 전송 -// return ResponseEntity.ok(response); +// public void confirm(@Valid PaymentConfirmRequest request, HttpServletResponse response) throws IOException { +// PaymentConfirmResponse confirmResponse = paymentService.confirmPayment(request); +// +// // 프론트 주소로 주문번호(orderNumber) 전달 +// String redirectUrl = UriComponentsBuilder.fromUriString("https://uiverse.shop/purchase-complete") +// .queryParam("orderNumber", confirmResponse.orderId()) +// .build() +// .toUriString(); +// +// response.sendRedirect(redirectUrl); // } - - @GetMapping("/success") - public void confirm(@Valid PaymentConfirmRequest request, HttpServletResponse response) throws IOException { - PaymentConfirmResponse confirmResponse = paymentService.confirmPayment(request); - - // 프론트 주소로 주문번호(orderNumber) 전달 - String redirectUrl = UriComponentsBuilder.fromUriString("https://uiverse.shop/purchase-complete") - .queryParam("orderNumber", confirmResponse.orderId()) - .build() - .toUriString(); - - response.sendRedirect(redirectUrl); - } - - @GetMapping("/fail") - public ResponseEntity fail(@RequestParam String code, - @RequestParam String message) { - return ResponseEntity.badRequest().body("결제 실패: " + code + " / " + message); - } -} - +// +// @GetMapping("/fail") +// public ResponseEntity fail(@RequestParam String code, +// @RequestParam String message) { +// return ResponseEntity.badRequest().body("결제 실패: " + code + " / " + message); +// } +//} +//