Skip to content

Commit fffbd3d

Browse files
authored
[fix] 삭제된 게시글 조회 버그 수정#293
[fix] 삭제된 게시글 조회 버그 수정#293
2 parents 8dc1b3d + 128abed commit fffbd3d

File tree

2 files changed

+34
-30
lines changed

2 files changed

+34
-30
lines changed
Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.back.domain.post.post.repository;
22

33
import com.back.domain.post.post.entity.Post;
4+
import com.back.domain.post.post.enums.PostStatus;
45
import java.util.List;
56
import org.springframework.data.jpa.repository.JpaRepository;
67
import org.springframework.stereotype.Repository;
@@ -9,28 +10,31 @@
910
public interface PostRepository extends JpaRepository<Post, Long> {
1011

1112
// 최신순 (카테고리 없음)
12-
List<Post> findTop10ByOrderByIdDesc();
13-
List<Post> findTop10ByIdLessThanOrderByIdDesc(Long lastId);
13+
List<Post> findTop10ByStatusNotOrderByIdDesc(PostStatus status);
14+
List<Post> findTop10ByStatusNotAndIdLessThanOrderByIdDesc(PostStatus status, Long lastId);
1415

1516
// 추천순 (카테고리 없음)
16-
List<Post> findTop10ByOrderByLikeCountDescIdDesc();
17-
List<Post> findTop10ByLikeCountLessThanOrLikeCountEqualsAndIdLessThanOrderByLikeCountDescIdDesc(
18-
Integer likeCount, Integer likeCount2, Long id);
17+
List<Post> findTop10ByStatusNotOrderByLikeCountDescIdDesc(PostStatus status);
18+
List<Post> findTop10ByStatusNotAndLikeCountLessThanOrLikeCountEqualsAndIdLessThanOrderByLikeCountDescIdDesc(
19+
PostStatus status, Integer likeCount, Integer likeCount2, Long id);
1920

2021
// 댓글순 (카테고리 없음)
21-
List<Post> findTop10ByOrderByCommentCountDescIdDesc();
22-
List<Post> findTop10ByCommentCountLessThanOrCommentCountEqualsAndIdLessThanOrderByCommentCountDescIdDesc(
23-
Integer commentCount, Integer commentCount2, Long id);
22+
List<Post> findTop10ByStatusNotOrderByCommentCountDescIdDesc(PostStatus status);
23+
List<Post> findTop10ByStatusNotAndCommentCountLessThanOrCommentCountEqualsAndIdLessThanOrderByCommentCountDescIdDesc(
24+
PostStatus status, Integer commentCount, Integer commentCount2, Long id);
2425

2526
// 최신순 (카테고리)
26-
List<Post> findTop10ByCategoryIdOrderByIdDesc(Long categoryId);
27-
List<Post> findTop10ByCategoryIdAndIdLessThanOrderByIdDesc(Long categoryId, Long id);
27+
List<Post> findTop10ByCategoryIdAndStatusNotOrderByIdDesc(Long categoryId, PostStatus status);
28+
List<Post> findTop10ByCategoryIdAndStatusNotAndIdLessThanOrderByIdDesc(Long categoryId, PostStatus status, Long id);
2829

2930
// 추천순 (카테고리)
30-
List<Post> findTop10ByCategoryIdOrderByLikeCountDescIdDesc(Long categoryId);
31-
List<Post> findTop10ByCategoryIdAndLikeCountLessThanOrLikeCountEqualsAndIdLessThanOrderByLikeCountDescIdDesc(Long categoryId, Integer likeCount, Integer likeCountEquals, Long id);
31+
List<Post> findTop10ByCategoryIdAndStatusNotOrderByLikeCountDescIdDesc(Long categoryId, PostStatus status);
32+
List<Post> findTop10ByCategoryIdAndStatusNotAndLikeCountLessThanOrLikeCountEqualsAndIdLessThanOrderByLikeCountDescIdDesc(
33+
Long categoryId, PostStatus status, Integer likeCount, Integer likeCountEquals, Long id);
3234

3335
// 댓글순 (카테고리)
34-
List<Post> findTop10ByCategoryIdOrderByCommentCountDescIdDesc(Long categoryId);
35-
List<Post> findTop10ByCategoryIdAndCommentCountLessThanOrCommentCountEqualsAndIdLessThanOrderByCommentCountDescIdDesc(Long categoryId, Integer commentCount, Integer commentCountEquals, Long id);
36+
List<Post> findTop10ByCategoryIdAndStatusNotOrderByCommentCountDescIdDesc(Long categoryId, PostStatus status);
37+
List<Post> findTop10ByCategoryIdAndStatusNotAndCommentCountLessThanOrCommentCountEqualsAndIdLessThanOrderByCommentCountDescIdDesc(
38+
Long categoryId, PostStatus status, Integer commentCount, Integer commentCountEquals, Long id);
3639
}
40+

src/main/java/com/back/domain/post/post/service/PostService.java

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -292,23 +292,23 @@ private List<Post> findAllPosts(PostSortScrollRequestDto reqBody) {
292292
return switch (reqBody.postSortStatus()) {
293293
case POPULAR -> {
294294
if (reqBody.lastId() == null || reqBody.lastLikeCount() == null) {
295-
yield postRepository.findTop10ByOrderByLikeCountDescIdDesc();
295+
yield postRepository.findTop10ByStatusNotOrderByLikeCountDescIdDesc(PostStatus.DELETED);
296296
} else {
297-
yield postRepository.findTop10ByLikeCountLessThanOrLikeCountEqualsAndIdLessThanOrderByLikeCountDescIdDesc(reqBody.lastLikeCount(), reqBody.lastLikeCount(), reqBody.lastId());
297+
yield postRepository.findTop10ByStatusNotAndLikeCountLessThanOrLikeCountEqualsAndIdLessThanOrderByLikeCountDescIdDesc(PostStatus.DELETED, reqBody.lastLikeCount(), reqBody.lastLikeCount(), reqBody.lastId());
298298
}
299299
}
300300
case COMMENTS -> {
301301
if (reqBody.lastId() == null || reqBody.lastCommentCount() == null) {
302-
yield postRepository.findTop10ByOrderByCommentCountDescIdDesc();
302+
yield postRepository.findTop10ByStatusNotOrderByCommentCountDescIdDesc(PostStatus.DELETED);
303303
} else {
304-
yield postRepository.findTop10ByCommentCountLessThanOrCommentCountEqualsAndIdLessThanOrderByCommentCountDescIdDesc(reqBody.lastCommentCount(), reqBody.lastCommentCount(), reqBody.lastId());
304+
yield postRepository.findTop10ByStatusNotAndCommentCountLessThanOrCommentCountEqualsAndIdLessThanOrderByCommentCountDescIdDesc(PostStatus.DELETED, reqBody.lastCommentCount(), reqBody.lastCommentCount(), reqBody.lastId());
305305
}
306306
}
307307
case LATEST -> {
308308
if (reqBody.lastId() == null) {
309-
yield postRepository.findTop10ByOrderByIdDesc();
309+
yield postRepository.findTop10ByStatusNotOrderByIdDesc(PostStatus.DELETED);
310310
} else {
311-
yield postRepository.findTop10ByIdLessThanOrderByIdDesc(reqBody.lastId());
311+
yield postRepository.findTop10ByStatusNotAndIdLessThanOrderByIdDesc(PostStatus.DELETED, reqBody.lastId());
312312
}
313313
}
314314
default -> throw new IllegalArgumentException("지원하지 않는 정렬 기준: " + reqBody.postSortStatus());
@@ -320,29 +320,29 @@ private List<Post> findPostsByCategory(PostSortScrollRequestDto reqBody) {
320320
return switch (reqBody.postSortStatus()) {
321321
case POPULAR -> {
322322
if (reqBody.lastId() == null || reqBody.lastLikeCount() == null) {
323-
yield postRepository.findTop10ByCategoryIdOrderByLikeCountDescIdDesc(
324-
reqBody.categoryId());
323+
yield postRepository.findTop10ByCategoryIdAndStatusNotOrderByLikeCountDescIdDesc(
324+
reqBody.categoryId(), PostStatus.DELETED);
325325
} else {
326-
yield postRepository.findTop10ByCategoryIdAndLikeCountLessThanOrLikeCountEqualsAndIdLessThanOrderByLikeCountDescIdDesc(
327-
reqBody.categoryId(), reqBody.lastLikeCount(), reqBody.lastLikeCount(),
326+
yield postRepository.findTop10ByCategoryIdAndStatusNotAndLikeCountLessThanOrLikeCountEqualsAndIdLessThanOrderByLikeCountDescIdDesc(
327+
reqBody.categoryId(), PostStatus.DELETED, reqBody.lastLikeCount(), reqBody.lastLikeCount(),
328328
reqBody.lastId());
329329
}
330330
}
331331
case COMMENTS -> {
332332
if (reqBody.lastId() == null || reqBody.lastCommentCount() == null) {
333-
yield postRepository.findTop10ByCategoryIdOrderByCommentCountDescIdDesc(
334-
reqBody.categoryId());
333+
yield postRepository.findTop10ByCategoryIdAndStatusNotOrderByCommentCountDescIdDesc(
334+
reqBody.categoryId(), PostStatus.DELETED);
335335
} else {
336-
yield postRepository.findTop10ByCategoryIdAndCommentCountLessThanOrCommentCountEqualsAndIdLessThanOrderByCommentCountDescIdDesc(
337-
reqBody.categoryId(), reqBody.lastCommentCount(), reqBody.lastCommentCount(),
336+
yield postRepository.findTop10ByCategoryIdAndStatusNotAndCommentCountLessThanOrCommentCountEqualsAndIdLessThanOrderByCommentCountDescIdDesc(
337+
reqBody.categoryId(), PostStatus.DELETED, reqBody.lastCommentCount(), reqBody.lastCommentCount(),
338338
reqBody.lastId());
339339
}
340340
}
341341
case LATEST -> {
342342
if (reqBody.lastId() == null) {
343-
yield postRepository.findTop10ByCategoryIdOrderByIdDesc(reqBody.categoryId());
343+
yield postRepository.findTop10ByCategoryIdAndStatusNotOrderByIdDesc(reqBody.categoryId(), PostStatus.DELETED);
344344
} else {
345-
yield postRepository.findTop10ByCategoryIdAndIdLessThanOrderByIdDesc(reqBody.categoryId(),
345+
yield postRepository.findTop10ByCategoryIdAndStatusNotAndIdLessThanOrderByIdDesc(reqBody.categoryId(), PostStatus.DELETED,
346346
reqBody.lastId());
347347
}
348348
}

0 commit comments

Comments
 (0)