From d3483c80626860252cf1cdd85a360779377ca3e4 Mon Sep 17 00:00:00 2001 From: Klaus Date: Tue, 2 Jul 2024 17:40:41 +0900 Subject: [PATCH] =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EC=A0=95?= =?UTF-8?q?=EC=82=B0,=20=EC=9D=BC=EC=9E=90=EB=B3=84=20=EC=BD=98=ED=85=90?= =?UTF-8?q?=EC=B8=A0=20=EC=A0=95=EC=82=B0,=20=EC=BD=98=ED=85=90=EC=B8=A0?= =?UTF-8?q?=EB=B3=84=20=EB=88=84=EC=A0=81=20=ED=98=84=ED=99=A9,=20?= =?UTF-8?q?=ED=9B=84=EC=9B=90=EC=A0=95=EC=82=B0,=20=EC=BB=A4=EB=AE=A4?= =?UTF-8?q?=EB=8B=88=ED=8B=B0=20=EC=A0=95=EC=82=B0=20-=20float=20=EB=8C=80?= =?UTF-8?q?=EC=8B=A0=20bigdecimal=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GetCalculateCommunityPostQueryData.kt | 21 +++++++++++++------ .../GetCalculateContentDonationQueryData.kt | 12 +++++------ .../calculate/GetCalculateContentQueryData.kt | 20 ++++++++++++------ .../calculate/GetCalculateLiveQueryData.kt | 12 +++++------ .../GetCumulativeSalesByContentResponse.kt | 13 ++++++------ 5 files changed, 47 insertions(+), 31 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCalculateCommunityPostQueryData.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCalculateCommunityPostQueryData.kt index 409caa5..009eeb9 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCalculateCommunityPostQueryData.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCalculateCommunityPostQueryData.kt @@ -14,15 +14,24 @@ data class GetCalculateCommunityPostQueryData @QueryProjection constructor( val settlementRatio: Int? ) { fun toGetCalculateCommunityPostResponse(): GetCalculateCommunityPostResponse { - val totalKrw = BigDecimal(totalCan) * BigDecimal(100) - val paymentFee = totalKrw * BigDecimal(0.066) + // 원화 = totalCoin * 100 ( 캔 1개 = 100원 ) + val totalKrw = BigDecimal(totalCan).multiply(BigDecimal(100)) + + // 결제수수료 : 6.6% + val paymentFee = totalKrw.multiply(BigDecimal(0.066)) + + // 정산금액 = (원화 - 결제수수료) 의 70% val settlementAmount = if (settlementRatio != null) { - (totalKrw - paymentFee) * (BigDecimal(settlementRatio) / BigDecimal(100.0)) + totalKrw.subtract(paymentFee).multiply(BigDecimal(settlementRatio).divide(BigDecimal(100.0))) } else { - (totalKrw - paymentFee) * BigDecimal(0.7) + totalKrw.subtract(paymentFee).multiply(BigDecimal(0.7)) } - val tax = settlementAmount * BigDecimal(0.033) - val depositAmount = settlementAmount - tax + + // 원천세 = 정산금액의 3.3% + val tax = settlementAmount.multiply(BigDecimal(0.033)) + + // 입금액 + val depositAmount = settlementAmount.subtract(tax) return GetCalculateCommunityPostResponse( nickname = nickname, diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCalculateContentDonationQueryData.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCalculateContentDonationQueryData.kt index 480d20a..6757611 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCalculateContentDonationQueryData.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCalculateContentDonationQueryData.kt @@ -22,25 +22,25 @@ data class GetCalculateContentDonationQueryData @QueryProjection constructor( ) { fun toGetCalculateContentDonationResponse(): GetCalculateContentDonationResponse { // 원화 = totalCoin * 100 ( 캔 1개 = 100원 ) - val totalKrw = BigDecimal(totalCan) * BigDecimal(100) + val totalKrw = BigDecimal(totalCan).multiply(BigDecimal(100)) // 결제수수료 : 6.6% - val paymentFee = totalKrw * BigDecimal(0.066) + val paymentFee = totalKrw.multiply(BigDecimal(0.066)) // 정산금액 // 유료콘텐츠 (원화 - 결제수수료) 의 90% // 무료콘텐츠 (원화 - 결제수수료) 의 70% val settlementAmount = if (price > 0) { - (totalKrw - paymentFee) * BigDecimal(0.9) + (totalKrw - paymentFee).multiply(BigDecimal(0.9)) } else { - (totalKrw - paymentFee) * BigDecimal(0.7) + (totalKrw - paymentFee).multiply(BigDecimal(0.7)) } // 원천세 = 정산금액의 3.3% - val tax = settlementAmount * BigDecimal(0.033) + val tax = settlementAmount.multiply(BigDecimal(0.033)) // 입금액 - val depositAmount = settlementAmount - tax + val depositAmount = settlementAmount.subtract(tax) val paidOrFree = if (price > 0) { "유료" diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCalculateContentQueryData.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCalculateContentQueryData.kt index de928dd..cf0a0c6 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCalculateContentQueryData.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCalculateContentQueryData.kt @@ -32,15 +32,23 @@ data class GetCalculateContentQueryData @QueryProjection constructor( "소장" } - val totalKrw = BigDecimal(totalCan) * BigDecimal(100) - val paymentFee = totalKrw * BigDecimal(0.066) + // 원화 = totalCoin * 100 ( 캔 1개 = 100원 ) + val totalKrw = BigDecimal(totalCan).multiply(BigDecimal(100)) + + // 결제수수료 : 6.6% + val paymentFee = totalKrw.multiply(BigDecimal(0.066)) + + // 정산금액 = (원화 - 결제수수료) 의 70% val settlementAmount = if (settlementRatio != null) { - (totalKrw - paymentFee) * (BigDecimal(settlementRatio) / BigDecimal(100.0)) + totalKrw.subtract(paymentFee).multiply(BigDecimal(settlementRatio).divide(BigDecimal(100.0))) } else { - (totalKrw - paymentFee) * BigDecimal(0.7) + totalKrw.subtract(paymentFee).multiply(BigDecimal(0.7)) } - val tax = settlementAmount * BigDecimal(0.033) - val depositAmount = settlementAmount - tax + + // 원천세 = 정산금액의 3.3% + val tax = settlementAmount.multiply(BigDecimal(0.033)) + + val depositAmount = settlementAmount.subtract(tax) return GetCalculateContentResponse( nickname = nickname, 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 52d5e61..41b6515 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 @@ -43,23 +43,23 @@ data class GetCalculateLiveQueryData @QueryProjection constructor( } // 원화 = totalCoin * 100 ( 캔 1개 = 100원 ) - val totalKrw = BigDecimal(totalAmount) * BigDecimal(100) + val totalKrw = BigDecimal(totalAmount).multiply(BigDecimal(100)) // 결제수수료 : 6.6% - val paymentFee = totalKrw * BigDecimal(0.066) + val paymentFee = totalKrw.multiply(BigDecimal(0.066)) // 정산금액 = (원화 - 결제수수료) 의 70% val settlementAmount = if (settlementRatio != null) { - (totalKrw - paymentFee) * (BigDecimal(settlementRatio) / BigDecimal(100.0)) + totalKrw.subtract(paymentFee).multiply(BigDecimal(settlementRatio).divide(BigDecimal(100.0))) } else { - (totalKrw - paymentFee) * BigDecimal(0.7) + totalKrw.subtract(paymentFee).multiply(BigDecimal(0.7)) } // 원천세 = 정산금액의 3.3% - val tax = settlementAmount * BigDecimal(0.033) + val tax = settlementAmount.multiply(BigDecimal(0.033)) // 입금액 - val depositAmount = settlementAmount - tax + val depositAmount = settlementAmount.subtract(tax) return GetCalculateLiveResponse( email = email, diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCumulativeSalesByContentResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCumulativeSalesByContentResponse.kt index 34d7ce2..5c49858 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCumulativeSalesByContentResponse.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/GetCumulativeSalesByContentResponse.kt @@ -32,24 +32,23 @@ data class GetCumulativeSalesByContentQueryData @QueryProjection constructor( } // 원화 = totalCoin * 100 ( 캔 1개 = 100원 ) - val totalKrw = BigDecimal(totalCan) * BigDecimal(100) + val totalKrw = BigDecimal(totalCan).multiply(BigDecimal(100)) // 결제수수료 : 6.6% - val paymentFee = totalKrw * BigDecimal(0.066) + val paymentFee = totalKrw.multiply(BigDecimal(0.066)) - // 정산금액 = (원화 - 결제수수료) 의 70% // 정산금액 = (원화 - 결제수수료) 의 70% val settlementAmount = if (settlementRatio != null) { - (totalKrw - paymentFee) * (BigDecimal(settlementRatio) / BigDecimal(100.0)) + totalKrw.subtract(paymentFee).multiply(BigDecimal(settlementRatio).divide(BigDecimal(100.0))) } else { - (totalKrw - paymentFee) * BigDecimal(0.7) + totalKrw.subtract(paymentFee).multiply(BigDecimal(0.7)) } // 원천세 = 정산금액의 3.3% - val tax = settlementAmount * BigDecimal(0.033) + val tax = settlementAmount.multiply(BigDecimal(0.033)) // 입금액 - val depositAmount = settlementAmount - tax + val depositAmount = settlementAmount.subtract(tax) return CumulativeSalesByContentItem( nickname = nickname,