diff --git a/src/main/java/leets/weeth/domain/board/application/usecase/PostUseCaseImpl.java b/src/main/java/leets/weeth/domain/board/application/usecase/PostUseCaseImpl.java index 4ba68201..1ad0e60e 100644 --- a/src/main/java/leets/weeth/domain/board/application/usecase/PostUseCaseImpl.java +++ b/src/main/java/leets/weeth/domain/board/application/usecase/PostUseCaseImpl.java @@ -131,7 +131,7 @@ public Slice findEducationPosts(Long userId, Part if (user.hasRole(Role.ADMIN)) { - return postFindService.findByCategory(part, Category.Education, pageNumber, pageSize) + return postFindService.findByCategory(part, Category.Education, cardinalNumber, pageNumber, pageSize) .map(post -> mapper.toEducationAll(post, checkFileExistsByPost(post.getId()))); } diff --git a/src/main/java/leets/weeth/domain/board/domain/repository/PostRepository.java b/src/main/java/leets/weeth/domain/board/domain/repository/PostRepository.java index 3070876d..00adb651 100644 --- a/src/main/java/leets/weeth/domain/board/domain/repository/PostRepository.java +++ b/src/main/java/leets/weeth/domain/board/domain/repository/PostRepository.java @@ -82,14 +82,15 @@ OR LOWER(p.content) LIKE LOWER(CONCAT('%', :kw, '%')) SELECT p FROM Post p WHERE p.category = :category + AND (:cardinal IS NULL OR p.cardinalNumber = :cardinal) AND ( :partName = 'ALL' OR FUNCTION('FIND_IN_SET', :partName, p.parts) > 0 OR FUNCTION('FIND_IN_SET', 'ALL', p.parts) > 0 - ) + ) ORDER BY p.id DESC """) - Slice findByCategoryWithPart(@Param("partName") String partName, @Param("category") Category category, Pageable pageable); + Slice findByCategoryAndOptionalCardinalWithPart(@Param("partName") String partName, @Param("category") Category category, @Param("cardinal") Integer cardinal, Pageable pageable); @Query(""" SELECT p diff --git a/src/main/java/leets/weeth/domain/board/domain/service/PostFindService.java b/src/main/java/leets/weeth/domain/board/domain/service/PostFindService.java index 4576d04e..c010253d 100644 --- a/src/main/java/leets/weeth/domain/board/domain/service/PostFindService.java +++ b/src/main/java/leets/weeth/domain/board/domain/service/PostFindService.java @@ -79,10 +79,10 @@ public Slice findEducationByCardinal(Part part, int cardinalNumber, Pageab return postRepository.findByCategoryAndCardinalNumberWithPart(partName, Category.Education, cardinalNumber, pageable); } - public Slice findByCategory(Part part, Category category, int pageNumber, int pageSize) { + public Slice findByCategory(Part part, Category category, Integer cardinal, int pageNumber, int pageSize) { Pageable pageable = PageRequest.of(pageNumber, pageSize, Sort.by(Sort.Direction.DESC, "id")); String partName = (part != null ? part.name() : Part.ALL.name()); - return postRepository.findByCategoryWithPart(partName, category, pageable); + return postRepository.findByCategoryAndOptionalCardinalWithPart(partName, category, cardinal, pageable); } }