라이브 방 후원랭킹 #230

Merged
klaus merged 1 commits from test into main 2024-10-30 05:16:06 +00:00
1 changed files with 11 additions and 1 deletions

View File

@ -3,6 +3,7 @@ package kr.co.vividnext.sodalive.live.room
import com.querydsl.core.types.Projections
import com.querydsl.core.types.dsl.CaseBuilder
import com.querydsl.core.types.dsl.Expressions
import com.querydsl.core.types.dsl.NumberExpression
import com.querydsl.jpa.impl.JPAQueryFactory
import kr.co.vividnext.sodalive.can.use.CanUsage
import kr.co.vividnext.sodalive.can.use.QUseCan.useCan
@ -248,6 +249,15 @@ class LiveRoomQueryRepositoryImpl(
.and(useCan.canUsage.eq(CanUsage.DONATION).or(useCan.canUsage.eq(CanUsage.SPIN_ROULETTE)))
.and(useCan.isRefund.isFalse)
val sortExpression: NumberExpression<Int> = if (isLiveCreator) {
useCan.can.sum().add(useCan.rewardCan.sum())
} else {
CaseBuilder()
.`when`(useCan.isSecret.isFalse)
.then(useCan.can.sum().add(useCan.rewardCan.sum()))
.otherwise(0)
}
return queryFactory
.select(
QGetLiveRoomDonationItem(
@ -283,7 +293,7 @@ class LiveRoomQueryRepositoryImpl(
.join(useCan.member, member)
.groupBy(useCan.member.id)
.where(where)
.orderBy(useCan.can.sum().add(useCan.rewardCan.sum()).desc())
.orderBy(sortExpression.desc())
.fetch()
}