From 4b1c2e36ed2e91bd74794238f6ae9baf68eefd7f Mon Sep 17 00:00:00 2001 From: Klaus Date: Tue, 25 Feb 2025 23:42:23 +0900 Subject: [PATCH] =?UTF-8?q?=EC=BD=98=ED=85=90=EC=B8=A0=20=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=20=EC=BD=98=ED=85=90=EC=B8=A0=20=ED=83=AD=20-=20?= =?UTF-8?q?=EC=B1=84=EB=84=90=EB=B3=84=20=EC=B6=94=EC=B2=9C=20=EB=8B=A8?= =?UTF-8?q?=ED=8E=B8=20-=20=EC=A2=8B=EC=95=84=EC=9A=94=20=EA=B0=9C?= =?UTF-8?q?=EC=88=98=EB=A5=BC=20=EA=B8=B0=EC=A4=80=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EB=82=B4=EB=A6=BC=EC=B0=A8=EC=88=9C=20=EC=A0=95=EB=A0=AC?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AudioContentMainTabContentService.kt | 9 +++-- .../GetContentMainTabContentResponse.kt | 1 + .../sodalive/rank/RankingRepository.kt | 39 +++++++++++++++++++ .../vividnext/sodalive/rank/RankingService.kt | 4 ++ 4 files changed, 49 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/AudioContentMainTabContentService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/AudioContentMainTabContentService.kt index 12da8e8..f84b518 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/AudioContentMainTabContentService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/AudioContentMainTabContentService.kt @@ -89,8 +89,8 @@ class AudioContentMainTabContentService( endDate = dailyRankingEndDate ) - val salesCountRankContentList = if (contentRankCreatorList.isNotEmpty()) { - rankingService.fetchCreatorContentBySalesCountTop4( + val likeCountRankContentList = if (contentRankCreatorList.isNotEmpty()) { + rankingService.fetchCreatorContentByLikeCountTop4( creatorId = contentRankCreatorList[0].creatorId, isAdult = member.auth != null ) @@ -129,7 +129,8 @@ class AudioContentMainTabContentService( rankSortTypeList = listOf("매출", "댓글", "좋아요"), rankContentList = rankContentList, contentRankCreatorList = contentRankCreatorList, - salesCountRankContentList = salesCountRankContentList, + likeCountRankContentList = likeCountRankContentList, + salesCountRankContentList = likeCountRankContentList, eventBannerList = eventBannerList, tagList = tagList, tagCurationContentList = tagCurationContentList, @@ -195,7 +196,7 @@ class AudioContentMainTabContentService( } fun getPopularContentByCreator(creatorId: Long, isAdult: Boolean): List { - return rankingService.fetchCreatorContentBySalesCountTop4( + return rankingService.fetchCreatorContentByLikeCountTop4( creatorId = creatorId, isAdult = isAdult ) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/GetContentMainTabContentResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/GetContentMainTabContentResponse.kt index da16051..499cf03 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/GetContentMainTabContentResponse.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/GetContentMainTabContentResponse.kt @@ -15,6 +15,7 @@ data class GetContentMainTabContentResponse( val rankSortTypeList: List, val rankContentList: List, val contentRankCreatorList: List, + val likeCountRankContentList: List, val salesCountRankContentList: List, val eventBannerList: GetEventResponse, val tagList: List, diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/rank/RankingRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/rank/RankingRepository.kt index 6af0656..55427ba 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/rank/RankingRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/rank/RankingRepository.kt @@ -537,4 +537,43 @@ class RankingRepository( .limit(4) .fetch() } + + fun fetchCreatorContentByLikeCountTop4(creatorId: Long, isAdult: Boolean): List { + var where = member.isActive.isTrue + .and(member.id.eq(creatorId)) + .and(member.role.eq(MemberRole.CREATOR)) + .and(audioContent.isActive.isTrue) + .and(audioContent.duration.isNotNull) + .and(audioContent.limited.isNull) + .and(audioContentLike.isActive.isTrue) + + if (!isAdult) { + where = where.and(audioContent.isAdult.isFalse) + } + + return queryFactory + .select( + QGetAudioContentRankingItem( + audioContent.id, + audioContent.title, + audioContent.coverImage.prepend("/").prepend(imageHost), + audioContentTheme.theme, + audioContent.price, + audioContent.duration, + member.id, + member.nickname, + member.profileImage.prepend("/").prepend(imageHost) + ) + ) + .from(audioContentLike) + .innerJoin(audioContentLike.audioContent, audioContent) + .innerJoin(audioContent.theme, audioContentTheme) + .innerJoin(audioContent.member, member) + .where(where) + .groupBy(audioContent.id) + .orderBy(audioContentLike.id.count().desc()) + .offset(0) + .limit(4) + .fetch() + } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/rank/RankingService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/rank/RankingService.kt index 630008d..b114ae9 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/rank/RankingService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/rank/RankingService.kt @@ -193,6 +193,10 @@ class RankingService( return repository.fetchCreatorContentBySalesCountTop4(creatorId, isAdult, theme) } + fun fetchCreatorContentByLikeCountTop4(creatorId: Long, isAdult: Boolean): List { + return repository.fetchCreatorContentByLikeCountTop4(creatorId, isAdult) + } + fun fetchCreatorBySeriesRevenueRankTop20( memberId: Long, startDate: LocalDateTime, -- 2.40.1