feat(order): 주문 상세보기 매장이름 추가
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.justpickup.orderservice.domain.order.dto;
|
||||
|
||||
import com.justpickup.orderservice.domain.order.entity.Order;
|
||||
import com.justpickup.orderservice.domain.order.entity.OrderStatus;
|
||||
import com.justpickup.orderservice.domain.orderItem.entity.OrderItem;
|
||||
import com.justpickup.orderservice.domain.orderItemOption.entity.OrderItemOption;
|
||||
import com.justpickup.orderservice.global.client.store.OptionType;
|
||||
@@ -16,14 +17,32 @@ public class OrderDetailDto {
|
||||
private Long id;
|
||||
private LocalDateTime orderTime;
|
||||
private Long orderPrice;
|
||||
private OrderStatus orderStatus;
|
||||
private String storeName;
|
||||
private OrderDetailUser user;
|
||||
private List<OrderDetailItem> orderItems = new ArrayList<>();
|
||||
|
||||
public static OrderDetailDto of(Order order, List<OrderDetailItem> orderItems, OrderDetailUser orderDetailUser) {
|
||||
@Builder
|
||||
public OrderDetailDto(Long id, LocalDateTime orderTime, Long orderPrice, OrderStatus orderStatus,
|
||||
String storeName, OrderDetailUser user, List<OrderDetailItem> orderItems) {
|
||||
this.id = id;
|
||||
this.orderTime = orderTime;
|
||||
this.orderPrice = orderPrice;
|
||||
this.orderStatus = orderStatus;
|
||||
this.storeName = storeName;
|
||||
this.user = user;
|
||||
this.orderItems = orderItems;
|
||||
}
|
||||
|
||||
public static OrderDetailDto of(Order order, String storeName,
|
||||
List<OrderDetailItem> orderItems, OrderDetailUser orderDetailUser) {
|
||||
OrderDetailDto orderDetailDto = new OrderDetailDto();
|
||||
orderDetailDto.id = order.getId();
|
||||
orderDetailDto.orderTime = order.getOrderTime();
|
||||
orderDetailDto.orderPrice = order.getOrderPrice();
|
||||
orderDetailDto.orderStatus = order.getOrderStatus();
|
||||
|
||||
orderDetailDto.storeName = storeName;
|
||||
|
||||
orderDetailDto.user = orderDetailUser;
|
||||
orderDetailDto.orderItems = orderItems;
|
||||
@@ -53,6 +72,16 @@ public class OrderDetailDto {
|
||||
private String name;
|
||||
private List<OrderDetailItemOption> options = new ArrayList<>();
|
||||
|
||||
@Builder
|
||||
public OrderDetailItem(Long id, Long itemId, long totalPrice, long count, String name, List<OrderDetailItemOption> options) {
|
||||
this.id = id;
|
||||
this.itemId = itemId;
|
||||
this.totalPrice = totalPrice;
|
||||
this.count = count;
|
||||
this.name = name;
|
||||
this.options = options;
|
||||
}
|
||||
|
||||
public static OrderDetailItem of(OrderItem orderItem, String name, List<OrderDetailItemOption> orderDetailItemOption) {
|
||||
OrderDetailItem orderDetailItem = new OrderDetailItem();
|
||||
orderDetailItem.id = orderItem.getId();
|
||||
@@ -73,6 +102,14 @@ public class OrderDetailDto {
|
||||
private String name;
|
||||
private OptionType optionType;
|
||||
|
||||
@Builder
|
||||
public OrderDetailItemOption(Long id, Long itemOptionId, String name, OptionType optionType) {
|
||||
this.id = id;
|
||||
this.itemOptionId = itemOptionId;
|
||||
this.name = name;
|
||||
this.optionType = optionType;
|
||||
}
|
||||
|
||||
public static OrderDetailItemOption of(OrderItemOption orderItemOption, String name, OptionType optionType) {
|
||||
OrderDetailItemOption orderDetailItemOption = new OrderDetailItemOption();
|
||||
orderDetailItemOption.id = orderItemOption.getId();
|
||||
|
||||
@@ -105,4 +105,8 @@ public class Order extends BaseEntity {
|
||||
public void fail() {
|
||||
this.orderStatus = OrderStatus.FAILED;
|
||||
}
|
||||
|
||||
public void changOrderTime(LocalDateTime orderTime) {
|
||||
this.orderTime = orderTime;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,6 +77,7 @@ public class OrderRepositoryCustom {
|
||||
.leftJoin(order.transaction)
|
||||
.where(
|
||||
order.orderTime.between(search.getStartDateTime(), search.getEndDateTime()),
|
||||
order.orderStatus.ne(OrderStatus.PENDING),
|
||||
order.storeId.eq(storeId)
|
||||
)
|
||||
.fetchOne();
|
||||
|
||||
@@ -243,8 +243,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
|
||||
List<OrderItem> orderItemsWithOptions = orderItemRepositoryCustom.getOrderItemsWithOptions(order.getId());
|
||||
|
||||
// 고객 정보 가져오기
|
||||
GetCustomerResponse customerInfo = userClient.getCustomerById(order.getUserId()).getData();
|
||||
|
||||
|
||||
Set<Long> itemIds = new HashSet<>();
|
||||
|
||||
@@ -286,6 +285,9 @@ public class OrderServiceImpl implements OrderService {
|
||||
})
|
||||
.collect(toList());
|
||||
|
||||
// 고객 정보 가져오기
|
||||
GetCustomerResponse customerInfo = userClient.getCustomerById(order.getUserId()).getData();
|
||||
|
||||
// 주문한 사용자 정보 생성
|
||||
OrderDetailUser orderDetailUser = OrderDetailUser.builder()
|
||||
.id(customerInfo.getUserId())
|
||||
@@ -293,7 +295,10 @@ public class OrderServiceImpl implements OrderService {
|
||||
.name(customerInfo.getUserName())
|
||||
.build();
|
||||
|
||||
return OrderDetailDto.of(order, orderDetailItems, orderDetailUser);
|
||||
// 매장 정보 가져오기
|
||||
GetStoreResponse storeInfo = storeClient.getStore(String.valueOf(order.getStoreId())).getData();
|
||||
|
||||
return OrderDetailDto.of(order, storeInfo.getName(), orderDetailItems, orderDetailUser);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ public class OrderController {
|
||||
public ResponseEntity<Result> patchOrder(@PathVariable("orderId") Long orderId,
|
||||
@RequestBody PatchOrderRequest patchOrderRequest) {
|
||||
OrderStatus orderStatus = patchOrderRequest.getOrderStatus();
|
||||
if (orderStatus == OrderStatus.PENDING && orderStatus == OrderStatus.FAILED) {
|
||||
if (orderStatus == OrderStatus.PENDING || orderStatus == OrderStatus.FAILED) {
|
||||
throw new OrderException(orderStatus.getMessage() + "는 변경 불가능합니다.");
|
||||
}
|
||||
|
||||
@@ -48,22 +48,25 @@ public class OrderController {
|
||||
public ResponseEntity<Result> getOrderDetail(@PathVariable Long orderId) {
|
||||
|
||||
OrderDetailDto orderDetail = orderService.findOrderDetail(orderId);
|
||||
|
||||
return ResponseEntity.ok(Result.createSuccessResult(new OrderDetailResponse(orderDetail)));
|
||||
}
|
||||
|
||||
@Data @NoArgsConstructor @AllArgsConstructor
|
||||
static class OrderDetailResponse {
|
||||
private Long id;
|
||||
private OrderStatus orderStatus;
|
||||
private String orderTime;
|
||||
private Long orderPrice;
|
||||
private String storeName;
|
||||
private OrderDetailUserResponse user;
|
||||
private List<OrderDetailItemResponse> orderItems = new ArrayList<>();
|
||||
|
||||
public OrderDetailResponse(OrderDetailDto dto) {
|
||||
this.id = dto.getId();
|
||||
this.orderTime = dto.getOrderTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
||||
this.orderStatus = dto.getOrderStatus();
|
||||
this.orderTime = dto.getOrderTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
|
||||
this.orderPrice = dto.getOrderPrice();
|
||||
this.storeName = dto.getStoreName();
|
||||
this.user = new OrderDetailUserResponse(dto.getUser());
|
||||
this.orderItems = dto.getOrderItems().stream()
|
||||
.map(OrderDetailItemResponse::new)
|
||||
|
||||
Reference in New Issue
Block a user