From 7f1fadf0684b21c02459c7f8e5be5cab4b87541a Mon Sep 17 00:00:00 2001 From: Klaus Date: Wed, 30 Oct 2024 14:08:00 +0900 Subject: [PATCH] =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EB=B0=A9=20?= =?UTF-8?q?=ED=9B=84=EC=9B=90=EB=9E=AD=ED=82=B9=20-=20=EB=B0=A9=EC=9E=A5(?= =?UTF-8?q?=ED=81=AC=EB=A6=AC=EC=97=90=EC=9D=B4=ED=84=B0)=EC=9D=B8=20?= =?UTF-8?q?=EA=B2=BD=EC=9A=B0=20=EC=9D=BC=EB=B0=98=ED=9B=84=EC=9B=90?= =?UTF-8?q?=EA=B3=BC=20=EB=B9=84=EB=B0=80=ED=9B=84=EC=9B=90=EC=9D=98=20?= =?UTF-8?q?=ED=95=A9=EC=9D=84=20=EB=82=B4=EB=A6=BC=EC=B0=A8=EC=88=9C?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EC=A0=95=EB=A0=AC=20-=20=EB=A6=AC?= =?UTF-8?q?=EC=8A=A4=EB=84=88=EC=9D=B8=20=EA=B2=BD=EC=9A=B0=20=EC=9D=BC?= =?UTF-8?q?=EB=B0=98=ED=9B=84=EC=9B=90=EC=9D=98=20=ED=95=A9=EB=A7=8C=20?= =?UTF-8?q?=EB=82=B4=EB=A6=BC=EC=B0=A8=EC=88=9C=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=A0=95=EB=A0=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/live/room/LiveRoomRepository.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt index c87176b..afc8c46 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt @@ -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 = 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() }