From 9396f70f858b68c2784fa55cb0665bfe5ece169e Mon Sep 17 00:00:00 2001 From: Klaus Date: Tue, 11 Jun 2024 16:30:00 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20=EB=9D=BC?= =?UTF-8?q?=EC=9D=B4=EB=B8=8C=20=EC=A0=95=EC=82=B0=20-=20=ED=81=AC?= =?UTF-8?q?=EB=A6=AC=EC=97=90=EC=9D=B4=ED=84=B0=20=EC=A0=95=EC=82=B0=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=EB=8D=B0=EC=9D=B4=ED=84=B0=EA=B0=80=20?= =?UTF-8?q?=EC=9E=88=EC=9C=BC=EB=A9=B4=20=ED=95=B4=EB=8B=B9=20=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=EC=97=90=20=EC=9E=85=EB=A0=A5=EB=90=9C=20?= =?UTF-8?q?=EC=A0=95=EC=82=B0=EB=B9=84=EC=9C=A8=EB=A1=9C=20=EA=B3=84?= =?UTF-8?q?=EC=82=B0=EB=90=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 --- .../admin/calculate/AdminCalculateQueryRepository.kt | 6 +++++- .../admin/calculate/GetCalculateLiveQueryData.kt | 10 ++++++++-- .../calculate/CreatorAdminCalculateQueryRepository.kt | 6 +++++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/AdminCalculateQueryRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/AdminCalculateQueryRepository.kt index b116762..1fb435f 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/AdminCalculateQueryRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/AdminCalculateQueryRepository.kt @@ -4,6 +4,7 @@ import com.querydsl.core.types.dsl.DateTimePath import com.querydsl.core.types.dsl.Expressions import com.querydsl.core.types.dsl.StringTemplate import com.querydsl.jpa.impl.JPAQueryFactory +import kr.co.vividnext.sodalive.admin.calculate.ratio.QCreatorSettlementRatio.creatorSettlementRatio import kr.co.vividnext.sodalive.can.use.CanUsage import kr.co.vividnext.sodalive.can.use.QUseCan.useCan import kr.co.vividnext.sodalive.content.QAudioContent.audioContent @@ -29,12 +30,15 @@ class AdminCalculateQueryRepository(private val queryFactory: JPAQueryFactory) { liveRoom.price, useCan.canUsage, useCan.id.count(), - useCan.can.add(useCan.rewardCan).sum() + useCan.can.add(useCan.rewardCan).sum(), + creatorSettlementRatio.liveSettlementRatio ) ) .from(useCan) .innerJoin(useCan.room, liveRoom) .innerJoin(liveRoom.member, member) + .leftJoin(creatorSettlementRatio) + .on(member.id.eq(creatorSettlementRatio.member.id)) .where( useCan.isRefund.isFalse .and(liveRoom.beginDateTime.goe(startDate)) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCalculateLiveQueryData.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCalculateLiveQueryData.kt index f8b7e02..d372c7f 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCalculateLiveQueryData.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCalculateLiveQueryData.kt @@ -16,7 +16,9 @@ data class GetCalculateLiveQueryData @QueryProjection constructor( // 참여인원 val memberCount: Long, // 합계 - val totalAmount: Int + val totalAmount: Int, + // 정산비율 + val settlementRatio: Int? ) { fun toGetCalculateLiveResponse(): GetCalculateLiveResponse { val canUsageStr = when (canUsage) { @@ -46,7 +48,11 @@ data class GetCalculateLiveQueryData @QueryProjection constructor( val paymentFee = totalKrw * 0.066f // 정산금액 = (원화 - 결제수수료) 의 70% - val settlementAmount = (totalKrw.toFloat() - paymentFee) * 0.7 + val settlementAmount = if (settlementRatio != null) { + (totalKrw.toFloat() - paymentFee) * (settlementRatio.toFloat() / 100.0f) + } else { + (totalKrw.toFloat() - paymentFee) * 0.7f + } // 원천세 = 정산금액의 3.3% val tax = settlementAmount * 0.033 diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/calculate/CreatorAdminCalculateQueryRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/calculate/CreatorAdminCalculateQueryRepository.kt index 7c534d4..ef433f5 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/calculate/CreatorAdminCalculateQueryRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/calculate/CreatorAdminCalculateQueryRepository.kt @@ -14,6 +14,7 @@ import kr.co.vividnext.sodalive.admin.calculate.QGetCalculateContentDonationQuer import kr.co.vividnext.sodalive.admin.calculate.QGetCalculateContentQueryData import kr.co.vividnext.sodalive.admin.calculate.QGetCalculateLiveQueryData import kr.co.vividnext.sodalive.admin.calculate.QGetCumulativeSalesByContentQueryData +import kr.co.vividnext.sodalive.admin.calculate.ratio.QCreatorSettlementRatio.creatorSettlementRatio import kr.co.vividnext.sodalive.can.use.CanUsage import kr.co.vividnext.sodalive.can.use.QUseCan.useCan import kr.co.vividnext.sodalive.content.QAudioContent.audioContent @@ -43,12 +44,15 @@ class CreatorAdminCalculateQueryRepository(private val queryFactory: JPAQueryFac liveRoom.price, useCan.canUsage, useCan.id.count(), - useCan.can.add(useCan.rewardCan).sum() + useCan.can.add(useCan.rewardCan).sum(), + creatorSettlementRatio.liveSettlementRatio ) ) .from(useCan) .innerJoin(useCan.room, liveRoom) .innerJoin(liveRoom.member, member) + .leftJoin(creatorSettlementRatio) + .on(member.id.eq(creatorSettlementRatio.member.id)) .where( useCan.isRefund.isFalse .and(liveRoom.beginDateTime.goe(startDate))