Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public interface OrderController {

//회원 바로주문
@Operation(summary = "회원 바로 주문", description = "회원이 상품 상세 페이지에서 바로 주문할 때 사용되는 API")
ResponseEntity<OrderResponse> createInstantOrder(User user, InstantOrderRequest orderRequest);
ResponseEntity<OrderResponse> createInstantOrder(User user, OrderRequest orderRequest);

//회원 주문 목록 조회 페이징 처리
@Operation(summary = "회원 주문 목록 조회", description = "조회하는 회원의 ID에 따른 주문 목록 페이지")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,12 @@
import com.jishop.member.domain.User;
import com.jishop.order.dto.*;
import com.jishop.order.service.OrderService;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.io.IOException;
import java.util.List;

@RestController
Expand Down Expand Up @@ -67,7 +65,7 @@ public ResponseEntity<String> cancelOrder(@CurrentUser User user, @PathVariable
// 바로 구매하기
@Override
@PostMapping("/instant")
public ResponseEntity<OrderResponse> createInstantOrder(@CurrentUser User user, @RequestBody @Valid InstantOrderRequest orderRequest) {
public ResponseEntity<OrderResponse> createInstantOrder(@CurrentUser User user, @RequestBody @Valid OrderRequest orderRequest) {
OrderResponse orderResponse = orderService.createInstantOrder(user, orderRequest);

return ResponseEntity.ok(orderResponse);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public interface OrderGuestController {

//비회원 바로 주문 생성
@Operation(summary = "비회원 바로 주문", description = "비회원 바로 주문 시 userId를 null로 처리하여 주문 진행")
ResponseEntity<OrderResponse> createGuestInstantOrder(InstantOrderRequest orderRequest);
ResponseEntity<OrderResponse> createGuestInstantOrder(OrderRequest orderRequest);

//비회원 주문 상세 조회
@Operation(summary = "비회원 상세 조회", description = "비회원은 주문 목록 조회가 존재하지 않고 주문 번호와 주문 시 사용했던 전화번호로 조회가 가능")
Expand All @@ -25,16 +25,16 @@ ResponseEntity<OrderDetailPageResponse> getGuestOrderDetail(
);

//비회원 주문 취소
// @Operation(summary = "비회원 주문 취소", description = "비회원은 주문 번호와 주문 시 사용했던 전화번호로 취소가 가능")
// ResponseEntity<String> cancelGuestOrder(
// @Parameter(description = "조회할 주문번호", example = "O250327QNPUY") String orderNumber,
// @Parameter(description = "조회할 주문 수신자의 전화번호", example = "01012345678") String phone
// );
@Operation(summary = "비회원 주문 취소", description = "비회원은 주문 번호와 주문 시 사용했던 전화번호로 취소가 가능")
ResponseEntity<String> cancelGuestOrder(
@Parameter(description = "조회할 주문번호", example = "O250327QNPUY") String orderNumber,
@Parameter(description = "조회할 주문 수신자의 전화번호", example = "01012345678") String phone
);

//비회원 취소 상세페이지
// @Operation(summary = "비회원 주문 취소 상세 페이지", description = "비회원은 주문 번호와 주문 시 사용했던 전화번호로 주문 취소 상세 페이지 조회가 가능")
// ResponseEntity<OrderCancelResponse> getGuestOrderCancel(
// @Parameter(description = "조회할 주문번호", example = "O250327QNPUY") String orderNumber,
// @Parameter(description = "조회할 주문 수신자의 전화번호", example = "01012345678") String phone
// );
@Operation(summary = "비회원 주문 취소 상세 페이지", description = "비회원은 주문 번호와 주문 시 사용했던 전화번호로 주문 취소 상세 페이지 조회가 가능")
ResponseEntity<OrderCancelResponse> getGuestOrderCancel(
@Parameter(description = "조회할 주문번호", example = "O250327QNPUY") String orderNumber,
@Parameter(description = "조회할 주문 수신자의 전화번호", example = "01012345678") String phone
);
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.jishop.order.controller;

import com.jishop.order.dto.*;
import com.jishop.order.service.OrderGuestService;
import com.jishop.order.dto.OrderCancelResponse;
import com.jishop.order.dto.OrderDetailPageResponse;
import com.jishop.order.dto.OrderRequest;
import com.jishop.order.dto.OrderResponse;
import com.jishop.order.service.OrderService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
Expand All @@ -27,7 +29,7 @@ public ResponseEntity<OrderResponse> createGuestOrder(@RequestBody @Valid OrderR
//비회원 바로주문 생성
@Override
@PostMapping("/instant")
public ResponseEntity<OrderResponse> createGuestInstantOrder(@RequestBody @Valid InstantOrderRequest orderRequest) {
public ResponseEntity<OrderResponse> createGuestInstantOrder(@RequestBody @Valid OrderRequest orderRequest) {
OrderResponse orderResponse = orderService.createGuestInstantOrder(orderRequest);

return ResponseEntity.ok(orderResponse);
Expand All @@ -44,21 +46,21 @@ public ResponseEntity<OrderDetailPageResponse> getGuestOrderDetail(@PathVariable
}

//비회원 주문 취소하기
// @Override
// @PatchMapping("/{orderNumber}")
// public ResponseEntity<String> cancelGuestOrder(@PathVariable String orderNumber,
// @RequestParam String phone) {
// orderService.cancelGuestOrder(orderNumber, phone);
//
// return ResponseEntity.ok("주문이 취소되었습니다.");
// }
@Override
@PatchMapping("/{orderNumber}")
public ResponseEntity<String> cancelGuestOrder(@PathVariable String orderNumber,
@RequestParam String phone) {
orderService.cancelGuestOrder(orderNumber, phone);

return ResponseEntity.ok("주문이 취소되었습니다.");
}

//비회원 주문 취소 상세 페이지
// @Override
// @GetMapping("/getCancel/{orderNumber}")
// public ResponseEntity<OrderCancelResponse> getGuestOrderCancel(@PathVariable String orderNumber, @RequestParam String phone){
// OrderCancelResponse orderCancelResponse = orderService.getGuestCancelPage(orderNumber, phone);
//
// return ResponseEntity.ok(orderCancelResponse);
// }
@Override
@GetMapping("/getCancel/{orderNumber}")
public ResponseEntity<OrderCancelResponse> getGuestOrderCancel(@PathVariable String orderNumber, @RequestParam String phone){
OrderCancelResponse orderCancelResponse = orderService.getGuestCancelPage(orderNumber, phone);

return ResponseEntity.ok(orderCancelResponse);
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.jishop.order.service;

import com.jishop.member.domain.User;
import com.jishop.order.dto.InstantOrderRequest;
import com.jishop.order.dto.OrderRequest;
import com.jishop.order.dto.OrderResponse;

Expand All @@ -10,5 +9,5 @@ public interface OrderCreationService {
OrderResponse createOrder(User user, OrderRequest orderRequest);

//회원 비회원 바로주문
OrderResponse createInstantOrder(User user, InstantOrderRequest orderRequest);
OrderResponse createInstantOrder(User user, OrderRequest orderRequest);
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public interface OrderService {

//회원
OrderResponse createOrder(User user, OrderRequest orderRequest);
OrderResponse createInstantOrder(User user, InstantOrderRequest instantOrderRequest);
OrderResponse createInstantOrder(User user, OrderRequest instantOrderRequest);
OrderDetailPageResponse getOrder(User user, Long orderId, String orderNumber, String phone);
Page<OrderResponse> getPaginatedOrders(User user, String period, int page, int size);
void cancelOrder(User user, Long orderId, String orderNumber, String phone);
Expand All @@ -21,7 +21,7 @@ public interface OrderService {

//비회원
OrderResponse createGuestOrder(OrderRequest orderRequest);
OrderResponse createGuestInstantOrder(InstantOrderRequest orderRequest);
OrderResponse createGuestInstantOrder(OrderRequest orderRequest);
OrderDetailPageResponse getGuestOrder(String orderNumber, String phone);
void cancelGuestOrder(String orderNumber, String phone);
OrderCancelResponse getGuestCancelPage(String orderNumber, String phone);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,28 +97,10 @@ public OrderResponse processOrderCreation(User user, OrderRequest orderRequest)
// 바로 주문하기 (회원/비회원 통합)
@Override
@Transactional
public OrderResponse createInstantOrder(User user, InstantOrderRequest instantOrderRequest) {
public OrderResponse createInstantOrder(User user, OrderRequest instantOrderRequest) {
//락키 생성 (상품 ID를 기반으로)
String lockKey = "order:instant:" + instantOrderRequest.saleProductId();
String lockKey = "order:instant:" + instantOrderRequest.orderDetailRequestList().get(0).saleProductId();

return distributedLockService.executeWithLock(lockKey, () -> {
// InstantOrderRequest => OrderRequest
OrderRequest orderRequest = convertInstantToOrderRequest(instantOrderRequest);
return processOrderCreation(user, orderRequest);
});
}

private OrderRequest convertInstantToOrderRequest(InstantOrderRequest instantOrderRequest) {
SaleProduct saleProduct = saleProductRepository.findById(instantOrderRequest.saleProductId())
.orElseThrow(() -> new DomainException(ErrorType.PRODUCT_NOT_FOUND));

OrderDetailRequest detailRequest = new OrderDetailRequest(
saleProduct.getId(), instantOrderRequest.quantity()
);

return new OrderRequest(
instantOrderRequest.address(),
List.of(detailRequest)
);
return distributedLockService.executeWithLock(lockKey, () -> processOrderCreation(user, instantOrderRequest));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public OrderResponse createOrder(User user, OrderRequest orderRequest) {

//회원 바로 주문 생성
@Override
public OrderResponse createInstantOrder(User user, InstantOrderRequest instantOrderRequest) {
public OrderResponse createInstantOrder(User user, OrderRequest instantOrderRequest) {
return orderCreationService.createInstantOrder(user, instantOrderRequest);
}

Expand Down Expand Up @@ -79,7 +79,7 @@ public OrderResponse createGuestOrder(OrderRequest orderRequest) {

//비회원 바로 주문 생성
@Override
public OrderResponse createGuestInstantOrder(InstantOrderRequest orderRequest) {
public OrderResponse createGuestInstantOrder(OrderRequest orderRequest) {
return orderCreationService.createInstantOrder(null, orderRequest);
}

Expand Down
Loading