관리자 라이브 정산
- 크리에이터 정산 추가데이터가 있으면 해당 데이터에 입력된 정산비율로 계산되도록 수정
This commit is contained in:
		| @@ -4,6 +4,7 @@ import com.querydsl.core.types.dsl.DateTimePath | |||||||
| import com.querydsl.core.types.dsl.Expressions | import com.querydsl.core.types.dsl.Expressions | ||||||
| import com.querydsl.core.types.dsl.StringTemplate | import com.querydsl.core.types.dsl.StringTemplate | ||||||
| import com.querydsl.jpa.impl.JPAQueryFactory | 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.CanUsage | ||||||
| import kr.co.vividnext.sodalive.can.use.QUseCan.useCan | import kr.co.vividnext.sodalive.can.use.QUseCan.useCan | ||||||
| import kr.co.vividnext.sodalive.content.QAudioContent.audioContent | import kr.co.vividnext.sodalive.content.QAudioContent.audioContent | ||||||
| @@ -29,12 +30,15 @@ class AdminCalculateQueryRepository(private val queryFactory: JPAQueryFactory) { | |||||||
|                     liveRoom.price, |                     liveRoom.price, | ||||||
|                     useCan.canUsage, |                     useCan.canUsage, | ||||||
|                     useCan.id.count(), |                     useCan.id.count(), | ||||||
|                     useCan.can.add(useCan.rewardCan).sum() |                     useCan.can.add(useCan.rewardCan).sum(), | ||||||
|  |                     creatorSettlementRatio.liveSettlementRatio | ||||||
|                 ) |                 ) | ||||||
|             ) |             ) | ||||||
|             .from(useCan) |             .from(useCan) | ||||||
|             .innerJoin(useCan.room, liveRoom) |             .innerJoin(useCan.room, liveRoom) | ||||||
|             .innerJoin(liveRoom.member, member) |             .innerJoin(liveRoom.member, member) | ||||||
|  |             .leftJoin(creatorSettlementRatio) | ||||||
|  |             .on(member.id.eq(creatorSettlementRatio.member.id)) | ||||||
|             .where( |             .where( | ||||||
|                 useCan.isRefund.isFalse |                 useCan.isRefund.isFalse | ||||||
|                     .and(liveRoom.beginDateTime.goe(startDate)) |                     .and(liveRoom.beginDateTime.goe(startDate)) | ||||||
|   | |||||||
| @@ -16,7 +16,9 @@ data class GetCalculateLiveQueryData @QueryProjection constructor( | |||||||
|     // 참여인원 |     // 참여인원 | ||||||
|     val memberCount: Long, |     val memberCount: Long, | ||||||
|     // 합계 |     // 합계 | ||||||
|     val totalAmount: Int |     val totalAmount: Int, | ||||||
|  |     // 정산비율 | ||||||
|  |     val settlementRatio: Int? | ||||||
| ) { | ) { | ||||||
|     fun toGetCalculateLiveResponse(): GetCalculateLiveResponse { |     fun toGetCalculateLiveResponse(): GetCalculateLiveResponse { | ||||||
|         val canUsageStr = when (canUsage) { |         val canUsageStr = when (canUsage) { | ||||||
| @@ -46,7 +48,11 @@ data class GetCalculateLiveQueryData @QueryProjection constructor( | |||||||
|         val paymentFee = totalKrw * 0.066f |         val paymentFee = totalKrw * 0.066f | ||||||
|  |  | ||||||
|         // 정산금액 = (원화 - 결제수수료) 의 70% |         // 정산금액 = (원화 - 결제수수료) 의 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% |         // 원천세 = 정산금액의 3.3% | ||||||
|         val tax = settlementAmount * 0.033 |         val tax = settlementAmount * 0.033 | ||||||
|   | |||||||
| @@ -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.QGetCalculateContentQueryData | ||||||
| import kr.co.vividnext.sodalive.admin.calculate.QGetCalculateLiveQueryData | import kr.co.vividnext.sodalive.admin.calculate.QGetCalculateLiveQueryData | ||||||
| import kr.co.vividnext.sodalive.admin.calculate.QGetCumulativeSalesByContentQueryData | 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.CanUsage | ||||||
| import kr.co.vividnext.sodalive.can.use.QUseCan.useCan | import kr.co.vividnext.sodalive.can.use.QUseCan.useCan | ||||||
| import kr.co.vividnext.sodalive.content.QAudioContent.audioContent | import kr.co.vividnext.sodalive.content.QAudioContent.audioContent | ||||||
| @@ -43,12 +44,15 @@ class CreatorAdminCalculateQueryRepository(private val queryFactory: JPAQueryFac | |||||||
|                     liveRoom.price, |                     liveRoom.price, | ||||||
|                     useCan.canUsage, |                     useCan.canUsage, | ||||||
|                     useCan.id.count(), |                     useCan.id.count(), | ||||||
|                     useCan.can.add(useCan.rewardCan).sum() |                     useCan.can.add(useCan.rewardCan).sum(), | ||||||
|  |                     creatorSettlementRatio.liveSettlementRatio | ||||||
|                 ) |                 ) | ||||||
|             ) |             ) | ||||||
|             .from(useCan) |             .from(useCan) | ||||||
|             .innerJoin(useCan.room, liveRoom) |             .innerJoin(useCan.room, liveRoom) | ||||||
|             .innerJoin(liveRoom.member, member) |             .innerJoin(liveRoom.member, member) | ||||||
|  |             .leftJoin(creatorSettlementRatio) | ||||||
|  |             .on(member.id.eq(creatorSettlementRatio.member.id)) | ||||||
|             .where( |             .where( | ||||||
|                 useCan.isRefund.isFalse |                 useCan.isRefund.isFalse | ||||||
|                     .and(liveRoom.beginDateTime.goe(startDate)) |                     .and(liveRoom.beginDateTime.goe(startDate)) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user