diff --git a/src/main/java/com/t3t/bookstoreapi/book/service/BookCategoryService.java b/src/main/java/com/t3t/bookstoreapi/book/service/BookCategoryService.java index c272e9e0..0133bc1c 100644 --- a/src/main/java/com/t3t/bookstoreapi/book/service/BookCategoryService.java +++ b/src/main/java/com/t3t/bookstoreapi/book/service/BookCategoryService.java @@ -5,6 +5,7 @@ import com.t3t.bookstoreapi.book.model.response.BookDetailResponse; import com.t3t.bookstoreapi.book.repository.BookCategoryRepository; import com.t3t.bookstoreapi.book.repository.BookRepository; +import com.t3t.bookstoreapi.book.util.BookServiceUtils; import com.t3t.bookstoreapi.category.exception.CategoryNotFoundException; import com.t3t.bookstoreapi.category.model.entity.Category; import com.t3t.bookstoreapi.category.repository.CategoryRepository; @@ -78,6 +79,8 @@ public PageResponse getBooksByCategoryId(Integer categoryId, .orElse(Collections.emptyList()); // 책 상세 응답에 작가 목록을 설정 bookDetail.setParticipantList(participantList); + // 썸네일 이미지 prefix 추가 + bookDetail.setThumbnailImageUrl(BookServiceUtils.setThumbnailImagePrefix(bookDetail.getThumbnailImageUrl())); return bookDetail; }).collect(Collectors.toList()); diff --git a/src/main/java/com/t3t/bookstoreapi/book/service/BookService.java b/src/main/java/com/t3t/bookstoreapi/book/service/BookService.java index 033594a7..f8daabfc 100644 --- a/src/main/java/com/t3t/bookstoreapi/book/service/BookService.java +++ b/src/main/java/com/t3t/bookstoreapi/book/service/BookService.java @@ -9,6 +9,7 @@ import com.t3t.bookstoreapi.book.model.request.ModifyBookDetailRequest; import com.t3t.bookstoreapi.book.model.response.*; import com.t3t.bookstoreapi.book.repository.*; +import com.t3t.bookstoreapi.book.util.BookServiceUtils; import com.t3t.bookstoreapi.category.exception.CategoryNotFoundException; import com.t3t.bookstoreapi.category.model.entity.Category; import com.t3t.bookstoreapi.category.repository.CategoryRepository; @@ -79,7 +80,9 @@ public BookDetailResponse getBookDetailsById(Long bookId) { BookDetailResponse bookDetails = bookRepository.getBookDetailsById(bookId); - bookDetails.setImageUrlPrefix(objectStorageProperties.getStorageUrl()+"/t3team/"); + // 이미지 prefix 추가 + bookDetails.setThumbnailImageUrl(BookServiceUtils.setThumbnailImagePrefix(bookDetails.getThumbnailImageUrl())); + bookDetails.setBookImageUrlList(BookServiceUtils.setBookImagePrefix(bookDetails.getBookImageUrlList())); bookDetails.setDiscountedPrice(); bookDetails.setBookStock(); diff --git a/src/main/java/com/t3t/bookstoreapi/elastic/service/ElasticCategoryService.java b/src/main/java/com/t3t/bookstoreapi/elastic/service/ElasticCategoryService.java index a4ff844e..b470f80b 100644 --- a/src/main/java/com/t3t/bookstoreapi/elastic/service/ElasticCategoryService.java +++ b/src/main/java/com/t3t/bookstoreapi/elastic/service/ElasticCategoryService.java @@ -1,5 +1,6 @@ package com.t3t.bookstoreapi.elastic.service; +import com.t3t.bookstoreapi.book.util.BookServiceUtils; import com.t3t.bookstoreapi.elastic.model.dto.ElasticDocument; import com.t3t.bookstoreapi.elastic.model.response.ElasticResponse; import com.t3t.bookstoreapi.elastic.repository.ElasticRepository; @@ -79,7 +80,7 @@ public ElasticResponse buildElasticSearchResultResponse(ElasticDocument document .averageScore(document.getAverageScore()) .likeCount(document.getLikeCount()) .publisher(document.getPublisher()) - .coverImageUrl(document.getCoverImageUrl()) + .coverImageUrl(BookServiceUtils.setThumbnailImagePrefix(document.getCoverImageUrl())) .authorName(document.getAuthorName()) .authorRole(document.getAuthorRole()) .score(score) diff --git a/src/main/java/com/t3t/bookstoreapi/elastic/service/ElasticService.java b/src/main/java/com/t3t/bookstoreapi/elastic/service/ElasticService.java index cd0781a1..1ee96376 100644 --- a/src/main/java/com/t3t/bookstoreapi/elastic/service/ElasticService.java +++ b/src/main/java/com/t3t/bookstoreapi/elastic/service/ElasticService.java @@ -1,5 +1,6 @@ package com.t3t.bookstoreapi.elastic.service; +import com.t3t.bookstoreapi.book.util.BookServiceUtils; import com.t3t.bookstoreapi.elastic.model.dto.ElasticDocument; import com.t3t.bookstoreapi.elastic.model.response.ElasticResponse; import com.t3t.bookstoreapi.elastic.repository.ElasticRepository; @@ -80,7 +81,7 @@ public ElasticResponse buildElasticSearchResultResponse(ElasticDocument document .averageScore(document.getAverageScore()) .likeCount(document.getLikeCount()) .publisher(document.getPublisher()) - .coverImageUrl(document.getCoverImageUrl()) + .coverImageUrl(BookServiceUtils.setThumbnailImagePrefix(document.getCoverImageUrl())) .authorName(document.getAuthorName()) .authorRole(document.getAuthorRole()) .score(score) diff --git a/src/main/java/com/t3t/bookstoreapi/recommendation/model/response/BookInfoBriefResponse.java b/src/main/java/com/t3t/bookstoreapi/recommendation/model/response/BookInfoBriefResponse.java index f8bb6fc1..c9121d2d 100644 --- a/src/main/java/com/t3t/bookstoreapi/recommendation/model/response/BookInfoBriefResponse.java +++ b/src/main/java/com/t3t/bookstoreapi/recommendation/model/response/BookInfoBriefResponse.java @@ -1,9 +1,6 @@ package com.t3t.bookstoreapi.recommendation.model.response; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; +import lombok.*; /** * 도서 추천 목록 조회시에 사용되는 간단한 도서 정보를 담는 데이터 전송 객체(DTO)
@@ -11,6 +8,7 @@ * @author Yujin-nKim(김유진) */ @Getter +@Setter @Builder @AllArgsConstructor @NoArgsConstructor diff --git a/src/main/java/com/t3t/bookstoreapi/recommendation/service/RecommendationService.java b/src/main/java/com/t3t/bookstoreapi/recommendation/service/RecommendationService.java index 85e5b70c..09edf00e 100644 --- a/src/main/java/com/t3t/bookstoreapi/recommendation/service/RecommendationService.java +++ b/src/main/java/com/t3t/bookstoreapi/recommendation/service/RecommendationService.java @@ -1,6 +1,7 @@ package com.t3t.bookstoreapi.recommendation.service; import com.t3t.bookstoreapi.book.repository.BookRepository; +import com.t3t.bookstoreapi.book.util.BookServiceUtils; import com.t3t.bookstoreapi.order.repository.OrderDetailRepository; import com.t3t.bookstoreapi.recommendation.model.response.BookInfoBriefResponse; import lombok.RequiredArgsConstructor; @@ -9,6 +10,7 @@ import java.time.LocalDate; import java.util.List; +import java.util.stream.Collectors; @RequiredArgsConstructor @Transactional @@ -26,10 +28,15 @@ public class RecommendationService { * @return 최근에 출판된 도서 목록 * @author Yujin-nKim(김유진) */ - @Transactional(readOnly = true) - public List getRecentlyPublishedBooks(LocalDate date, int maxCount) { - return bookRepository.getRecentlyPublishedBooks(date, maxCount); - } + @Transactional(readOnly = true) + public List getRecentlyPublishedBooks(LocalDate date, int maxCount) { + return bookRepository.getRecentlyPublishedBooks(date, maxCount) + .stream() + .map(response -> { + response.setThumbnailImageUrl(BookServiceUtils.setThumbnailImagePrefix(response.getThumbnailImageUrl())); + return response;}) + .collect(Collectors.toList()); + } /** * 좋아요 수와 평균 평점이 높은 순서로 도서 목록을 조회 @@ -40,7 +47,12 @@ public List getRecentlyPublishedBooks(LocalDate date, int */ @Transactional(readOnly = true) public List getBooksByMostLikedAndHighAverageScore(int maxCount) { - return bookRepository.getBooksByMostLikedAndHighAverageScore(maxCount); + return bookRepository.getBooksByMostLikedAndHighAverageScore(maxCount) + .stream() + .map(response -> { + response.setThumbnailImageUrl(BookServiceUtils.setThumbnailImagePrefix(response.getThumbnailImageUrl())); + return response;}) + .collect(Collectors.toList()); } /** @@ -52,6 +64,11 @@ public List getBooksByMostLikedAndHighAverageScore(int ma */ @Transactional(readOnly = true) public List getBestSellerBooks(int maxCount) { - return orderDetailRepository.getSalesCountPerBook(maxCount); + return orderDetailRepository.getSalesCountPerBook(maxCount) + .stream() + .map(response -> { + response.setThumbnailImageUrl(BookServiceUtils.setThumbnailImagePrefix(response.getThumbnailImageUrl())); + return response;}) + .collect(Collectors.toList()); } }