From 12501513e05b2c80890f5808865d4c09c836f85e Mon Sep 17 00:00:00 2001 From: G1Huh Date: Tue, 7 Jan 2025 23:02:17 +0900 Subject: [PATCH] =?UTF-8?q?fix[be]=20:=20#4=20-=20=EC=BD=94=EB=A9=98?= =?UTF-8?q?=ED=8A=B8=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EB=B0=8F=20fe=20=EC=97=B0=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/BookCommentReadService.java | 10 +++--- .../repository/BookCommentRepository.java | 2 +- .../BookCommentRepositoryImpl.java | 12 +++---- .../jpa/BookCommentJpaRepository.java | 31 +++++++++---------- .../presentation/BookCommentController.java | 21 ++++++------- .../presentation/BookDetailController.java | 9 ++++-- 6 files changed, 42 insertions(+), 43 deletions(-) diff --git a/be/src/main/java/movlit/be/book/application/converter/service/BookCommentReadService.java b/be/src/main/java/movlit/be/book/application/converter/service/BookCommentReadService.java index 5b6505cb..ea15624b 100644 --- a/be/src/main/java/movlit/be/book/application/converter/service/BookCommentReadService.java +++ b/be/src/main/java/movlit/be/book/application/converter/service/BookCommentReadService.java @@ -30,11 +30,11 @@ public class BookCommentReadService { private final BookCommentLikeRepository bookCommentLikeRepository; // 리뷰 리스트 -// public Slice getPagedBookComments(BookId bookId, Pageable pageable) { -// Slice bookCommentPage = bookCommentRepository.findByBookId(bookId, pageable); -// -// return bookCommentPage; -// } + public Slice getPagedBookComments(BookId bookId, Pageable pageable) { + Slice bookCommentPage = bookCommentRepository.findByBookId(bookId, pageable); + + return bookCommentPage; + } // 내가 작성한 도서 리뷰 찾기 public BookComment findByMemberAndBook(Member member, Book book) { diff --git a/be/src/main/java/movlit/be/book/domain/repository/BookCommentRepository.java b/be/src/main/java/movlit/be/book/domain/repository/BookCommentRepository.java index 22be9ea3..d18439ad 100644 --- a/be/src/main/java/movlit/be/book/domain/repository/BookCommentRepository.java +++ b/be/src/main/java/movlit/be/book/domain/repository/BookCommentRepository.java @@ -23,5 +23,5 @@ public interface BookCommentRepository { void deleteById(BookCommentId bookCommentId); -// Slice findByBookId(BookId bookId, Pageable pageable); + Slice findByBookId(BookId bookId, Pageable pageable); } diff --git a/be/src/main/java/movlit/be/book/infra/persistence/BookCommentRepositoryImpl.java b/be/src/main/java/movlit/be/book/infra/persistence/BookCommentRepositoryImpl.java index 2ae6181b..257a58ee 100644 --- a/be/src/main/java/movlit/be/book/infra/persistence/BookCommentRepositoryImpl.java +++ b/be/src/main/java/movlit/be/book/infra/persistence/BookCommentRepositoryImpl.java @@ -45,12 +45,12 @@ public BookComment findByMemberAndBook(Member member, Book book) { } -// @Override -// public Slice findByBookId(BookId bookId, Pageable pageable) { -// Slice bookCommentEntity = bookCommentJpaRepository.findByBookEntity(bookId, pageable); -// -// return bookCommentEntity; -// } + @Override + public Slice findByBookId(BookId bookId, Pageable pageable) { + Slice bookCommentEntity = bookCommentJpaRepository.findByBookEntity(bookId, pageable); + + return bookCommentEntity; + } @Override public BookComment save(BookComment bookComment) { diff --git a/be/src/main/java/movlit/be/book/infra/persistence/jpa/BookCommentJpaRepository.java b/be/src/main/java/movlit/be/book/infra/persistence/jpa/BookCommentJpaRepository.java index fe77f2cc..d3d50114 100644 --- a/be/src/main/java/movlit/be/book/infra/persistence/jpa/BookCommentJpaRepository.java +++ b/be/src/main/java/movlit/be/book/infra/persistence/jpa/BookCommentJpaRepository.java @@ -25,23 +25,20 @@ public interface BookCommentJpaRepository extends JpaRepository { -// @Query("SELECT NEW movlit.be.book.domain.dto.BookCommentResponseDto(" -// + " bc.bookCommentId," -// + " bc.score," -// + " bc.comment," -// + " mb.nickname," -// + " mb.profileImgUrl," -// + " false," -// + " lc.count," -// + " (SELECT COUNT(bcc) FROM BookCommentEntity bcc WHERE bcc.bookEntity.bookId = :bookId)" -// + ")" -// + "FROM BookCommentEntity bc" -// + "LEFT JOIN BookCommentLikeCountEntity lc ON lc.bookCommentEntity.bookCommentId = bc.bookCommentId" -// + "LEFT JOIN MemberEntity mb ON mb.memberId = bc.memberEntity.memberId" -// + "WHERE bc.bookEntity = :bookId" -// + "ORDER BY bc.regDt DESC ") -// Slice findByBookEntity(@Param("bookId") BookId bookId, -// @Param("pageable") Pageable pageable); +@Query("SELECT NEW movlit.be.book.domain.dto.BookCommentResponseDto( " + + "bc.bookCommentId, bc.score, bc.comment, " + + "m.nickname, m.profileImgUrl , false, " + + "IFNULL(bclc.count, 0) AS likeCount , bc.regDt, bc.updDt, " + + "(SELECT COUNT(bcc) FROM BookCommentEntity bcc WHERE bcc.bookEntity.bookId = :bookId ) AS allCommentsCount" + + ") " + + "FROM BookCommentEntity bc " + + "LEFT JOIN BookCommentLikeCountEntity bclc ON bclc.bookCommentEntity.bookCommentId = bc.bookCommentId " + + "LEFT JOIN MemberEntity m ON m.memberId = bc.memberEntity.memberId " + + "WHERE bc.bookEntity.bookId = :bookId " + + "order by bc.regDt DESC " + ) + Slice findByBookEntity(@Param("bookId") BookId bookId, + @Param("pageable") Pageable pageable); Optional findByMemberEntityAndBookEntity(MemberEntity memberEntity, BookEntity bookEntity); diff --git a/be/src/main/java/movlit/be/book/presentation/BookCommentController.java b/be/src/main/java/movlit/be/book/presentation/BookCommentController.java index 85c94b0d..cd33eedc 100644 --- a/be/src/main/java/movlit/be/book/presentation/BookCommentController.java +++ b/be/src/main/java/movlit/be/book/presentation/BookCommentController.java @@ -47,17 +47,16 @@ public class BookCommentController { private final MemberReadService memberReadService; // 리뷰 리스트 -// @GetMapping("{bookId}/comments") -// public ResponseEntity> bookCommentReadService(@PathVariable BookId bookId, -// @AuthenticationPrincipal MyMemberDetails details, -// @PageableDefault(size = 4, sort = "regDt", direction = Direction.DESC) -// Pageable pageable){ -// //Book book = bookDetailReadService.findByBookId(bookId); -// Slice pagedResult = bookCommentReadService.getPagedBookComments(bookId, pageable); -// -// -// return ResponseEntity.ok(pagedResult); -// } + @GetMapping("{bookId}/comments") + public ResponseEntity> bookCommentReadService(@PathVariable BookId bookId, + @PageableDefault(size = 4, sort = "regDt", direction = Direction.DESC) + Pageable pageable){ + + Slice pagedResult = bookCommentReadService.getPagedBookComments(bookId, pageable); + + + return ResponseEntity.ok(pagedResult); + } @GetMapping("{bookId}/myComment") public ResponseEntity myComment(@PathVariable BookId bookId, @AuthenticationPrincipal MyMemberDetails details) { diff --git a/be/src/main/java/movlit/be/book/presentation/BookDetailController.java b/be/src/main/java/movlit/be/book/presentation/BookDetailController.java index 5f2a5a01..08374a0d 100644 --- a/be/src/main/java/movlit/be/book/presentation/BookDetailController.java +++ b/be/src/main/java/movlit/be/book/presentation/BookDetailController.java @@ -34,9 +34,12 @@ public class BookDetailController { @GetMapping("{bookId}/detail") public BookDetailResponseDto getBookDetail(@PathVariable BookId bookId, @AuthenticationPrincipal MyMemberDetails details) { BookDetailResponseDto bookDetailResponse = bookDetailReadService.getBookDetail(bookId); - System.out.println("&&detail 있니? : " + details); - System.out.println("&&detail의 mem정보" + details.getMemberId()); - System.out.println("&&detail의 mem이름" + details.getUsername()); + if(details != null){ + System.out.println("&&detail 있니? : " + details); + System.out.println("&&detail의 mem정보" + details.getMemberId()); + System.out.println("&&detail의 mem이름" + details.getUsername()); + } + return bookDetailResponse; }