From 0b8e5500972f4216126cf85cb32aab1f8e412a68 Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 21 Aug 2025 17:56:27 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20exclude=3D=3Dnull=E4=B8=8D=E5=88=97?= =?UTF-8?q?=E5=85=A5=E7=B2=BE=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/openisle/service/PostService.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/backend/src/main/java/com/openisle/service/PostService.java b/backend/src/main/java/com/openisle/service/PostService.java index d62a7fa40..a3038d478 100644 --- a/backend/src/main/java/com/openisle/service/PostService.java +++ b/backend/src/main/java/com/openisle/service/PostService.java @@ -464,13 +464,14 @@ public class PostService { return paginate(sortByPinnedAndCreated(posts), page, pageSize); } - public List listFeaturedPosts(java.util.List categoryIds, - java.util.List tagIds, + public List listFeaturedPosts(List categoryIds, + List tagIds, Integer page, Integer pageSize) { List posts; boolean hasCategories = categoryIds != null && !categoryIds.isEmpty(); boolean hasTags = tagIds != null && !tagIds.isEmpty(); + if (hasCategories && hasTags) { posts = listPostsByCategoriesAndTags(categoryIds, tagIds, null, null); } else if (hasCategories) { @@ -480,10 +481,17 @@ public class PostService { } else { posts = listPosts(); } - posts = posts.stream().filter(p -> !Boolean.TRUE.equals(p.getRssExcluded())).toList(); + + // 仅保留 getRssExcluded 为 0 且不为空 + // 若字段类型是 Boolean(包装类型),0 等价于 false: + posts = posts.stream() + .filter(p -> p.getRssExcluded() != null && !p.getRssExcluded()) + .toList(); + return paginate(sortByPinnedAndCreated(posts), page, pageSize); } + public List listPendingPosts() { return postRepository.findByStatus(PostStatus.PENDING); }