From fc967cc14a3f33f755cdd88fbe97d0dbf4e31fb5 Mon Sep 17 00:00:00 2001 From: GiJungPark Date: Sun, 31 May 2026 00:48:16 +0900 Subject: [PATCH] =?UTF-8?q?[FIX]=20=EB=B9=84=EA=B3=B5=EA=B0=9C=20=EA=B8=80?= =?UTF-8?q?=20=EC=97=AC=EB=B6=80=EB=A5=BC=20=EC=95=A0=ED=94=8C=EB=A6=AC?= =?UTF-8?q?=EC=BC=80=EC=9D=B4=EC=85=98=20=EB=A1=9C=EC=A7=81=EC=9D=B4=20?= =?UTF-8?q?=EC=95=84=EB=8B=8C=20=EC=BF=BC=EB=A6=AC=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EA=B2=80=EC=A6=9D=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../websoso/WSSServer/application/FeedFindApplication.java | 1 + .../WSSServer/feed/repository/FeedCustomRepositoryImpl.java | 6 ++++-- .../websoso/WSSServer/feed/repository/FeedRepository.java | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/websoso/WSSServer/application/FeedFindApplication.java b/src/main/java/org/websoso/WSSServer/application/FeedFindApplication.java index a951e640..fa17f6be 100644 --- a/src/main/java/org/websoso/WSSServer/application/FeedFindApplication.java +++ b/src/main/java/org/websoso/WSSServer/application/FeedFindApplication.java @@ -95,6 +95,7 @@ public FeedsGetResponse getFeeds(User user, Long lastFeedId, int size, Slice feeds = findFeedsByCategoryLabel(lastFeedId, userIdOrNull, PageRequest.of(DEFAULT_PAGE_NUMBER, size), feedGetOption, genres); + // TODO: feed -> feed.isVisibleTo(userIdOrNull) 해당 필터링 로직은 필요 없음 List feedGetResponses = feeds.getContent().stream().filter(feed -> feed.isVisibleTo(userIdOrNull)) .map(feed -> createFeedInfo(feed, user)).toList(); diff --git a/src/main/java/org/websoso/WSSServer/feed/repository/FeedCustomRepositoryImpl.java b/src/main/java/org/websoso/WSSServer/feed/repository/FeedCustomRepositoryImpl.java index a6746300..8fa960df 100644 --- a/src/main/java/org/websoso/WSSServer/feed/repository/FeedCustomRepositoryImpl.java +++ b/src/main/java/org/websoso/WSSServer/feed/repository/FeedCustomRepositoryImpl.java @@ -156,7 +156,8 @@ public Slice findRecommendedFeeds(Long lastFeedId, Long userId, PageReques checkPopularFeed(), checkGenresAndNovels(genres, true), checkBlocking(userId), - checkHidden() + checkHidden(), + checkVisible(userId) ) .limit(pageRequest.getPageSize() + 1) .orderBy(feed.feedId.desc()) @@ -181,7 +182,8 @@ public Slice findInterestedNovelFeeds(Long lastFeedId, Long userId, PageRe ltFeedId(lastFeedId), checkBlocking(userId), checkHidden(), - checkInterestedNovels(userId) + checkInterestedNovels(userId), + checkVisible(userId) ) .limit(pageRequest.getPageSize() + 1) .orderBy(feed.feedId.desc()) diff --git a/src/main/java/org/websoso/WSSServer/feed/repository/FeedRepository.java b/src/main/java/org/websoso/WSSServer/feed/repository/FeedRepository.java index 8d777c26..1fddaaa6 100644 --- a/src/main/java/org/websoso/WSSServer/feed/repository/FeedRepository.java +++ b/src/main/java/org/websoso/WSSServer/feed/repository/FeedRepository.java @@ -18,6 +18,7 @@ public interface FeedRepository extends JpaRepository, FeedCustomRep @Query(value = "SELECT f FROM Feed f WHERE " + "(:lastFeedId = 0 OR f.feedId < :lastFeedId) " + "AND f.isHidden = false " + + "AND (f.isPublic = true OR f.user.userId = :userId)" + "AND (:userId IS NULL " + "OR f.user.userId NOT IN (SELECT b.blockedId FROM Block b WHERE b.blockingId = :userId)) " + "ORDER BY f.feedId DESC") @@ -29,6 +30,7 @@ public interface FeedRepository extends JpaRepository, FeedCustomRep + "(:lastFeedId = 0 OR f.feedId < :lastFeedId) " + "AND f.novelId = :novelId " + "AND f.isHidden = false " + + "AND (f.isPublic = true OR f.user.userId = :userId)" + "AND (:userId IS NULL " + "OR f.user.userId NOT IN (SELECT b.blockedId FROM Block b WHERE b.blockingId = :userId)) " + "ORDER BY f.feedId DESC")