diff --git a/store-service/src/main/java/com/justpickup/storeservice/domain/item/dto/ItemsDto.java b/store-service/src/main/java/com/justpickup/storeservice/domain/item/dto/ItemsDto.java new file mode 100644 index 0000000..efffd20 --- /dev/null +++ b/store-service/src/main/java/com/justpickup/storeservice/domain/item/dto/ItemsDto.java @@ -0,0 +1,17 @@ +package com.justpickup.storeservice.domain.item.dto; + +import com.justpickup.storeservice.domain.item.entity.Item; +import lombok.Getter; + +@Getter +public class ItemsDto { + private Long itemId; + private String itemName; + + public static ItemsDto of(Item item) { + ItemsDto itemsDto = new ItemsDto(); + itemsDto.itemId = item.getId(); + itemsDto.itemName = item.getName(); + return itemsDto; + } +} diff --git a/store-service/src/main/java/com/justpickup/storeservice/domain/item/service/ItemService.java b/store-service/src/main/java/com/justpickup/storeservice/domain/item/service/ItemService.java index 21c3666..3ccb198 100644 --- a/store-service/src/main/java/com/justpickup/storeservice/domain/item/service/ItemService.java +++ b/store-service/src/main/java/com/justpickup/storeservice/domain/item/service/ItemService.java @@ -2,6 +2,7 @@ package com.justpickup.storeservice.domain.item.service; import com.justpickup.storeservice.domain.item.dto.FetchItemDto; import com.justpickup.storeservice.domain.item.dto.ItemDto; +import com.justpickup.storeservice.domain.item.dto.ItemsDto; import com.justpickup.storeservice.domain.itemoption.dto.ItemOptionDto; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -19,4 +20,6 @@ public interface ItemService { void putItem(Long itemId, String itemName, Long itemPrice, Long categoryId, List itemOptionDtos); void createItem( Long userId, String itemName, Long itemPrice, Long categoryId, List itemOptionDtos); + + List findItems(List itemIds); } diff --git a/store-service/src/main/java/com/justpickup/storeservice/domain/item/service/ItemServiceImpl.java b/store-service/src/main/java/com/justpickup/storeservice/domain/item/service/ItemServiceImpl.java index 23e8528..12d2a45 100644 --- a/store-service/src/main/java/com/justpickup/storeservice/domain/item/service/ItemServiceImpl.java +++ b/store-service/src/main/java/com/justpickup/storeservice/domain/item/service/ItemServiceImpl.java @@ -4,6 +4,7 @@ import com.justpickup.storeservice.domain.category.entity.Category; import com.justpickup.storeservice.domain.category.repository.CategoryRepository; import com.justpickup.storeservice.domain.item.dto.FetchItemDto; import com.justpickup.storeservice.domain.item.dto.ItemDto; +import com.justpickup.storeservice.domain.item.dto.ItemsDto; import com.justpickup.storeservice.domain.item.entity.Item; import com.justpickup.storeservice.domain.item.exception.NotExistItemException; import com.justpickup.storeservice.domain.item.repository.ItemRepository; @@ -36,8 +37,6 @@ public class ItemServiceImpl implements ItemService { private final CategoryRepository categoryRepository; private final StoreRepository storeRepository; - - @Override public ItemDto findItemByItemId(Long itemId) { Item findItem = itemRepository.findById(itemId) @@ -112,4 +111,12 @@ public class ItemServiceImpl implements ItemService { itemRepository.save(createdItem); } + + @Override + public List findItems(List itemIds) { + return itemRepository.findAllById(itemIds) + .stream() + .map(ItemsDto::of) + .collect(Collectors.toList()); + } } diff --git a/store-service/src/main/java/com/justpickup/storeservice/domain/item/web/ItemController.java b/store-service/src/main/java/com/justpickup/storeservice/domain/item/web/ItemController.java index 7130f9e..ba104f3 100644 --- a/store-service/src/main/java/com/justpickup/storeservice/domain/item/web/ItemController.java +++ b/store-service/src/main/java/com/justpickup/storeservice/domain/item/web/ItemController.java @@ -1,6 +1,7 @@ package com.justpickup.storeservice.domain.item.web; import com.justpickup.storeservice.domain.item.dto.ItemDto; +import com.justpickup.storeservice.domain.item.dto.ItemsDto; import com.justpickup.storeservice.domain.item.service.ItemService; import com.justpickup.storeservice.global.dto.Result; import com.justpickup.storeservice.global.entity.Yn; @@ -14,6 +15,9 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; +import java.util.List; +import java.util.stream.Collectors; + @RestController @RequiredArgsConstructor public class ItemController { @@ -45,5 +49,26 @@ public class ItemController { } } + @GetMapping("/items/{itemIds}") + public ResponseEntity getItems(@PathVariable List itemIds) { + List items = itemService.findItems(itemIds); + + List responses = items.stream() + .map(GetItemsResponse::new) + .collect(Collectors.toList()); + + return ResponseEntity.ok(Result.createSuccessResult(responses)); + } + + @Data @NoArgsConstructor + static class GetItemsResponse { + private Long id; + private String name; + + public GetItemsResponse(ItemsDto itemsDto) { + this.id = itemsDto.getItemId(); + this.name = itemsDto.getItemName(); + } + } } diff --git a/store-service/src/main/resources/application.yml b/store-service/src/main/resources/application.yml index 677a294..15d5314 100644 --- a/store-service/src/main/resources/application.yml +++ b/store-service/src/main/resources/application.yml @@ -1,9 +1,9 @@ server: - port: 12343 + port: 0 spring: application: - name: store-servcie + name: store-service config: import: optional:configserver:http://127.0.0.1:8888 cloud: @@ -25,7 +25,6 @@ spring: username: postgres password: admin - eureka: client: service-url: