diff --git a/src/main/java/MARKETFUBY/Product/dto/ProductDetailDto.java b/src/main/java/MARKETFUBY/Product/dto/ProductDetailDto.java index 0e836a5..dc1cbaa 100644 --- a/src/main/java/MARKETFUBY/Product/dto/ProductDetailDto.java +++ b/src/main/java/MARKETFUBY/Product/dto/ProductDetailDto.java @@ -33,7 +33,7 @@ public class ProductDetailDto { private List inquiries; @Builder - public ProductDetailDto(Product product, Boolean isLiked, List reviewImages, Integer reviewCount, List reviews, List inquiries){ + public ProductDetailDto(Product product, List reviewImages, Integer reviewCount, List reviews, List inquiries){ this.image = product.getImage(); this.title = product.getTitle(); this.subtitle = product.getSubtitle(); @@ -48,7 +48,6 @@ public ProductDetailDto(Product product, Boolean isLiked, List reviewIma this.info = product.getInfo(); this.delivery = product.getDelivery(); this.seller = product.getSeller(); - this.isLiked = isLiked; this.detailInfoImg = product.getDetailInfoImg(); this.productInfoImg = product.getProductInfoImg(); this.reviewImages = reviewImages; diff --git a/src/main/java/MARKETFUBY/Product/service/ProductService.java b/src/main/java/MARKETFUBY/Product/service/ProductService.java index 120ed1f..06c7d4b 100644 --- a/src/main/java/MARKETFUBY/Product/service/ProductService.java +++ b/src/main/java/MARKETFUBY/Product/service/ProductService.java @@ -2,25 +2,22 @@ import java.util.ArrayList; import java.util.List; -import java.util.Optional; import java.util.stream.Collectors; import MARKETFUBY.Inquiry.domain.Inquiry; import MARKETFUBY.Inquiry.repository.InquiryRepository; +import MARKETFUBY.Like.domain.Like; import MARKETFUBY.Like.repository.LikeRepository; import MARKETFUBY.Member.domain.Member; import MARKETFUBY.Member.repository.MemberRepository; import MARKETFUBY.Product.dto.*; import MARKETFUBY.Review.domain.Review; -import MARKETFUBY.Review.dto.ReviewResponseDto; import MARKETFUBY.ReviewHelp.repository.ReviewHelpRepository; import MARKETFUBY.ReviewImage.domain.ReviewImage; import MARKETFUBY.ReviewImage.repository.ReviewImageRepository; -import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.persistence.EntityNotFoundException; -import javax.swing.text.html.Option; import MARKETFUBY.BigCategory.domain.BigCategory; import MARKETFUBY.BigCategory.dto.CategoryDto; @@ -217,13 +214,11 @@ public SearchDto getSearchList(String sword, Integer sort, Long filters){ } public ProductDetailDto getProductDetailDto(Product product, Long memberId){ - Member member = memberRepository.findByMemberId(memberId); - Boolean isLiked = likeRepository.existsByMemberAndProduct(member, product); List reviewImages = findReviewImagesByProduct(product); List reviews = findReviewsByProduct(product, memberId); Integer reviewCount = reviews.size(); List inquiries = findInquiriesByProduct(product); - ProductDetailDto productDetailDto = new ProductDetailDto(product, isLiked, reviewImages, reviewCount, reviews, inquiries); + ProductDetailDto productDetailDto = new ProductDetailDto(product, reviewImages, reviewCount, reviews, inquiries); return productDetailDto; } @@ -273,6 +268,27 @@ public List findInquiriesByProduct(Product product){ }); return productInquiryDtos; } + + public LikeProductListResponseDto getLikeProductListDto(Member member){ + List likeProductDtos = findLikeProductsByMember(member); + Integer productNum = likeProductDtos.size(); + return new LikeProductListResponseDto(productNum, likeProductDtos); + } + + public List findLikeProductsByMember(Member member){ + List likeList = likeRepository.findAllByMember(member); + List likeProducts = new ArrayList<>(); + List likeProductDtos = new ArrayList<>(); + likeList.forEach(like -> { + Product product = like.getProduct(); + likeProducts.add(product); + }); + likeProducts.forEach(product -> { + LikeProductDto likeProductDto = LikeProductDto.from(product); + likeProductDtos.add(likeProductDto); + }); + return likeProductDtos; + } // 찜하기에서 사용 @Transactional(readOnly = true)