From fded23b97d49ed500455fb61b08cff440146eab0 Mon Sep 17 00:00:00 2001 From: Klaus Date: Tue, 2 Jul 2024 14:44:36 +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-=20float=20=EB=8C=80=EC=8B=A0=20bigdecimal?= =?UTF-8?q?=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 --- .../calculate/GetCalculateLiveQueryData.kt | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) 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 d372c7f..c1facb4 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 @@ -2,7 +2,8 @@ package kr.co.vividnext.sodalive.admin.calculate import com.querydsl.core.annotations.QueryProjection import kr.co.vividnext.sodalive.can.use.CanUsage -import kotlin.math.roundToInt +import java.math.BigDecimal +import java.math.RoundingMode data class GetCalculateLiveQueryData @QueryProjection constructor( val email: String, @@ -42,20 +43,20 @@ data class GetCalculateLiveQueryData @QueryProjection constructor( } // 원화 = totalCoin * 100 ( 캔 1개 = 100원 ) - val totalKrw = totalAmount * 100 + val totalKrw = BigDecimal(totalAmount).multiply(BigDecimal(100)) // 결제수수료 : 6.6% - val paymentFee = totalKrw * 0.066f + val paymentFee = totalKrw.multiply(BigDecimal(0.066)) // 정산금액 = (원화 - 결제수수료) 의 70% val settlementAmount = if (settlementRatio != null) { - (totalKrw.toFloat() - paymentFee) * (settlementRatio.toFloat() / 100.0f) + totalKrw.subtract(paymentFee).multiply(BigDecimal(settlementRatio).divide(BigDecimal(100))) } else { - (totalKrw.toFloat() - paymentFee) * 0.7f + totalKrw.subtract(paymentFee).multiply(BigDecimal(0.7)) } // 원천세 = 정산금액의 3.3% - val tax = settlementAmount * 0.033 + val tax = settlementAmount.multiply(BigDecimal(0.033)) // 입금액 val depositAmount = settlementAmount - tax @@ -69,11 +70,11 @@ data class GetCalculateLiveQueryData @QueryProjection constructor( canUsageStr = canUsageStr, numberOfPeople = numberOfPeople, totalAmount = totalAmount, - totalKrw = totalKrw, - paymentFee = paymentFee.roundToInt(), - settlementAmount = settlementAmount.roundToInt(), - tax = tax.roundToInt(), - depositAmount = depositAmount.roundToInt() + totalKrw = totalKrw.toInt(), + paymentFee = paymentFee.setScale(0, RoundingMode.HALF_UP).toInt(), + settlementAmount = settlementAmount.setScale(0, RoundingMode.HALF_UP).toInt(), + tax = tax.setScale(0, RoundingMode.HALF_UP).toInt(), + depositAmount = depositAmount.setScale(0, RoundingMode.HALF_UP).toInt() ) } }