diff --git a/src/main/java/org/websoso/WSSServer/dto/feed/UserFeedGetResponse.java b/src/main/java/org/websoso/WSSServer/dto/feed/UserFeedGetResponse.java index 42b515bd..543f5114 100644 --- a/src/main/java/org/websoso/WSSServer/dto/feed/UserFeedGetResponse.java +++ b/src/main/java/org/websoso/WSSServer/dto/feed/UserFeedGetResponse.java @@ -44,8 +44,10 @@ public static UserFeedGetResponse of(Feed feed, Novel novel, Long visitorId) { isLiked, feed.getLikes().size(), feed.getComments().size(), - novel.getNovelId(), - novel.getTitle(), + novel == null ? + null : novel.getNovelId(), + novel == null ? + null : novel.getTitle(), novelRating, novelRatingCount, relevantCategories @@ -69,6 +71,9 @@ private static List getLikeUsers(Feed feed) { } private static Long getNovelRatingCount(Novel novel) { + if (novel == null) { + return null; + } return novel.getUserNovels() .stream() .filter(userNovel -> userNovel.getUserNovelRating() != 0.0f) @@ -76,6 +81,10 @@ private static Long getNovelRatingCount(Novel novel) { } private static Float getNovelRatingSum(Novel novel) { + if (novel == null) { + return null; + } + return (float) novel.getUserNovels() .stream() .filter(userNovel -> userNovel.getUserNovelRating() != 0.0f) @@ -83,7 +92,10 @@ private static Float getNovelRatingSum(Novel novel) { .sum(); } - private static float getNovelRating(Novel novel, Long novelRatingCount) { + private static Float getNovelRating(Novel novel, Long novelRatingCount) { + if (novel == null) { + return null; + } return novelRatingCount > 0 ? getNovelRatingSum(novel) / novelRatingCount : 0.0f; diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index b5329739..2338d4ac 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -12,6 +12,7 @@ import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; @@ -333,11 +334,12 @@ public UserFeedsGetResponse getUserFeeds(User visitor, Long ownerId, Long lastFe : visitor.getUserId(); if (owner.getIsProfilePublic() || isOwner(visitor, ownerId)) { - List feedsByNoOffsetPagination = feedRepository.findFeedsByNoOffsetPagination(owner, lastFeedId, - size); + List feedsByNoOffsetPagination = + feedRepository.findFeedsByNoOffsetPagination(owner, lastFeedId, size); List novelIds = feedsByNoOffsetPagination.stream() .map(Feed::getNovelId) + .filter(Objects::nonNull) .collect(Collectors.toList()); Map novelMap = novelRepository.findAllById(novelIds) .stream()