Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 19 additions & 2 deletions src/main/java/org/websoso/WSSServer/dto/feed/FeedInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ public record FeedInfo(
String thumbnailUrl,
Integer imageCount,
String genreName,
Float userNovelRating
Float userNovelRating,
Float feedWriterNovelRating
) {
public static FeedInfo of(Feed feed, UserBasicInfo userBasicInfo, Novel novel, Boolean isLiked,
List<String> relevantCategories, Boolean isMyFeed, String thumbnailUrl,
Expand All @@ -40,6 +41,7 @@ public static FeedInfo of(Feed feed, UserBasicInfo userBasicInfo, Novel novel, B
Float novelRating = null;
String genreName = null;
Float userNovelRating = null;
Float feedWriterNovelRating = null;

if (novel != null) {
List<UserNovel> userNovels = novel.getUserNovels().stream().filter(un -> un.getUserNovelRating() > 0.0)
Expand All @@ -51,6 +53,7 @@ public static FeedInfo of(Feed feed, UserBasicInfo userBasicInfo, Novel novel, B
novelRatingCount);
genreName = getNovelGenreName(novel);
userNovelRating = getUserNovelRating(novel, user);
feedWriterNovelRating = getFeedWriterNovelRating(novel, feed.getUser().getUserId());
}

return new FeedInfo(
Expand All @@ -75,7 +78,8 @@ public static FeedInfo of(Feed feed, UserBasicInfo userBasicInfo, Novel novel, B
thumbnailUrl,
imageCount,
genreName,
userNovelRating
userNovelRating,
feedWriterNovelRating
);
}

Expand Down Expand Up @@ -107,4 +111,17 @@ private static Float getUserNovelRating(Novel novel, User user) {
.orElse(null);
}

private static Float getFeedWriterNovelRating(Novel novel, Long feedWriterId) {
if (novel == null) {
return null;
}

return novel.getUserNovels()
.stream()
.filter(userNovel -> userNovel.getUser().getUserId().equals(feedWriterId))
.findFirst()
.map(UserNovel::getUserNovelRating)
.orElse(null);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ public record UserFeedGetResponse(
String genre,
Float userNovelRating,
String thumbnailUrl,
Integer imageCount
Integer imageCount,
Float feedWriterNovelRating
) {

public static UserFeedGetResponse of(Feed feed, Novel novel, Long visitorId, String thumbnailUrl,
Expand All @@ -41,6 +42,7 @@ public static UserFeedGetResponse of(Feed feed, Novel novel, Long visitorId, Str
List<String> relevantCategories = getFeedCategories(feed);
String genreName = getNovelGenreName(novel);
Float userNovelRating = getUserNovelRating(novel, visitorId);
Float feedWriterNovelRating = getFeedWriterNovelRating(novel, feed.getUser().getUserId());

return new UserFeedGetResponse(
feed.getFeedId(),
Expand All @@ -63,7 +65,8 @@ public static UserFeedGetResponse of(Feed feed, Novel novel, Long visitorId, Str
genreName,
userNovelRating,
thumbnailUrl,
imageCount
imageCount,
feedWriterNovelRating
);
}

Expand Down Expand Up @@ -134,4 +137,17 @@ private static Float getUserNovelRating(Novel novel, Long visitorId) {
.map(UserNovel::getUserNovelRating)
.orElse(null);
}

private static Float getFeedWriterNovelRating(Novel novel, Long feedWriterId) {
if (novel == null) {
return null;
}

return novel.getUserNovels()
.stream()
.filter(userNovel -> userNovel.getUser().getUserId().equals(feedWriterId))
.findFirst()
.map(UserNovel::getUserNovelRating)
.orElse(null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ private BooleanExpression checkPopularFeed() {
}

private BooleanExpression checkGenres(List<Genre> genres) {
if (genres != null && !genres.isEmpty()) {
if (genres != null && !genres.isEmpty() && feed.novelId != null) {
return genre.in(genres);
}
return null;
Expand Down
Loading