라이브 방 후원랭킹 #230
|
@ -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()
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue