fix(customer-vue): 장바구니 수정
장바구니 수정
This commit is contained in:
@@ -25,7 +25,7 @@
|
|||||||
<div class="text-body-1 mb-5" style="white-space:nowrap; overflow:hidden; text-overflow:ellipsis;">
|
<div class="text-body-1 mb-5" style="white-space:nowrap; overflow:hidden; text-overflow:ellipsis;">
|
||||||
{{ orderItem.orderItemOptionDtoList ?
|
{{ orderItem.orderItemOptionDtoList ?
|
||||||
orderItem.orderItemOptionDtoList.map(x=>x.name).join(', ')
|
orderItem.orderItemOptionDtoList.map(x=>x.name).join(', ')
|
||||||
: null}}
|
: null}}
|
||||||
</div>
|
</div>
|
||||||
<div class="text--primary">
|
<div class="text--primary">
|
||||||
합계 : <b> {{ orderItem.count * orderItem.price | currency}} 원</b>
|
합계 : <b> {{ orderItem.count * orderItem.price | currency}} 원</b>
|
||||||
|
|||||||
@@ -1,10 +1,14 @@
|
|||||||
package com.justpickup.orderservice.domain.order.dto;
|
package com.justpickup.orderservice.domain.order.dto;
|
||||||
|
|
||||||
import com.justpickup.orderservice.domain.orderItem.entity.OrderItem;
|
import com.justpickup.orderservice.domain.orderItem.entity.OrderItem;
|
||||||
|
import com.justpickup.orderservice.domain.orderItemOption.dto.OrderItemOptionDto;
|
||||||
|
import com.justpickup.orderservice.domain.orderItemOption.entity.OrderItemOption;
|
||||||
import com.justpickup.orderservice.global.client.store.GetItemResponse;
|
import com.justpickup.orderservice.global.client.store.GetItemResponse;
|
||||||
|
import com.justpickup.orderservice.global.client.store.OptionType;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@@ -33,7 +37,9 @@ public class FetchOrderDto {
|
|||||||
|
|
||||||
private String itemName;
|
private String itemName;
|
||||||
|
|
||||||
private List<GetItemResponse.ItemOptionDto> orderItemOptionDtoList;
|
private List<OrderItemOptionDto> orderItemOptionDtoList;
|
||||||
|
|
||||||
|
// private List<GetItemResponse.ItemOptionDto> orderItemOptionDtoList;
|
||||||
|
|
||||||
private Long price;
|
private Long price;
|
||||||
|
|
||||||
@@ -43,10 +49,35 @@ public class FetchOrderDto {
|
|||||||
this.id = orderItem.getId();
|
this.id = orderItem.getId();
|
||||||
this.itemId = getItemResponse.getId();
|
this.itemId = getItemResponse.getId();
|
||||||
this.itemName = getItemResponse.getName();
|
this.itemName = getItemResponse.getName();
|
||||||
this.orderItemOptionDtoList = getItemResponse.getItemOptions();
|
|
||||||
|
//getItemResponse에는 해당 item에 존재하는 itemOption들이 전부 들어있으므로, orderItem에서 orderItemOption에 있는값들을 가져와서 매칭해줌
|
||||||
|
this.orderItemOptionDtoList = orderItem.getOrderItemOptions().stream().map(orderItemOption -> {
|
||||||
|
OrderItemOptionDto orderItemOptionDto = new OrderItemOptionDto(orderItemOption.getId(), null, null);
|
||||||
|
for (GetItemResponse.ItemOptionDto responseItemOption : getItemResponse.getItemOptions()) {
|
||||||
|
|
||||||
|
if (responseItemOption.getId().equals(orderItemOption.getItemOptionId())) {
|
||||||
|
orderItemOptionDto = new OrderItemOptionDto(orderItemOption.getId(), responseItemOption.getOptionType(), responseItemOption.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return orderItemOptionDto;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
|
// this.orderItemOptionDtoList = getItemResponse.getItemOptions();
|
||||||
this.price = orderItem.getPrice();
|
this.price = orderItem.getPrice();
|
||||||
this.count = orderItem.getCount();
|
this.count = orderItem.getCount();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public static class OrderItemOptionDto{
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private OptionType optionType;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -191,20 +191,24 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FetchOrderDto fetchOrder(Long userId) {
|
public FetchOrderDto fetchOrder(Long userId) {
|
||||||
|
|
||||||
|
//장바구니
|
||||||
Order order = orderRepositoryCustom.fetchOrderBasket(userId)
|
Order order = orderRepositoryCustom.fetchOrderBasket(userId)
|
||||||
.orElseThrow(() -> new OrderException("장바구니 정보를 찾을 수 없습니다."));
|
.orElseThrow(() -> new OrderException("장바구니 정보를 찾을 수 없습니다."));
|
||||||
|
|
||||||
|
|
||||||
|
// feign 통신 -> store 정보 가져옴
|
||||||
GetStoreResponse store = storeClient.getStore(String.valueOf(order.getStoreId())).getData();
|
GetStoreResponse store = storeClient.getStore(String.valueOf(order.getStoreId())).getData();
|
||||||
|
|
||||||
|
// feign 통신 -> item, option 정보 가져옴
|
||||||
List<GetItemResponse> data = storeClient.getItemAndItemOptions(order.getOrderItems().stream()
|
List<GetItemResponse> data = storeClient.getItemAndItemOptions(order.getOrderItems().stream()
|
||||||
.map(OrderItem::getItemId)
|
.map(OrderItem::getItemId)
|
||||||
.filter(Objects::nonNull)
|
.filter(Objects::nonNull)
|
||||||
.collect(Collectors.toUnmodifiableList())
|
.collect(Collectors.toUnmodifiableList())
|
||||||
).getData();
|
).getData();
|
||||||
|
|
||||||
Map<Long, GetItemResponse> itemMap = data.stream().collect(
|
//itemAndOptionMap
|
||||||
|
Map<Long, GetItemResponse> itemOptionMap = data.stream().collect(
|
||||||
Collectors.toMap(
|
Collectors.toMap(
|
||||||
GetItemResponse::getId
|
GetItemResponse::getId
|
||||||
, getItemResponse -> getItemResponse
|
, getItemResponse -> getItemResponse
|
||||||
@@ -215,7 +219,7 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
List<FetchOrderDto.OrderItemDto> orderItemDtoList = order.getOrderItems()
|
List<FetchOrderDto.OrderItemDto> orderItemDtoList = order.getOrderItems()
|
||||||
.stream().map(orderItem ->
|
.stream().map(orderItem ->
|
||||||
new FetchOrderDto.OrderItemDto(
|
new FetchOrderDto.OrderItemDto(
|
||||||
itemMap.get(orderItem.getItemId())
|
itemOptionMap.get(orderItem.getItemId())
|
||||||
,orderItem))
|
,orderItem))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
|||||||
@@ -185,12 +185,15 @@ class OrderCustomerApiControllerTest {
|
|||||||
new FetchOrderDto(2L,2L,12000L,"저스트카페"
|
new FetchOrderDto(2L,2L,12000L,"저스트카페"
|
||||||
,List.of(
|
,List.of(
|
||||||
new FetchOrderDto.OrderItemDto(1L,1L,"카페라테",
|
new FetchOrderDto.OrderItemDto(1L,1L,"카페라테",
|
||||||
List.of(new GetItemResponse.ItemOptionDto(2L, OptionType.REQUIRED,"Hot")
|
List.of(new FetchOrderDto.OrderItemDto.OrderItemOptionDto(2L, OptionType.REQUIRED,"Hot")
|
||||||
,new GetItemResponse.ItemOptionDto(2L, OptionType.OTHER,"샷추카")),3000L,32L)
|
,new FetchOrderDto.OrderItemDto.OrderItemOptionDto(2L, OptionType.OTHER,"샷추카"))
|
||||||
|
,3000L
|
||||||
|
,32L)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
given(orderService.fetchOrder(2L)).willReturn(fetchOrderDto);
|
given(orderService.fetchOrder(2L)).willReturn(fetchOrderDto);
|
||||||
//When
|
//When
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user