From 48dba37eeb3fdaf41f07f696cd95d32dc668a386 Mon Sep 17 00:00:00 2001 From: dong2ast Date: Sat, 6 Jan 2024 20:45:22 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=E2=9C=A8=20[FEAT]=20=EC=9D=B8=EA=B8=B0=20?= =?UTF-8?q?=EB=A0=88=ED=81=90=EB=B6=81=20=ED=99=95=EC=9D=B8=EC=9D=84=20?= =?UTF-8?q?=EC=9C=84=ED=95=9C=20=ED=95=84=EB=93=9C=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/sopt/lequuServer/domain/book/model/Book.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/org/sopt/lequuServer/domain/book/model/Book.java b/src/main/java/org/sopt/lequuServer/domain/book/model/Book.java index 1055ddc..64a3455 100644 --- a/src/main/java/org/sopt/lequuServer/domain/book/model/Book.java +++ b/src/main/java/org/sopt/lequuServer/domain/book/model/Book.java @@ -38,6 +38,8 @@ public class Book extends BaseTimeEntity { private int backgroundColor; + private boolean isPopular; + @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @@ -65,6 +67,7 @@ public Book(String uuid, String favoriteName, String favoriteImage, String title this.description = description; this.backgroundColor = backgroundColor; this.member = member; + this.isPopular = false; } public static Book of(String uuid, String favoriteName, String favoriteImage, String title, String description, int backgroundColor, Member member) { From e4b5108de9915a909336d3765ad0dd0d1828e71d Mon Sep 17 00:00:00 2001 From: dong2ast Date: Sat, 6 Jan 2024 21:29:36 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=E2=9C=A8=20[FEAT]=20=ED=99=88=20=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20api=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../book/repository/BookRepository.java | 6 ++++++ .../domain/book/service/BookService.java | 19 +++++++++++++++++++ .../common/controller/CommonController.java | 11 ++++++++++- .../dto/response/PopularBookResponseDto.java | 15 +++++++++++++++ .../domain/common/facade/CommonFacade.java | 8 ++++++++ .../global/config/SecurityConfig.java | 3 ++- .../global/exception/enums/SuccessType.java | 1 + 7 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/sopt/lequuServer/domain/book/service/BookService.java create mode 100644 src/main/java/org/sopt/lequuServer/domain/common/dto/response/PopularBookResponseDto.java diff --git a/src/main/java/org/sopt/lequuServer/domain/book/repository/BookRepository.java b/src/main/java/org/sopt/lequuServer/domain/book/repository/BookRepository.java index 654902c..909408c 100644 --- a/src/main/java/org/sopt/lequuServer/domain/book/repository/BookRepository.java +++ b/src/main/java/org/sopt/lequuServer/domain/book/repository/BookRepository.java @@ -1,7 +1,13 @@ package org.sopt.lequuServer.domain.book.repository; +import java.util.List; import org.sopt.lequuServer.domain.book.model.Book; +import org.springframework.data.domain.PageRequest; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; public interface BookRepository extends JpaRepository { + @Query(value = "select b from Book b where b.isPopular = :isPopular") + List getAllByPopular(@Param("isPopular") Boolean isPopular, PageRequest pageRequest); } \ No newline at end of file diff --git a/src/main/java/org/sopt/lequuServer/domain/book/service/BookService.java b/src/main/java/org/sopt/lequuServer/domain/book/service/BookService.java new file mode 100644 index 0000000..afb408f --- /dev/null +++ b/src/main/java/org/sopt/lequuServer/domain/book/service/BookService.java @@ -0,0 +1,19 @@ +package org.sopt.lequuServer.domain.book.service; + +import java.util.List; +import lombok.RequiredArgsConstructor; +import org.sopt.lequuServer.domain.book.model.Book; +import org.sopt.lequuServer.domain.book.repository.BookRepository; +import org.springframework.data.domain.PageRequest; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class BookService { + + private final BookRepository bookRepository; + + public List getPopularBook() { + return bookRepository.getAllByPopular(true, PageRequest.of(0, 6)); + } +} diff --git a/src/main/java/org/sopt/lequuServer/domain/common/controller/CommonController.java b/src/main/java/org/sopt/lequuServer/domain/common/controller/CommonController.java index 7fe5761..4242969 100644 --- a/src/main/java/org/sopt/lequuServer/domain/common/controller/CommonController.java +++ b/src/main/java/org/sopt/lequuServer/domain/common/controller/CommonController.java @@ -1,15 +1,19 @@ package org.sopt.lequuServer.domain.common.controller; +import java.util.List; import lombok.RequiredArgsConstructor; +import org.sopt.lequuServer.domain.common.dto.response.PopularBookResponseDto; import org.sopt.lequuServer.domain.common.dto.response.SplashDto; import org.sopt.lequuServer.domain.common.facade.CommonFacade; import org.sopt.lequuServer.global.common.dto.ApiResponse; import org.sopt.lequuServer.global.exception.enums.SuccessType; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -@RestController("/api/common") +@RestController @RequiredArgsConstructor +@RequestMapping("/api/common") public class CommonController { private final CommonFacade commonFacade; @@ -19,4 +23,9 @@ public ApiResponse getSplash() { return ApiResponse.success(SuccessType.GET_SPLASH_SUCCESS, commonFacade.getSplash()); } + @GetMapping("/home") + public ApiResponse> getHome() { + return ApiResponse.success(SuccessType.GET_HOME_SUCCESS, commonFacade.getHome()); + } } + diff --git a/src/main/java/org/sopt/lequuServer/domain/common/dto/response/PopularBookResponseDto.java b/src/main/java/org/sopt/lequuServer/domain/common/dto/response/PopularBookResponseDto.java new file mode 100644 index 0000000..605bcf3 --- /dev/null +++ b/src/main/java/org/sopt/lequuServer/domain/common/dto/response/PopularBookResponseDto.java @@ -0,0 +1,15 @@ +package org.sopt.lequuServer.domain.common.dto.response; + +import org.sopt.lequuServer.domain.book.model.Book; + +public record PopularBookResponseDto( + Long bookId, + String bookUuid, + String favoriteName, + String favoriteImage +) { + public static PopularBookResponseDto of(Book book) { + return new PopularBookResponseDto(book.getId(), book.getUuid(), book.getFavoriteName(), + book.getFavoriteImage()); + } +} diff --git a/src/main/java/org/sopt/lequuServer/domain/common/facade/CommonFacade.java b/src/main/java/org/sopt/lequuServer/domain/common/facade/CommonFacade.java index f3967a7..288e056 100644 --- a/src/main/java/org/sopt/lequuServer/domain/common/facade/CommonFacade.java +++ b/src/main/java/org/sopt/lequuServer/domain/common/facade/CommonFacade.java @@ -1,6 +1,9 @@ package org.sopt.lequuServer.domain.common.facade; +import java.util.List; import lombok.RequiredArgsConstructor; +import org.sopt.lequuServer.domain.book.service.BookService; +import org.sopt.lequuServer.domain.common.dto.response.PopularBookResponseDto; import org.sopt.lequuServer.domain.common.dto.response.SplashDto; import org.sopt.lequuServer.domain.note.service.NoteService; import org.springframework.stereotype.Service; @@ -10,9 +13,14 @@ public class CommonFacade { private final NoteService noteService; + private final BookService bookService; public SplashDto getSplash() { return SplashDto.of(noteService.getAllNoteCount()); } + public List getHome() { + return bookService.getPopularBook().stream().map(PopularBookResponseDto::of).toList(); + } + } diff --git a/src/main/java/org/sopt/lequuServer/global/config/SecurityConfig.java b/src/main/java/org/sopt/lequuServer/global/config/SecurityConfig.java index 5851412..4d97bf1 100644 --- a/src/main/java/org/sopt/lequuServer/global/config/SecurityConfig.java +++ b/src/main/java/org/sopt/lequuServer/global/config/SecurityConfig.java @@ -23,7 +23,8 @@ public class SecurityConfig { private static final String[] AUTH_WHITELIST = { "/api/kakao/**", "/loading", "/error", "/api/login", "/api/reissue", "/api/test/**", "/health", "/actuator/health", - "/api/images/**", "/", "/swagger-ui/**", "/swagger-resources/**", "/api-docs/**" + "/api/images/**", "/", "/swagger-ui/**", "/swagger-resources/**", "/api-docs/**", + "/api/common/**" }; @Bean diff --git a/src/main/java/org/sopt/lequuServer/global/exception/enums/SuccessType.java b/src/main/java/org/sopt/lequuServer/global/exception/enums/SuccessType.java index 5e0c358..41dbbf3 100644 --- a/src/main/java/org/sopt/lequuServer/global/exception/enums/SuccessType.java +++ b/src/main/java/org/sopt/lequuServer/global/exception/enums/SuccessType.java @@ -22,6 +22,7 @@ public enum SuccessType { STICKER_PACK_LIST_SUCCESS(HttpStatus.OK, "스티커팩 목록 조회에 성공했습니다."), GET_SPLASH_SUCCESS(HttpStatus.OK, "스플래시 조회에 성공했습니다."), + GET_HOME_SUCCESS(HttpStatus.OK, "홈 화면 조회에 성공했습니다."), ; private final HttpStatus httpStatus; From 820a0b3763572a1f9bfd41338b948a0f67102134 Mon Sep 17 00:00:00 2001 From: dong2ast Date: Sat, 6 Jan 2024 21:47:48 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=E2=9C=A8=20[FEAT]=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EB=B0=8F=20=EB=8D=94=EB=AF=B8=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=EC=83=9D=EC=84=B1=EC=9A=A9=20InitDb=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/sopt/lequuServer/InitDb.java | 76 +++++++++++++++++++ .../lequuServer/domain/book/model/Book.java | 8 +- .../lequuServer/domain/note/model/Note.java | 3 +- 3 files changed, 82 insertions(+), 5 deletions(-) create mode 100644 src/main/java/org/sopt/lequuServer/InitDb.java diff --git a/src/main/java/org/sopt/lequuServer/InitDb.java b/src/main/java/org/sopt/lequuServer/InitDb.java new file mode 100644 index 0000000..8950d0a --- /dev/null +++ b/src/main/java/org/sopt/lequuServer/InitDb.java @@ -0,0 +1,76 @@ +package org.sopt.lequuServer; + +import jakarta.annotation.PostConstruct; +import jakarta.persistence.EntityManager; +import lombok.RequiredArgsConstructor; +import org.sopt.lequuServer.domain.book.model.Book; +import org.sopt.lequuServer.domain.member.model.Member; +import org.sopt.lequuServer.domain.member.model.SocialPlatform; +import org.sopt.lequuServer.domain.note.model.Note; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +@Component +@RequiredArgsConstructor +public class InitDb { + private final InitService initService; + + @PostConstruct + public void init() { + initService.dbInit(); + } + + @Component + @Transactional + @RequiredArgsConstructor + static class InitService { + + private final EntityManager em; + + @Transactional + public void dbInit() { + Member member = Member.builder() + .socialPlatform(SocialPlatform.KAKAO) + .socialId("dwq4d1sa68xx1qw61") + .build(); + em.persist(member); + + for (int i = 0; i < 7; i++) { + Book book = Book.builder() + .uuid("dwq65d19asx6qw1c") + .favoriteName(String.valueOf(i)) + .favoriteImage("dqw84dsaac9q9") + .title(String.valueOf(i)) + .description("test") + .backgroundColor(11) + .member(member) + .isPopular(true) + .build(); + em.persist(book); + } + + Book book1 = Book.builder() + .uuid("dwq65d19asx6qw1c") + .favoriteName("test") + .favoriteImage("dqw84dsaac9q9") + .title("test") + .description("test") + .backgroundColor(11) + .member(member) + .isPopular(true) + .build(); + em.persist(book1); + + for (int i = 0; i < 7; i++) { + Note note = Note.builder() + .content(String.valueOf(i)) + .background("back") + .textColor(i) + .member(member) + .book(book1) + .build(); + em.persist(note); + } + } + } +} diff --git a/src/main/java/org/sopt/lequuServer/domain/book/model/Book.java b/src/main/java/org/sopt/lequuServer/domain/book/model/Book.java index 64a3455..e0dda2b 100644 --- a/src/main/java/org/sopt/lequuServer/domain/book/model/Book.java +++ b/src/main/java/org/sopt/lequuServer/domain/book/model/Book.java @@ -59,7 +59,7 @@ public void addPostedSticker(PostedSticker postedSticker) { } @Builder - public Book(String uuid, String favoriteName, String favoriteImage, String title, String description, int backgroundColor, Member member) { + public Book(String uuid, String favoriteName, String favoriteImage, String title, String description, int backgroundColor, Member member, boolean isPopular) { this.uuid = uuid; this.favoriteName = favoriteName; this.favoriteImage = favoriteImage; @@ -67,11 +67,11 @@ public Book(String uuid, String favoriteName, String favoriteImage, String title this.description = description; this.backgroundColor = backgroundColor; this.member = member; - this.isPopular = false; + this.isPopular = isPopular; } - public static Book of(String uuid, String favoriteName, String favoriteImage, String title, String description, int backgroundColor, Member member) { - return new Book(uuid, favoriteName, favoriteImage, title, description, backgroundColor, member); + public static Book of(String uuid, String favoriteName, String favoriteImage, String title, String description, int backgroundColor, Member member, boolean isPopular) { + return new Book(uuid, favoriteName, favoriteImage, title, description, backgroundColor, member, isPopular); } // TODO S3 테스트용, 추후 삭제 diff --git a/src/main/java/org/sopt/lequuServer/domain/note/model/Note.java b/src/main/java/org/sopt/lequuServer/domain/note/model/Note.java index 7b0a18f..d1347eb 100644 --- a/src/main/java/org/sopt/lequuServer/domain/note/model/Note.java +++ b/src/main/java/org/sopt/lequuServer/domain/note/model/Note.java @@ -10,7 +10,8 @@ @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name = "note") -public class Note extends BaseTimeEntity { +public class +Note extends BaseTimeEntity { @Id @Column(name = "note_id") From cbe830f0d56f57c9227e7c7d9571107c7f5802ff Mon Sep 17 00:00:00 2001 From: dong2ast Date: Sun, 7 Jan 2024 11:26:26 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=F0=9F=90=9B=20[FIX]=20style=20=EC=98=A4?= =?UTF-8?q?=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lequuServer/domain/book/repository/BookRepository.java | 2 +- src/main/java/org/sopt/lequuServer/domain/note/model/Note.java | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/sopt/lequuServer/domain/book/repository/BookRepository.java b/src/main/java/org/sopt/lequuServer/domain/book/repository/BookRepository.java index 909408c..54174a3 100644 --- a/src/main/java/org/sopt/lequuServer/domain/book/repository/BookRepository.java +++ b/src/main/java/org/sopt/lequuServer/domain/book/repository/BookRepository.java @@ -8,6 +8,6 @@ import org.springframework.data.repository.query.Param; public interface BookRepository extends JpaRepository { - @Query(value = "select b from Book b where b.isPopular = :isPopular") + @Query(value = "select b from Book b where b.isPopular = :isPopular") List getAllByPopular(@Param("isPopular") Boolean isPopular, PageRequest pageRequest); } \ No newline at end of file diff --git a/src/main/java/org/sopt/lequuServer/domain/note/model/Note.java b/src/main/java/org/sopt/lequuServer/domain/note/model/Note.java index d1347eb..7b0a18f 100644 --- a/src/main/java/org/sopt/lequuServer/domain/note/model/Note.java +++ b/src/main/java/org/sopt/lequuServer/domain/note/model/Note.java @@ -10,8 +10,7 @@ @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name = "note") -public class -Note extends BaseTimeEntity { +public class Note extends BaseTimeEntity { @Id @Column(name = "note_id") From 3e9dfedd0c3b543720248196566e25a1a2a59ad7 Mon Sep 17 00:00:00 2001 From: dong2ast Date: Sun, 7 Jan 2024 19:45:46 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20[REFACTOR]=20=ED=8C=8C?= =?UTF-8?q?=EC=82=AC=EB=93=9C=20=ED=8C=A8=ED=84=B4=20=EA=B5=AC=EC=A1=B0=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/book/controller/BookController.java | 4 ++-- ...eateResponse.java => BookCreateResponseDto.java} | 6 +++--- .../lequuServer/domain/book/facade/BookFacade.java | 11 +++++------ .../domain/book/service/BookService.java | 13 +++---------- .../domain/common/facade/CommonFacade.java | 9 ++++++--- 5 files changed, 19 insertions(+), 24 deletions(-) rename src/main/java/org/sopt/lequuServer/domain/book/dto/response/{BookCreateResponse.java => BookCreateResponseDto.java} (63%) diff --git a/src/main/java/org/sopt/lequuServer/domain/book/controller/BookController.java b/src/main/java/org/sopt/lequuServer/domain/book/controller/BookController.java index 04e77b2..19c29fe 100644 --- a/src/main/java/org/sopt/lequuServer/domain/book/controller/BookController.java +++ b/src/main/java/org/sopt/lequuServer/domain/book/controller/BookController.java @@ -3,7 +3,7 @@ import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.sopt.lequuServer.domain.book.dto.request.BookCreateRequest; -import org.sopt.lequuServer.domain.book.dto.response.BookCreateResponse; +import org.sopt.lequuServer.domain.book.dto.response.BookCreateResponseDto; import org.sopt.lequuServer.domain.book.facade.BookFacade; import org.sopt.lequuServer.global.auth.jwt.JwtProvider; import org.sopt.lequuServer.global.common.dto.ApiResponse; @@ -23,7 +23,7 @@ public class BookController { private final BookFacade bookFacade; @PostMapping - public ApiResponse createBook(@Valid @RequestBody BookCreateRequest request, Principal principal) { + public ApiResponse createBook(@Valid @RequestBody BookCreateRequest request, Principal principal) { return ApiResponse.success(SuccessType.BOOK_CREATE_SUCCESS, bookFacade.createBook(request, JwtProvider.getUserFromPrincial(principal))); } } \ No newline at end of file diff --git a/src/main/java/org/sopt/lequuServer/domain/book/dto/response/BookCreateResponse.java b/src/main/java/org/sopt/lequuServer/domain/book/dto/response/BookCreateResponseDto.java similarity index 63% rename from src/main/java/org/sopt/lequuServer/domain/book/dto/response/BookCreateResponse.java rename to src/main/java/org/sopt/lequuServer/domain/book/dto/response/BookCreateResponseDto.java index fea5441..9e3cd37 100644 --- a/src/main/java/org/sopt/lequuServer/domain/book/dto/response/BookCreateResponse.java +++ b/src/main/java/org/sopt/lequuServer/domain/book/dto/response/BookCreateResponseDto.java @@ -2,12 +2,12 @@ import org.sopt.lequuServer.domain.book.model.Book; -public record BookCreateResponse( +public record BookCreateResponseDto( Long bookId, String bookUuid ) { - public static BookCreateResponse of(Book book) { - return new BookCreateResponse( + public static BookCreateResponseDto of(Book book) { + return new BookCreateResponseDto( book.getId(), book.getUuid() ); diff --git a/src/main/java/org/sopt/lequuServer/domain/book/facade/BookFacade.java b/src/main/java/org/sopt/lequuServer/domain/book/facade/BookFacade.java index 18fd9fd..bf043dd 100644 --- a/src/main/java/org/sopt/lequuServer/domain/book/facade/BookFacade.java +++ b/src/main/java/org/sopt/lequuServer/domain/book/facade/BookFacade.java @@ -1,8 +1,11 @@ package org.sopt.lequuServer.domain.book.facade; +import static org.sopt.lequuServer.global.s3.enums.ImageFolderName.BOOK_FAVORITE_IMAGE_FOLDER_NAME; + +import java.util.UUID; import lombok.RequiredArgsConstructor; import org.sopt.lequuServer.domain.book.dto.request.BookCreateRequest; -import org.sopt.lequuServer.domain.book.dto.response.BookCreateResponse; +import org.sopt.lequuServer.domain.book.dto.response.BookCreateResponseDto; import org.sopt.lequuServer.domain.book.model.Book; import org.sopt.lequuServer.domain.book.service.BookService; import org.sopt.lequuServer.domain.member.model.Member; @@ -11,10 +14,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.UUID; - -import static org.sopt.lequuServer.global.s3.enums.ImageFolderName.BOOK_FAVORITE_IMAGE_FOLDER_NAME; - @Service @RequiredArgsConstructor @Transactional(readOnly = true) @@ -25,7 +24,7 @@ public class BookFacade { private final S3Service s3Service; @Transactional - public BookCreateResponse createBook(BookCreateRequest request, Long memberId) { + public BookCreateResponseDto createBook(BookCreateRequest request, Long memberId) { // 유저 검증이 완료된 후에 새로운 Book 객체를 생성할 수 있는 것 Member member = memberService.getMember(memberId); diff --git a/src/main/java/org/sopt/lequuServer/domain/book/service/BookService.java b/src/main/java/org/sopt/lequuServer/domain/book/service/BookService.java index b6e18f2..97d943c 100644 --- a/src/main/java/org/sopt/lequuServer/domain/book/service/BookService.java +++ b/src/main/java/org/sopt/lequuServer/domain/book/service/BookService.java @@ -1,9 +1,7 @@ package org.sopt.lequuServer.domain.book.service; -import java.util.List; -import org.springframework.data.domain.PageRequest; import lombok.RequiredArgsConstructor; -import org.sopt.lequuServer.domain.book.dto.response.BookCreateResponse; +import org.sopt.lequuServer.domain.book.dto.response.BookCreateResponseDto; import org.sopt.lequuServer.domain.book.model.Book; import org.sopt.lequuServer.domain.book.repository.BookRepository; import org.springframework.stereotype.Service; @@ -16,13 +14,8 @@ public class BookService { private final BookRepository bookRepository; - public List getPopularBook() { - return bookRepository.getAllByPopular(true, PageRequest.of(0, 6)); - } -} - @Transactional - public BookCreateResponse createBook(Book book) { - return BookCreateResponse.of(bookRepository.save(book)); + public BookCreateResponseDto createBook(Book book) { + return BookCreateResponseDto.of(bookRepository.save(book)); } } \ No newline at end of file diff --git a/src/main/java/org/sopt/lequuServer/domain/common/facade/CommonFacade.java b/src/main/java/org/sopt/lequuServer/domain/common/facade/CommonFacade.java index 288e056..483a635 100644 --- a/src/main/java/org/sopt/lequuServer/domain/common/facade/CommonFacade.java +++ b/src/main/java/org/sopt/lequuServer/domain/common/facade/CommonFacade.java @@ -2,10 +2,11 @@ import java.util.List; import lombok.RequiredArgsConstructor; -import org.sopt.lequuServer.domain.book.service.BookService; +import org.sopt.lequuServer.domain.book.repository.BookRepository; import org.sopt.lequuServer.domain.common.dto.response.PopularBookResponseDto; import org.sopt.lequuServer.domain.common.dto.response.SplashDto; import org.sopt.lequuServer.domain.note.service.NoteService; +import org.springframework.data.domain.PageRequest; import org.springframework.stereotype.Service; @Service @@ -13,14 +14,16 @@ public class CommonFacade { private final NoteService noteService; - private final BookService bookService; + private final BookRepository bookRepository; public SplashDto getSplash() { return SplashDto.of(noteService.getAllNoteCount()); } public List getHome() { - return bookService.getPopularBook().stream().map(PopularBookResponseDto::of).toList(); + return bookRepository.getAllByPopular(true, PageRequest.of(0, 6)) + .stream().map(PopularBookResponseDto::of) + .toList(); } }