홈 크리에이터 랭킹 팔로우 조회 최적화

홈 API의 크리에이터 랭킹 응답에서 팔로우 여부를 일괄 조회로 계산한다.
This commit is contained in:
2026-02-12 16:15:58 +09:00
parent 232d97e37e
commit 1ca7e1744d
2 changed files with 30 additions and 11 deletions

View File

@@ -82,18 +82,20 @@ class HomeService(
timezone = timezone
)
val creatorRanking = rankingRepository
.getCreatorRankings(memberId = memberId)
.map {
val followerCount = explorerQueryRepository.getNotificationUserIds(it.id!!).size
val follow = if (memberId != null) {
explorerQueryRepository.isFollow(it.id!!, memberId = memberId)
} else {
false
}
val creatorRankingMembers = rankingRepository.getCreatorRankings(memberId = memberId)
val creatorRankingIds = creatorRankingMembers.mapNotNull { it.id }
val followedCreatorIds = if (memberId != null) {
explorerQueryRepository.getFollowedCreatorIds(creatorRankingIds, memberId)
} else {
emptySet()
}
it.toExplorerSectionCreator(imageHost, follow, followerCount = followerCount)
}
val creatorRanking = creatorRankingMembers.map { creator ->
val creatorId = creator.id!!
val follow = memberId != null && followedCreatorIds.contains(creatorId)
creator.toExplorerSectionCreator(imageHost, follow)
}
val latestContentThemeList = contentThemeService.getActiveThemeOfContent(
isAdult = isAdult,