diff --git a/order-service/src/main/java/com/justpickup/orderservice/domain/order/repository/OrderRepositoryCustom.java b/order-service/src/main/java/com/justpickup/orderservice/domain/order/repository/OrderRepositoryCustom.java index aa7e51a..e74f50d 100644 --- a/order-service/src/main/java/com/justpickup/orderservice/domain/order/repository/OrderRepositoryCustom.java +++ b/order-service/src/main/java/com/justpickup/orderservice/domain/order/repository/OrderRepositoryCustom.java @@ -44,6 +44,7 @@ public class OrderRepositoryCustom { List orders = queryFactory .selectFrom(order) + .leftJoin(order.transaction).fetchJoin() .where( orderIdLt(condition.getLastOrderId()), order.orderTime.between(start, end), diff --git a/order-service/src/main/java/com/justpickup/orderservice/domain/order/service/OrderServiceImpl.java b/order-service/src/main/java/com/justpickup/orderservice/domain/order/service/OrderServiceImpl.java index 79a92a8..b9c0a04 100644 --- a/order-service/src/main/java/com/justpickup/orderservice/domain/order/service/OrderServiceImpl.java +++ b/order-service/src/main/java/com/justpickup/orderservice/domain/order/service/OrderServiceImpl.java @@ -9,12 +9,11 @@ import com.justpickup.orderservice.domain.order.repository.OrderRepositoryCustom import com.justpickup.orderservice.domain.orderItem.dto.OrderItemDto; import com.justpickup.orderservice.domain.orderItem.entity.OrderItem; import com.justpickup.orderservice.domain.orderItemOption.entity.OrderItemOption; -import com.justpickup.orderservice.global.client.store.GetItemResponse; +import com.justpickup.orderservice.global.client.store.GetItemsResponse; import com.justpickup.orderservice.global.client.store.StoreByUserIdResponse; import com.justpickup.orderservice.global.client.store.StoreClient; import com.justpickup.orderservice.global.client.user.GetCustomerResponse; import com.justpickup.orderservice.global.client.user.UserClient; -import com.justpickup.orderservice.global.dto.Result; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.data.domain.Page; @@ -25,10 +24,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StopWatch; -import java.util.List; -import java.util.Optional; +import java.util.*; import static java.util.stream.Collectors.toList; +import static java.util.stream.Collectors.toMap; @Service @RequiredArgsConstructor @@ -44,29 +43,58 @@ public class OrderServiceImpl implements OrderService { @Override public OrderMainDto findOrderMain(OrderSearchCondition condition, Long userId) { - - Result store = storeClient.getStoreByUserId(userId); + // storeId 가져오기 + StoreByUserIdResponse storeResponse = storeClient.getStoreByUserId(userId).getData(); // 주문 가져오기 - OrderMainResult orderMainResult = orderRepositoryCustom.findOrderMain(condition, store.getData().getId()); + OrderMainResult orderMainResult = orderRepositoryCustom.findOrderMain(condition, storeResponse.getId()); StopWatch stopWatch = new StopWatch(); stopWatch.start(); int count = 0; - // 사용자명 및 아이템 이름 가져오기 + // 사용자 고유번호 및 아이템 고유번호 필터링 + Set userIds = new HashSet<>(); + Set itemIds = new HashSet<>(); + OrderMainDto returnDto = OrderMainDto.of(orderMainResult.getOrders(), orderMainResult.isHasNext()); - for (OrderMainDto._Order order : returnDto.getOrders()) { + List orders = returnDto.getOrders(); + + // userId 및 itemId Set에 추가 + for (OrderMainDto._Order order : orders) { + userIds.add(order.getUserId()); for (OrderMainDto._OrderItem orderItem : order.getOrderItems()) { - count += 1; - Result item = storeClient.getItem(orderItem.getItemId()); - orderItem.changeItemName(item.getData().getName()); + itemIds.add(orderItem.getItemId()); + } + } + + // item name 가져오기 + count += 1; + List itemResponses = storeClient.getItems(itemIds).getData(); + Map itemNameMap = itemResponses.stream() + .collect( + toMap(GetItemsResponse::getId, GetItemsResponse::getName) + ); + + // user name 가져오기 + count += 1; + List userResponses = userClient.getCustomers(userIds).getData(); + Map userNameMap = userResponses.stream() + .collect( + toMap(GetCustomerResponse::getUserId, GetCustomerResponse::getUserName) + ); + + // 해당 ID에 맞게 이름 설정해주기 + for (OrderMainDto._Order order : orders) { + String userName = userNameMap.get(order.getUserId()); + order.changeUserName(userName); + for (OrderMainDto._OrderItem orderItem : order.getOrderItems()) { + String itemName = itemNameMap.get(orderItem.getItemId()); + orderItem.changeItemName(itemName); } - count += 1; - GetCustomerResponse customerResponse = userClient.getCustomerById(order.getUserId()).getData(); - order.changeUserName(customerResponse.getUserName()); } stopWatch.stop(); - log.info("Feign count = {}, [StopWatch] {}", count, stopWatch.prettyPrint()); + log.info("order count = {}, Feign count = {}, [StopWatch] {}", + returnDto.getOrders().size(), count, stopWatch.prettyPrint()); return returnDto; } diff --git a/order-service/src/main/java/com/justpickup/orderservice/global/SqlCommandLineRunner.java b/order-service/src/main/java/com/justpickup/orderservice/global/SqlCommandLineRunner.java index 6c13fbf..dda591b 100644 --- a/order-service/src/main/java/com/justpickup/orderservice/global/SqlCommandLineRunner.java +++ b/order-service/src/main/java/com/justpickup/orderservice/global/SqlCommandLineRunner.java @@ -22,7 +22,7 @@ public class SqlCommandLineRunner implements CommandLineRunner { private final OrderRepository orderRepository; private final ObjectMapper objectMapper; - String storeJson = "[{\"id\":1,\"name\":\"커피온리 마포역점\",\"items\":[{\"id\":32,\"name\":\"아메리카노\",\"price\":1500,\"itemOptions\":[{\"id\":33,\"name\":\"ICE\"},{\"id\":35,\"name\":\"HOT\"}]},{\"id\":32,\"name\":\"아메리카노\",\"price\":1500,\"itemOptions\":[{\"id\":33,\"name\":\"ICE\"},{\"id\":35,\"name\":\"HOT\"}]},{\"id\":37,\"name\":\"카페라떼\",\"price\":2000,\"itemOptions\":[{\"id\":33,\"name\":\"ICE\"},{\"id\":35,\"name\":\"HOT\"}]},{\"id\":37,\"name\":\"카페라떼\",\"price\":2000,\"itemOptions\":[{\"id\":33,\"name\":\"ICE\"},{\"id\":35,\"name\":\"HOT\"}]},{\"id\":38,\"name\":\"카페모카\",\"price\":3900,\"itemOptions\":[{\"id\":33,\"name\":\"ICE\"},{\"id\":35,\"name\":\"HOT\"}]},{\"id\":38,\"name\":\"카페모카\",\"price\":3900,\"itemOptions\":[{\"id\":33,\"name\":\"ICE\"},{\"id\":35,\"name\":\"HOT\"}]},{\"id\":39,\"name\":\"콜드브루\",\"price\":2500,\"itemOptions\":[{\"id\":33,\"name\":\"ICE\"}]},{\"id\":39,\"name\":\"콜드브루\",\"price\":2500,\"itemOptions\":[{\"id\":33,\"name\":\"ICE\"}]},{\"id\":40,\"name\":\"녹차라떼\",\"price\":3000,\"itemOptions\":[{\"id\":33,\"name\":\"ICE\"},{\"id\":35,\"name\":\"HOT\"}]},{\"id\":40,\"name\":\"녹차라떼\",\"price\":3000,\"itemOptions\":[{\"id\":33,\"name\":\"ICE\"},{\"id\":35,\"name\":\"HOT\"}]},{\"id\":34,\"name\":\"딸기라떼\",\"price\":3000,\"itemOptions\":[{\"id\":33,\"name\":\"ICE\"},{\"id\":35,\"name\":\"HOT\"}]},{\"id\":34,\"name\":\"딸기라떼\",\"price\":3000,\"itemOptions\":[{\"id\":33,\"name\":\"ICE\"},{\"id\":35,\"name\":\"HOT\"}]},{\"id\":41,\"name\":\"녹차\",\"price\":3000,\"itemOptions\":[{\"id\":35,\"name\":\"HOT\"}]},{\"id\":41,\"name\":\"녹차\",\"price\":3000,\"itemOptions\":[{\"id\":35,\"name\":\"HOT\"}]},{\"id\":36,\"name\":\"히비스커스 티\",\"price\":3000,\"itemOptions\":[{\"id\":35,\"name\":\"HOT\"}]},{\"id\":36,\"name\":\"히비스커스 티\",\"price\":3000,\"itemOptions\":[{\"id\":35,\"name\":\"HOT\"}]}]},{\"id\":2,\"name\":\"만랩커피 마포점\",\"items\":[{\"id\":45,\"name\":\"아메리카노\",\"price\":1500,\"itemOptions\":[{\"id\":46,\"name\":\"ICE\"},{\"id\":48,\"name\":\"HOT\"}]},{\"id\":45,\"name\":\"아메리카노\",\"price\":1500,\"itemOptions\":[{\"id\":46,\"name\":\"ICE\"},{\"id\":48,\"name\":\"HOT\"}]},{\"id\":50,\"name\":\"카페라떼\",\"price\":2000,\"itemOptions\":[{\"id\":46,\"name\":\"ICE\"},{\"id\":48,\"name\":\"HOT\"}]},{\"id\":50,\"name\":\"카페라떼\",\"price\":2000,\"itemOptions\":[{\"id\":46,\"name\":\"ICE\"},{\"id\":48,\"name\":\"HOT\"}]},{\"id\":51,\"name\":\"카페모카\",\"price\":3900,\"itemOptions\":[{\"id\":46,\"name\":\"ICE\"},{\"id\":48,\"name\":\"HOT\"}]},{\"id\":51,\"name\":\"카페모카\",\"price\":3900,\"itemOptions\":[{\"id\":46,\"name\":\"ICE\"},{\"id\":48,\"name\":\"HOT\"}]},{\"id\":52,\"name\":\"콜드브루\",\"price\":2500,\"itemOptions\":[{\"id\":46,\"name\":\"ICE\"}]},{\"id\":52,\"name\":\"콜드브루\",\"price\":2500,\"itemOptions\":[{\"id\":46,\"name\":\"ICE\"}]},{\"id\":53,\"name\":\"녹차라떼\",\"price\":3000,\"itemOptions\":[{\"id\":46,\"name\":\"ICE\"},{\"id\":48,\"name\":\"HOT\"}]},{\"id\":53,\"name\":\"녹차라떼\",\"price\":3000,\"itemOptions\":[{\"id\":46,\"name\":\"ICE\"},{\"id\":48,\"name\":\"HOT\"}]},{\"id\":47,\"name\":\"딸기라떼\",\"price\":3000,\"itemOptions\":[{\"id\":46,\"name\":\"ICE\"},{\"id\":48,\"name\":\"HOT\"}]},{\"id\":47,\"name\":\"딸기라떼\",\"price\":3000,\"itemOptions\":[{\"id\":46,\"name\":\"ICE\"},{\"id\":48,\"name\":\"HOT\"}]},{\"id\":54,\"name\":\"녹차\",\"price\":3000,\"itemOptions\":[{\"id\":48,\"name\":\"HOT\"}]},{\"id\":54,\"name\":\"녹차\",\"price\":3000,\"itemOptions\":[{\"id\":48,\"name\":\"HOT\"}]},{\"id\":49,\"name\":\"히비스커스 티\",\"price\":3000,\"itemOptions\":[{\"id\":48,\"name\":\"HOT\"}]},{\"id\":49,\"name\":\"히비스커스 티\",\"price\":3000,\"itemOptions\":[{\"id\":48,\"name\":\"HOT\"}]}]},{\"id\":3,\"name\":\"이디야커피 마포오벨리스크점\",\"items\":[{\"id\":58,\"name\":\"아메리카노\",\"price\":1500,\"itemOptions\":[{\"id\":59,\"name\":\"ICE\"},{\"id\":61,\"name\":\"HOT\"}]},{\"id\":58,\"name\":\"아메리카노\",\"price\":1500,\"itemOptions\":[{\"id\":59,\"name\":\"ICE\"},{\"id\":61,\"name\":\"HOT\"}]},{\"id\":63,\"name\":\"카페라떼\",\"price\":2000,\"itemOptions\":[{\"id\":59,\"name\":\"ICE\"},{\"id\":61,\"name\":\"HOT\"}]},{\"id\":63,\"name\":\"카페라떼\",\"price\":2000,\"itemOptions\":[{\"id\":59,\"name\":\"ICE\"},{\"id\":61,\"name\":\"HOT\"}]},{\"id\":64,\"name\":\"카페모카\",\"price\":3900,\"itemOptions\":[{\"id\":59,\"name\":\"ICE\"},{\"id\":61,\"name\":\"HOT\"}]},{\"id\":64,\"name\":\"카페모카\",\"price\":3900,\"itemOptions\":[{\"id\":59,\"name\":\"ICE\"},{\"id\":61,\"name\":\"HOT\"}]},{\"id\":65,\"name\":\"콜드브루\",\"price\":2500,\"itemOptions\":[{\"id\":59,\"name\":\"ICE\"}]},{\"id\":65,\"name\":\"콜드브루\",\"price\":2500,\"itemOptions\":[{\"id\":59,\"name\":\"ICE\"}]},{\"id\":66,\"name\":\"녹차라떼\",\"price\":3000,\"itemOptions\":[{\"id\":59,\"name\":\"ICE\"},{\"id\":61,\"name\":\"HOT\"}]},{\"id\":66,\"name\":\"녹차라떼\",\"price\":3000,\"itemOptions\":[{\"id\":59,\"name\":\"ICE\"},{\"id\":61,\"name\":\"HOT\"}]},{\"id\":60,\"name\":\"딸기라떼\",\"price\":3000,\"itemOptions\":[{\"id\":59,\"name\":\"ICE\"},{\"id\":61,\"name\":\"HOT\"}]},{\"id\":60,\"name\":\"딸기라떼\",\"price\":3000,\"itemOptions\":[{\"id\":59,\"name\":\"ICE\"},{\"id\":61,\"name\":\"HOT\"}]},{\"id\":67,\"name\":\"녹차\",\"price\":3000,\"itemOptions\":[{\"id\":61,\"name\":\"HOT\"}]},{\"id\":67,\"name\":\"녹차\",\"price\":3000,\"itemOptions\":[{\"id\":61,\"name\":\"HOT\"}]},{\"id\":62,\"name\":\"히비스커스 티\",\"price\":3000,\"itemOptions\":[{\"id\":61,\"name\":\"HOT\"}]},{\"id\":62,\"name\":\"히비스커스 티\",\"price\":3000,\"itemOptions\":[{\"id\":61,\"name\":\"HOT\"}]}]},{\"id\":4,\"name\":\"이디야커피 대림역점\",\"items\":[{\"id\":71,\"name\":\"아메리카노\",\"price\":1500,\"itemOptions\":[{\"id\":72,\"name\":\"ICE\"},{\"id\":74,\"name\":\"HOT\"}]},{\"id\":71,\"name\":\"아메리카노\",\"price\":1500,\"itemOptions\":[{\"id\":72,\"name\":\"ICE\"},{\"id\":74,\"name\":\"HOT\"}]},{\"id\":76,\"name\":\"카페라떼\",\"price\":2000,\"itemOptions\":[{\"id\":72,\"name\":\"ICE\"},{\"id\":74,\"name\":\"HOT\"}]},{\"id\":76,\"name\":\"카페라떼\",\"price\":2000,\"itemOptions\":[{\"id\":72,\"name\":\"ICE\"},{\"id\":74,\"name\":\"HOT\"}]},{\"id\":77,\"name\":\"카페모카\",\"price\":3900,\"itemOptions\":[{\"id\":72,\"name\":\"ICE\"},{\"id\":74,\"name\":\"HOT\"}]},{\"id\":77,\"name\":\"카페모카\",\"price\":3900,\"itemOptions\":[{\"id\":72,\"name\":\"ICE\"},{\"id\":74,\"name\":\"HOT\"}]},{\"id\":78,\"name\":\"콜드브루\",\"price\":2500,\"itemOptions\":[{\"id\":72,\"name\":\"ICE\"}]},{\"id\":78,\"name\":\"콜드브루\",\"price\":2500,\"itemOptions\":[{\"id\":72,\"name\":\"ICE\"}]},{\"id\":79,\"name\":\"녹차라떼\",\"price\":3000,\"itemOptions\":[{\"id\":72,\"name\":\"ICE\"},{\"id\":74,\"name\":\"HOT\"}]},{\"id\":79,\"name\":\"녹차라떼\",\"price\":3000,\"itemOptions\":[{\"id\":72,\"name\":\"ICE\"},{\"id\":74,\"name\":\"HOT\"}]},{\"id\":73,\"name\":\"딸기라떼\",\"price\":3000,\"itemOptions\":[{\"id\":72,\"name\":\"ICE\"},{\"id\":74,\"name\":\"HOT\"}]},{\"id\":73,\"name\":\"딸기라떼\",\"price\":3000,\"itemOptions\":[{\"id\":72,\"name\":\"ICE\"},{\"id\":74,\"name\":\"HOT\"}]},{\"id\":80,\"name\":\"녹차\",\"price\":3000,\"itemOptions\":[{\"id\":74,\"name\":\"HOT\"}]},{\"id\":80,\"name\":\"녹차\",\"price\":3000,\"itemOptions\":[{\"id\":74,\"name\":\"HOT\"}]},{\"id\":75,\"name\":\"히비스커스 티\",\"price\":3000,\"itemOptions\":[{\"id\":74,\"name\":\"HOT\"}]},{\"id\":75,\"name\":\"히비스커스 티\",\"price\":3000,\"itemOptions\":[{\"id\":74,\"name\":\"HOT\"}]}]}]"; + String storeJson = "[{\"id\":1,\"name\":\"커피온리 마포역점\",\"items\":[{\"id\":40,\"name\":\"아메리카노\",\"price\":1500,\"itemOptions\":[{\"id\":41,\"name\":\"ICE\"},{\"id\":43,\"name\":\"HOT\"}]},{\"id\":40,\"name\":\"아메리카노\",\"price\":1500,\"itemOptions\":[{\"id\":41,\"name\":\"ICE\"},{\"id\":43,\"name\":\"HOT\"}]},{\"id\":45,\"name\":\"카페라떼\",\"price\":2000,\"itemOptions\":[{\"id\":41,\"name\":\"ICE\"},{\"id\":43,\"name\":\"HOT\"}]},{\"id\":45,\"name\":\"카페라떼\",\"price\":2000,\"itemOptions\":[{\"id\":41,\"name\":\"ICE\"},{\"id\":43,\"name\":\"HOT\"}]},{\"id\":46,\"name\":\"카페모카\",\"price\":3900,\"itemOptions\":[{\"id\":41,\"name\":\"ICE\"},{\"id\":43,\"name\":\"HOT\"}]},{\"id\":46,\"name\":\"카페모카\",\"price\":3900,\"itemOptions\":[{\"id\":41,\"name\":\"ICE\"},{\"id\":43,\"name\":\"HOT\"}]},{\"id\":47,\"name\":\"콜드브루\",\"price\":2500,\"itemOptions\":[{\"id\":41,\"name\":\"ICE\"}]},{\"id\":47,\"name\":\"콜드브루\",\"price\":2500,\"itemOptions\":[{\"id\":41,\"name\":\"ICE\"}]},{\"id\":48,\"name\":\"녹차라떼\",\"price\":3000,\"itemOptions\":[{\"id\":41,\"name\":\"ICE\"},{\"id\":43,\"name\":\"HOT\"}]},{\"id\":48,\"name\":\"녹차라떼\",\"price\":3000,\"itemOptions\":[{\"id\":41,\"name\":\"ICE\"},{\"id\":43,\"name\":\"HOT\"}]},{\"id\":42,\"name\":\"딸기라떼\",\"price\":3000,\"itemOptions\":[{\"id\":41,\"name\":\"ICE\"},{\"id\":43,\"name\":\"HOT\"}]},{\"id\":42,\"name\":\"딸기라떼\",\"price\":3000,\"itemOptions\":[{\"id\":41,\"name\":\"ICE\"},{\"id\":43,\"name\":\"HOT\"}]},{\"id\":49,\"name\":\"녹차\",\"price\":3000,\"itemOptions\":[{\"id\":43,\"name\":\"HOT\"}]},{\"id\":49,\"name\":\"녹차\",\"price\":3000,\"itemOptions\":[{\"id\":43,\"name\":\"HOT\"}]},{\"id\":44,\"name\":\"히비스커스 티\",\"price\":3000,\"itemOptions\":[{\"id\":43,\"name\":\"HOT\"}]},{\"id\":44,\"name\":\"히비스커스 티\",\"price\":3000,\"itemOptions\":[{\"id\":43,\"name\":\"HOT\"}]}]},{\"id\":3,\"name\":\"만랩커피 마포점\",\"items\":[{\"id\":53,\"name\":\"아메리카노\",\"price\":1500,\"itemOptions\":[{\"id\":54,\"name\":\"ICE\"},{\"id\":56,\"name\":\"HOT\"}]},{\"id\":53,\"name\":\"아메리카노\",\"price\":1500,\"itemOptions\":[{\"id\":54,\"name\":\"ICE\"},{\"id\":56,\"name\":\"HOT\"}]},{\"id\":58,\"name\":\"카페라떼\",\"price\":2000,\"itemOptions\":[{\"id\":54,\"name\":\"ICE\"},{\"id\":56,\"name\":\"HOT\"}]},{\"id\":58,\"name\":\"카페라떼\",\"price\":2000,\"itemOptions\":[{\"id\":54,\"name\":\"ICE\"},{\"id\":56,\"name\":\"HOT\"}]},{\"id\":59,\"name\":\"카페모카\",\"price\":3900,\"itemOptions\":[{\"id\":54,\"name\":\"ICE\"},{\"id\":56,\"name\":\"HOT\"}]},{\"id\":59,\"name\":\"카페모카\",\"price\":3900,\"itemOptions\":[{\"id\":54,\"name\":\"ICE\"},{\"id\":56,\"name\":\"HOT\"}]},{\"id\":60,\"name\":\"콜드브루\",\"price\":2500,\"itemOptions\":[{\"id\":54,\"name\":\"ICE\"}]},{\"id\":60,\"name\":\"콜드브루\",\"price\":2500,\"itemOptions\":[{\"id\":54,\"name\":\"ICE\"}]},{\"id\":61,\"name\":\"녹차라떼\",\"price\":3000,\"itemOptions\":[{\"id\":54,\"name\":\"ICE\"},{\"id\":56,\"name\":\"HOT\"}]},{\"id\":61,\"name\":\"녹차라떼\",\"price\":3000,\"itemOptions\":[{\"id\":54,\"name\":\"ICE\"},{\"id\":56,\"name\":\"HOT\"}]},{\"id\":55,\"name\":\"딸기라떼\",\"price\":3000,\"itemOptions\":[{\"id\":54,\"name\":\"ICE\"},{\"id\":56,\"name\":\"HOT\"}]},{\"id\":55,\"name\":\"딸기라떼\",\"price\":3000,\"itemOptions\":[{\"id\":54,\"name\":\"ICE\"},{\"id\":56,\"name\":\"HOT\"}]},{\"id\":62,\"name\":\"녹차\",\"price\":3000,\"itemOptions\":[{\"id\":56,\"name\":\"HOT\"}]},{\"id\":62,\"name\":\"녹차\",\"price\":3000,\"itemOptions\":[{\"id\":56,\"name\":\"HOT\"}]},{\"id\":57,\"name\":\"히비스커스 티\",\"price\":3000,\"itemOptions\":[{\"id\":56,\"name\":\"HOT\"}]},{\"id\":57,\"name\":\"히비스커스 티\",\"price\":3000,\"itemOptions\":[{\"id\":56,\"name\":\"HOT\"}]}]},{\"id\":5,\"name\":\"이디야커피 마포오벨리스크점\",\"items\":[{\"id\":66,\"name\":\"아메리카노\",\"price\":1500,\"itemOptions\":[{\"id\":67,\"name\":\"ICE\"},{\"id\":69,\"name\":\"HOT\"}]},{\"id\":66,\"name\":\"아메리카노\",\"price\":1500,\"itemOptions\":[{\"id\":67,\"name\":\"ICE\"},{\"id\":69,\"name\":\"HOT\"}]},{\"id\":71,\"name\":\"카페라떼\",\"price\":2000,\"itemOptions\":[{\"id\":67,\"name\":\"ICE\"},{\"id\":69,\"name\":\"HOT\"}]},{\"id\":71,\"name\":\"카페라떼\",\"price\":2000,\"itemOptions\":[{\"id\":67,\"name\":\"ICE\"},{\"id\":69,\"name\":\"HOT\"}]},{\"id\":72,\"name\":\"카페모카\",\"price\":3900,\"itemOptions\":[{\"id\":67,\"name\":\"ICE\"},{\"id\":69,\"name\":\"HOT\"}]},{\"id\":72,\"name\":\"카페모카\",\"price\":3900,\"itemOptions\":[{\"id\":67,\"name\":\"ICE\"},{\"id\":69,\"name\":\"HOT\"}]},{\"id\":73,\"name\":\"콜드브루\",\"price\":2500,\"itemOptions\":[{\"id\":67,\"name\":\"ICE\"}]},{\"id\":73,\"name\":\"콜드브루\",\"price\":2500,\"itemOptions\":[{\"id\":67,\"name\":\"ICE\"}]},{\"id\":74,\"name\":\"녹차라떼\",\"price\":3000,\"itemOptions\":[{\"id\":67,\"name\":\"ICE\"},{\"id\":69,\"name\":\"HOT\"}]},{\"id\":74,\"name\":\"녹차라떼\",\"price\":3000,\"itemOptions\":[{\"id\":67,\"name\":\"ICE\"},{\"id\":69,\"name\":\"HOT\"}]},{\"id\":68,\"name\":\"딸기라떼\",\"price\":3000,\"itemOptions\":[{\"id\":67,\"name\":\"ICE\"},{\"id\":69,\"name\":\"HOT\"}]},{\"id\":68,\"name\":\"딸기라떼\",\"price\":3000,\"itemOptions\":[{\"id\":67,\"name\":\"ICE\"},{\"id\":69,\"name\":\"HOT\"}]},{\"id\":75,\"name\":\"녹차\",\"price\":3000,\"itemOptions\":[{\"id\":69,\"name\":\"HOT\"}]},{\"id\":75,\"name\":\"녹차\",\"price\":3000,\"itemOptions\":[{\"id\":69,\"name\":\"HOT\"}]},{\"id\":70,\"name\":\"히비스커스 티\",\"price\":3000,\"itemOptions\":[{\"id\":69,\"name\":\"HOT\"}]},{\"id\":70,\"name\":\"히비스커스 티\",\"price\":3000,\"itemOptions\":[{\"id\":69,\"name\":\"HOT\"}]}]},{\"id\":7,\"name\":\"이디야커피 대림역점\",\"items\":[{\"id\":79,\"name\":\"아메리카노\",\"price\":1500,\"itemOptions\":[{\"id\":80,\"name\":\"ICE\"},{\"id\":82,\"name\":\"HOT\"}]},{\"id\":79,\"name\":\"아메리카노\",\"price\":1500,\"itemOptions\":[{\"id\":80,\"name\":\"ICE\"},{\"id\":82,\"name\":\"HOT\"}]},{\"id\":84,\"name\":\"카페라떼\",\"price\":2000,\"itemOptions\":[{\"id\":80,\"name\":\"ICE\"},{\"id\":82,\"name\":\"HOT\"}]},{\"id\":84,\"name\":\"카페라떼\",\"price\":2000,\"itemOptions\":[{\"id\":80,\"name\":\"ICE\"},{\"id\":82,\"name\":\"HOT\"}]},{\"id\":85,\"name\":\"카페모카\",\"price\":3900,\"itemOptions\":[{\"id\":80,\"name\":\"ICE\"},{\"id\":82,\"name\":\"HOT\"}]},{\"id\":85,\"name\":\"카페모카\",\"price\":3900,\"itemOptions\":[{\"id\":80,\"name\":\"ICE\"},{\"id\":82,\"name\":\"HOT\"}]},{\"id\":86,\"name\":\"콜드브루\",\"price\":2500,\"itemOptions\":[{\"id\":80,\"name\":\"ICE\"}]},{\"id\":86,\"name\":\"콜드브루\",\"price\":2500,\"itemOptions\":[{\"id\":80,\"name\":\"ICE\"}]},{\"id\":87,\"name\":\"녹차라떼\",\"price\":3000,\"itemOptions\":[{\"id\":80,\"name\":\"ICE\"},{\"id\":82,\"name\":\"HOT\"}]},{\"id\":87,\"name\":\"녹차라떼\",\"price\":3000,\"itemOptions\":[{\"id\":80,\"name\":\"ICE\"},{\"id\":82,\"name\":\"HOT\"}]},{\"id\":81,\"name\":\"딸기라떼\",\"price\":3000,\"itemOptions\":[{\"id\":80,\"name\":\"ICE\"},{\"id\":82,\"name\":\"HOT\"}]},{\"id\":81,\"name\":\"딸기라떼\",\"price\":3000,\"itemOptions\":[{\"id\":80,\"name\":\"ICE\"},{\"id\":82,\"name\":\"HOT\"}]},{\"id\":88,\"name\":\"녹차\",\"price\":3000,\"itemOptions\":[{\"id\":82,\"name\":\"HOT\"}]},{\"id\":88,\"name\":\"녹차\",\"price\":3000,\"itemOptions\":[{\"id\":82,\"name\":\"HOT\"}]},{\"id\":83,\"name\":\"히비스커스 티\",\"price\":3000,\"itemOptions\":[{\"id\":82,\"name\":\"HOT\"}]},{\"id\":83,\"name\":\"히비스커스 티\",\"price\":3000,\"itemOptions\":[{\"id\":82,\"name\":\"HOT\"}]}]}]"; @Data static class _Store { diff --git a/order-service/src/main/java/com/justpickup/orderservice/global/client/store/GetItemsResponse.java b/order-service/src/main/java/com/justpickup/orderservice/global/client/store/GetItemsResponse.java new file mode 100644 index 0000000..1702a17 --- /dev/null +++ b/order-service/src/main/java/com/justpickup/orderservice/global/client/store/GetItemsResponse.java @@ -0,0 +1,9 @@ +package com.justpickup.orderservice.global.client.store; + +import lombok.Data; + +@Data +public class GetItemsResponse { + private Long id; + private String name; +} diff --git a/order-service/src/main/java/com/justpickup/orderservice/global/client/store/StoreClient.java b/order-service/src/main/java/com/justpickup/orderservice/global/client/store/StoreClient.java index 6e60243..4fd568f 100644 --- a/order-service/src/main/java/com/justpickup/orderservice/global/client/store/StoreClient.java +++ b/order-service/src/main/java/com/justpickup/orderservice/global/client/store/StoreClient.java @@ -6,12 +6,17 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestHeader; +import java.util.List; + @FeignClient("STORE-SERVICE") public interface StoreClient { @GetMapping("/item/{itemId}") Result getItem(@PathVariable("itemId") Long itemId); + @GetMapping("/items/{itemIds}") + Result> getItems(@PathVariable("itemIds") Iterable itemIds); + @GetMapping("/api/owner/store/") Result getStoreByUserId(@RequestHeader(value="user-id") Long userId); diff --git a/order-service/src/main/java/com/justpickup/orderservice/global/client/user/UserClient.java b/order-service/src/main/java/com/justpickup/orderservice/global/client/user/UserClient.java index 4a212d2..350df7f 100644 --- a/order-service/src/main/java/com/justpickup/orderservice/global/client/user/UserClient.java +++ b/order-service/src/main/java/com/justpickup/orderservice/global/client/user/UserClient.java @@ -5,9 +5,14 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import java.util.List; + @FeignClient("USER-SERVICE") public interface UserClient { @GetMapping("/customer/{userId}") Result getCustomerById(@PathVariable("userId") Long userId); + + @GetMapping("/customers/{userIds}") + Result> getCustomers(@PathVariable("userIds") Iterable userIds); } diff --git a/order-service/src/main/resources/application.yml b/order-service/src/main/resources/application.yml index eccbfdf..ba95b52 100644 --- a/order-service/src/main/resources/application.yml +++ b/order-service/src/main/resources/application.yml @@ -3,7 +3,7 @@ server: spring: application: - name: order-servcie + name: order-service config: import: optional:configserver:http://127.0.0.1:8888 cloud: