From 6c8efa24f081d83628b73d1635f9f4e4065b7f8b Mon Sep 17 00:00:00 2001 From: GeonWoo Date: Tue, 6 Feb 2024 18:28:46 +0900 Subject: [PATCH] Fix: getReviewList --- .../kea/dpang/item/dto/review/ReviewDto.java | 17 +++++------ .../dpang/item/service/ReviewServiceImpl.java | 30 +++++++++++-------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/main/java/kea/dpang/item/dto/review/ReviewDto.java b/src/main/java/kea/dpang/item/dto/review/ReviewDto.java index a795623..058408b 100644 --- a/src/main/java/kea/dpang/item/dto/review/ReviewDto.java +++ b/src/main/java/kea/dpang/item/dto/review/ReviewDto.java @@ -18,16 +18,13 @@ public class ReviewDto { private String content; private Double rating; - public static ReviewDto of(Review review, String reviewerName) { - return new ReviewDto( - review.getReviewId(), - review.getReviewerId(), - reviewerName, - review.getCreatedTime(), - review.getItem().getId(), - review.getContent(), - review.getRating() - ); + public ReviewDto(Review review) { + this.reviewId = review.getReviewId(); + this.reviewerId = review.getReviewerId(); + this.createdTime = review.getCreatedTime(); + this.itemId = review.getItem().getId(); + this.content = review.getContent(); + this.rating = review.getRating(); } } diff --git a/src/main/java/kea/dpang/item/service/ReviewServiceImpl.java b/src/main/java/kea/dpang/item/service/ReviewServiceImpl.java index dfc6c05..c034538 100644 --- a/src/main/java/kea/dpang/item/service/ReviewServiceImpl.java +++ b/src/main/java/kea/dpang/item/service/ReviewServiceImpl.java @@ -53,21 +53,25 @@ public void createReview(CreateReviewRequestDto dto) { @Transactional public List getReviewList(Long itemId, Pageable pageable) { - // 사용자 서버로부터 사용자 정보 조회 - ResponseEntity> responseEntity = userServiceFeignClient.getReviewer(itemId); - // 사용자 이름 가져오기 - - String name = Optional.ofNullable(responseEntity.getBody()) - .map(SuccessResponse::getData) - .map(UserDetailDto::getName) - .orElseThrow(() -> new RuntimeException("사용자 정보 조회에 실패하였습니다.")); - Page reviews = reviewRepository.findByItemId(itemId, pageable); - // 리뷰 리스트를 PersonalReviewDto로 변환 - return reviews.getContent().stream() - .map(review -> ReviewDto.of(review, name)) - .toList(); + return reviews.stream().map(review -> { + // 작성자 이름 가져오기 + ResponseEntity> response = userServiceFeignClient.getReviewer(review.getReviewerId()); + UserDetailDto userDetailDto = response.getBody().getData(); + String reviewerName = userDetailDto.getName(); + + // ReviewDto 생성 + return new ReviewDto( + review.getReviewId(), + review.getReviewerId(), + reviewerName, // 작성자 이름 설정 + review.getCreatedTime(), + review.getItem().getId(), + review.getContent(), + review.getRating() + ); + }).toList(); } // 사용자별 리뷰 리스트 조회