From 4fcb8d012dca25333f15b890bfbc4d7c8a9b5a7f Mon Sep 17 00:00:00 2001 From: SeungHyeon Date: Mon, 5 Feb 2024 13:38:11 +0900 Subject: [PATCH 1/2] =?UTF-8?q?Feat:=20=EC=83=81=ED=92=88=20=EB=A6=AC?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=A1=B0=ED=9A=8C=20API=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kea/dpang/item/controller/ItemController.java | 7 +++++-- src/main/java/kea/dpang/item/dto/item/ItemDto.java | 11 +++++++++++ .../java/kea/dpang/item/service/ItemService.java | 12 +++++------- .../kea/dpang/item/service/ItemServiceImpl.java | 14 ++++++++++---- 4 files changed, 31 insertions(+), 13 deletions(-) diff --git a/src/main/java/kea/dpang/item/controller/ItemController.java b/src/main/java/kea/dpang/item/controller/ItemController.java index 23c0e88..06fafc7 100644 --- a/src/main/java/kea/dpang/item/controller/ItemController.java +++ b/src/main/java/kea/dpang/item/controller/ItemController.java @@ -69,9 +69,12 @@ public ResponseEntity>> getItemList( public ResponseEntity>> getItemList( @RequestBody GetItemListRequestDto dto ) { - // Todo: 상품 리스트로 조회 + List itemList = itemService.getItemList(dto.getItemIds()); - return null; + return new ResponseEntity<>( + new SuccessResponse<>(HttpStatus.OK.value(), "상품 리스트가 조회되었습니다.", itemList), + HttpStatus.OK + ); } diff --git a/src/main/java/kea/dpang/item/dto/item/ItemDto.java b/src/main/java/kea/dpang/item/dto/item/ItemDto.java index f269adb..926db11 100644 --- a/src/main/java/kea/dpang/item/dto/item/ItemDto.java +++ b/src/main/java/kea/dpang/item/dto/item/ItemDto.java @@ -1,5 +1,6 @@ package kea.dpang.item.dto.item; +import kea.dpang.item.entity.Item; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -15,4 +16,14 @@ public class ItemDto { private int quantity; // 상품 재고 수량 private int discountRate; // 할인율 private int discountPrice; // 상품 판매가 + + public ItemDto(Item item) { + this.itemId = item.getId(); + this.image = item.getThumbnailImage(); + this.name = item.getName(); + this.price = item.getPrice(); + this.quantity = item.getStockQuantity(); + this.discountRate = item.getDiscountRate(); + this.discountPrice = item.getDiscountPrice(); + } } diff --git a/src/main/java/kea/dpang/item/service/ItemService.java b/src/main/java/kea/dpang/item/service/ItemService.java index d7ae40e..01e121f 100644 --- a/src/main/java/kea/dpang/item/service/ItemService.java +++ b/src/main/java/kea/dpang/item/service/ItemService.java @@ -1,9 +1,6 @@ package kea.dpang.item.service; -import kea.dpang.item.dto.item.CreateItemRequestDto; -import kea.dpang.item.dto.item.ItemDetailDto; -import kea.dpang.item.dto.item.UpdateItemRequestDto; -import kea.dpang.item.dto.item.UpdateStockRequestDto; +import kea.dpang.item.dto.item.*; import kea.dpang.item.entity.Category; import kea.dpang.item.entity.SubCategory; import org.springframework.data.domain.Page; @@ -28,7 +25,8 @@ public interface ItemService { */ ItemDetailDto getItem(Long itemId); - // Todo: 필터링 상품 리스트 조회 + List getItemList(List itemIds); + Page getItemList( Category category, SubCategory subCategory, @@ -44,8 +42,8 @@ Page getItemList( /** * 상품의 정보를 업데이트합니다. * - * @param itemId 업데이트할 상품의 ID - * @param dto 업데이트할 상품의 정보가 담긴 DTO + * @param itemId 업데이트할 상품의 ID + * @param dto 업데이트할 상품의 정보가 담긴 DTO */ void updateItem(Long itemId, UpdateItemRequestDto dto); diff --git a/src/main/java/kea/dpang/item/service/ItemServiceImpl.java b/src/main/java/kea/dpang/item/service/ItemServiceImpl.java index 493ee0c..3ab5383 100644 --- a/src/main/java/kea/dpang/item/service/ItemServiceImpl.java +++ b/src/main/java/kea/dpang/item/service/ItemServiceImpl.java @@ -1,9 +1,6 @@ package kea.dpang.item.service; -import kea.dpang.item.dto.item.CreateItemRequestDto; -import kea.dpang.item.dto.item.ItemDetailDto; -import kea.dpang.item.dto.item.UpdateItemRequestDto; -import kea.dpang.item.dto.item.UpdateStockRequestDto; +import kea.dpang.item.dto.item.*; import kea.dpang.item.entity.Category; import kea.dpang.item.entity.Item; import kea.dpang.item.entity.SubCategory; @@ -47,6 +44,15 @@ public void createItem(CreateItemRequestDto dto) { } } + @Override + public List getItemList(List itemIds) { + log.info("item ID 리스트로부터 아이템 리스트 조회를 시작합니다 : {}", itemIds); + return itemRepository.findAllById(itemIds) + .stream() + .map(ItemDto::new) + .toList(); + } + // 상품 상세 정보 조회 @Override @Transactional(readOnly = true) From e1a8233839dd444109b60192b9f67d1687124f41 Mon Sep 17 00:00:00 2001 From: SeungHyeon Date: Mon, 5 Feb 2024 13:42:28 +0900 Subject: [PATCH 2/2] =?UTF-8?q?Update:=20=EC=9D=91=EB=8B=B5=20data=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dpang/item/dto/item/ItemDetailDto.java | 20 +++++++++---------- .../java/kea/dpang/item/dto/item/ItemDto.java | 8 ++++---- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/java/kea/dpang/item/dto/item/ItemDetailDto.java b/src/main/java/kea/dpang/item/dto/item/ItemDetailDto.java index a9314b3..e17265c 100644 --- a/src/main/java/kea/dpang/item/dto/item/ItemDetailDto.java +++ b/src/main/java/kea/dpang/item/dto/item/ItemDetailDto.java @@ -15,36 +15,36 @@ @NoArgsConstructor @AllArgsConstructor public class ItemDetailDto { - private Long itemId; - private String itemName; + private Long id; + private String name; private Long sellerId; private String sellerName; private Category category; private SubCategory subCategory; - private int itemPrice; + private int price; private float averageRating; private int discountRate; private int discountPrice; private String description; private int stockQuantity; - private String itemImage; - private List images; + private String thumbnailImage; + private List informationImages; public ItemDetailDto(Item item, String sellerName) { - this.itemId = item.getId(); - this.itemName = item.getName(); + this.id = item.getId(); + this.name = item.getName(); this.sellerId = item.getSellerId(); this.sellerName = sellerName; this.category = item.getCategory(); this.subCategory = item.getSubCategory(); - this.itemPrice = item.getPrice(); + this.price = item.getPrice(); this.averageRating = item.getAverageRating(); this.discountRate = item.getDiscountRate(); this.discountPrice = item.getDiscountPrice(); this.description = item.getDescription(); this.stockQuantity = item.getStockQuantity(); - this.itemImage = item.getThumbnailImage(); - this.images = item.getInformationImages(); + this.thumbnailImage = item.getThumbnailImage(); + this.informationImages = item.getInformationImages(); } } diff --git a/src/main/java/kea/dpang/item/dto/item/ItemDto.java b/src/main/java/kea/dpang/item/dto/item/ItemDto.java index 926db11..b485d77 100644 --- a/src/main/java/kea/dpang/item/dto/item/ItemDto.java +++ b/src/main/java/kea/dpang/item/dto/item/ItemDto.java @@ -9,8 +9,8 @@ @AllArgsConstructor @NoArgsConstructor public class ItemDto { - private Long itemId; // 상품 ID - private String image; // 상품 이미지 URL + private Long id; // 상품 ID + private String thumbnailImage; // 상품 이미지 URL private String name; // 상품 이름 private int price; // 상품 정가 private int quantity; // 상품 재고 수량 @@ -18,8 +18,8 @@ public class ItemDto { private int discountPrice; // 상품 판매가 public ItemDto(Item item) { - this.itemId = item.getId(); - this.image = item.getThumbnailImage(); + this.id = item.getId(); + this.thumbnailImage = item.getThumbnailImage(); this.name = item.getName(); this.price = item.getPrice(); this.quantity = item.getStockQuantity();