Merge pull request '콘텐츠 메인 콘텐츠 탭 - 채널별 추천 단편' (#274) from test into main
Reviewed-on: #274
This commit is contained in:
commit
d0178d551c
|
@ -89,8 +89,8 @@ class AudioContentMainTabContentService(
|
||||||
endDate = dailyRankingEndDate
|
endDate = dailyRankingEndDate
|
||||||
)
|
)
|
||||||
|
|
||||||
val salesCountRankContentList = if (contentRankCreatorList.isNotEmpty()) {
|
val likeCountRankContentList = if (contentRankCreatorList.isNotEmpty()) {
|
||||||
rankingService.fetchCreatorContentBySalesCountTop4(
|
rankingService.fetchCreatorContentByLikeCountTop4(
|
||||||
creatorId = contentRankCreatorList[0].creatorId,
|
creatorId = contentRankCreatorList[0].creatorId,
|
||||||
isAdult = member.auth != null
|
isAdult = member.auth != null
|
||||||
)
|
)
|
||||||
|
@ -129,7 +129,8 @@ class AudioContentMainTabContentService(
|
||||||
rankSortTypeList = listOf("매출", "댓글", "좋아요"),
|
rankSortTypeList = listOf("매출", "댓글", "좋아요"),
|
||||||
rankContentList = rankContentList,
|
rankContentList = rankContentList,
|
||||||
contentRankCreatorList = contentRankCreatorList,
|
contentRankCreatorList = contentRankCreatorList,
|
||||||
salesCountRankContentList = salesCountRankContentList,
|
likeCountRankContentList = likeCountRankContentList,
|
||||||
|
salesCountRankContentList = likeCountRankContentList,
|
||||||
eventBannerList = eventBannerList,
|
eventBannerList = eventBannerList,
|
||||||
tagList = tagList,
|
tagList = tagList,
|
||||||
tagCurationContentList = tagCurationContentList,
|
tagCurationContentList = tagCurationContentList,
|
||||||
|
@ -195,7 +196,7 @@ class AudioContentMainTabContentService(
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getPopularContentByCreator(creatorId: Long, isAdult: Boolean): List<GetAudioContentRankingItem> {
|
fun getPopularContentByCreator(creatorId: Long, isAdult: Boolean): List<GetAudioContentRankingItem> {
|
||||||
return rankingService.fetchCreatorContentBySalesCountTop4(
|
return rankingService.fetchCreatorContentByLikeCountTop4(
|
||||||
creatorId = creatorId,
|
creatorId = creatorId,
|
||||||
isAdult = isAdult
|
isAdult = isAdult
|
||||||
)
|
)
|
||||||
|
|
|
@ -15,6 +15,7 @@ data class GetContentMainTabContentResponse(
|
||||||
val rankSortTypeList: List<String>,
|
val rankSortTypeList: List<String>,
|
||||||
val rankContentList: List<GetAudioContentRankingItem>,
|
val rankContentList: List<GetAudioContentRankingItem>,
|
||||||
val contentRankCreatorList: List<ContentCreatorResponse>,
|
val contentRankCreatorList: List<ContentCreatorResponse>,
|
||||||
|
val likeCountRankContentList: List<GetAudioContentRankingItem>,
|
||||||
val salesCountRankContentList: List<GetAudioContentRankingItem>,
|
val salesCountRankContentList: List<GetAudioContentRankingItem>,
|
||||||
val eventBannerList: GetEventResponse,
|
val eventBannerList: GetEventResponse,
|
||||||
val tagList: List<String>,
|
val tagList: List<String>,
|
||||||
|
|
|
@ -537,4 +537,43 @@ class RankingRepository(
|
||||||
.limit(4)
|
.limit(4)
|
||||||
.fetch()
|
.fetch()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun fetchCreatorContentByLikeCountTop4(creatorId: Long, isAdult: Boolean): List<GetAudioContentRankingItem> {
|
||||||
|
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()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -193,6 +193,10 @@ class RankingService(
|
||||||
return repository.fetchCreatorContentBySalesCountTop4(creatorId, isAdult, theme)
|
return repository.fetchCreatorContentBySalesCountTop4(creatorId, isAdult, theme)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun fetchCreatorContentByLikeCountTop4(creatorId: Long, isAdult: Boolean): List<GetAudioContentRankingItem> {
|
||||||
|
return repository.fetchCreatorContentByLikeCountTop4(creatorId, isAdult)
|
||||||
|
}
|
||||||
|
|
||||||
fun fetchCreatorBySeriesRevenueRankTop20(
|
fun fetchCreatorBySeriesRevenueRankTop20(
|
||||||
memberId: Long,
|
memberId: Long,
|
||||||
startDate: LocalDateTime,
|
startDate: LocalDateTime,
|
||||||
|
|
Loading…
Reference in New Issue