Skip to content

Commit

Permalink
#231 Refactor: 리뷰 정렬 기준 최신순, 별점순 구분 완료
Browse files Browse the repository at this point in the history
  • Loading branch information
jeongyeon0208 committed Dec 15, 2024
1 parent dfef40d commit da23806
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@ public ApiResponse<WineResponseWithThreeReviewsDTO> showWine(@AuthenticationPrin
@GetMapping("/review/{wineId}")
@Operation(summary = "선택 와인 리뷰 열람", description = "선택한 와인 리뷰를 List로 반환")
public ApiResponse<WineReviewResponseDTO> showWineReview(@AuthenticationPrincipal PrincipalDetail principalDetail,
@PathVariable("wineId") Long wineId) {
@PathVariable("wineId") Long wineId, @RequestParam Boolean orderByLatest) {

WineReviewResponseDTO wineReviewResponseDTO = wineService.getWineReviewsByWineId(wineId, principalDetail);
WineReviewResponseDTO wineReviewResponseDTO = wineService.getWineReviewsByWineId(wineId, principalDetail, orderByLatest);

return ApiResponse.onSuccess(wineReviewResponseDTO);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public interface WineRepositoryCustom {
List<SearchWineResponseDTO> findWinesWithLikeStatus(String searchName, Long memberId);

WineResponseWithThreeReviewsDTO findWineResponseByWineId(Long wineId, Long memberID);
WineReviewResponseDTO findWineReviewsAndLikeStatusByWineIdAndMemberId(Long wineId, Long memberId);
WineReviewResponseDTO findWineReviewsAndLikeStatusByWineIdAndMemberId(Long wineId, Long memberId, boolean orderByLatest);

List<RecommendWineDTO> findRecommendWines(Member member);
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public class WineRepositoryImpl implements WineRepositoryCustom {
private final JPAQueryFactory queryFactory;

@Override
public WineReviewResponseDTO findWineReviewsAndLikeStatusByWineIdAndMemberId(Long wineId, Long memberId) {
public WineReviewResponseDTO findWineReviewsAndLikeStatusByWineIdAndMemberId(Long wineId, Long memberId, boolean orderByLatest) {

// wineWishlist에 해당하는 데이터가 존재하면 true, 존재하지 않으면 false
Optional<Boolean> isLiked = Optional.ofNullable(
Expand All @@ -46,7 +46,8 @@ public WineReviewResponseDTO findWineReviewsAndLikeStatusByWineIdAndMemberId(Lon
))
.from(tastingNote)
.where(tastingNote.wine.id.eq(wineId))
.orderBy(tastingNote.createdAt.desc()) // 최신순 정렬
.orderBy(orderByLatest? tastingNote.createdAt.desc()
: tastingNote.satisfaction.desc()) // 최신순 정렬
.fetch());

return WineReviewResponseDTO.create(recentReviews.orElse(null), isLiked.orElse(false));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public interface WineService {

public WineResponseWithThreeReviewsDTO getWineResponseByWineId(Long wineId, PrincipalDetail principalDetail);

public WineReviewResponseDTO getWineReviewsByWineId(Long wineId, PrincipalDetail principalDetail);
public WineReviewResponseDTO getWineReviewsByWineId(Long wineId, PrincipalDetail principalDetail, boolean orderByLatest);

public HomeResponseDTO getHomeResponse(PrincipalDetail principalDetail);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,12 @@ public WineResponseWithThreeReviewsDTO getWineResponseByWineId(Long wineId, Prin
}

@Override
public WineReviewResponseDTO getWineReviewsByWineId(Long wineId, PrincipalDetail principalDetail){
public WineReviewResponseDTO getWineReviewsByWineId(Long wineId, PrincipalDetail principalDetail, boolean orderByLatest){
// 회원을 조회한다.
Member member = memberRepository.findByUsername(principalDetail.getUsername()).orElseThrow(
() -> new GeneralException(ErrorStatus.MEMBER_NOT_FOUND));

return wineRepository.findWineReviewsAndLikeStatusByWineIdAndMemberId(wineId, member.getId());
return wineRepository.findWineReviewsAndLikeStatusByWineIdAndMemberId(wineId, member.getId(), orderByLatest);
}

@Override
Expand Down

0 comments on commit da23806

Please sign in to comment.