From 283ee6fb35e43a89176df42aa4c8a0bf4fee62a7 Mon Sep 17 00:00:00 2001 From: Tang Cheng Date: Wed, 19 Jun 2019 11:36:45 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96=E4=BA=86=E4=BA=A4=E6=98=93?= =?utf8?q?=E4=BD=99=E9=A2=9D=E7=BB=9F=E8=AE=A1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../dlpay/api/domain/TTransactionMain.java | 12 +++++++++++- .../api/service/impl/account_service_impl.kt | 2 +- .../service/impl/transaction_service_impl.kt | 19 ++++--------------- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TTransactionMain.java b/src/main/java/com/supwisdom/dlpay/api/domain/TTransactionMain.java index d0572f2d..01534ec8 100644 --- a/src/main/java/com/supwisdom/dlpay/api/domain/TTransactionMain.java +++ b/src/main/java/com/supwisdom/dlpay/api/domain/TTransactionMain.java @@ -1,5 +1,7 @@ package com.supwisdom.dlpay.api.domain; +import com.supwisdom.dlpay.framework.util.Subject; + import javax.persistence.*; import java.sql.Timestamp; @@ -252,7 +254,7 @@ public class TTransactionMain { } public Double sumAmountByAccno(String accno, String subjno, - int balanceFlag, String debitOrCredit) { + String debitOrCredit) { Double debitSum = 0.0; Double creditSum = 0.0; for (TDebitCreditDtl dtl : getDetails()) { @@ -263,6 +265,14 @@ public class TTransactionMain { creditSum += dtl.getAmount(); } } + int balanceFlag = 2; + if (Subject.SUBJNO_MACHANT_INCOME.equals(subjno)) { + balanceFlag = 2; + } else if (Subject.SUBJNO_PERSONAL_DEPOSIT.equals(subjno)) { + balanceFlag = 2; + } else if (subjno.startsWith("1")) { + balanceFlag = 1; + } if ("debit".equals(debitOrCredit)) { if (balanceFlag == 2) { return -debitSum; diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/account_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/account_service_impl.kt index c65bc416..6e6ade44 100644 --- a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/account_service_impl.kt +++ b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/account_service_impl.kt @@ -126,7 +126,7 @@ class ShopaccServiceImpl : ShopaccService { return } val amount = transactionMainDao.findByRefno(refno)?.sumAmountByAccno(shopdtl.shopaccno, - Subject.SUBJNO_MACHANT_INCOME, 2, "both") + Subject.SUBJNO_MACHANT_INCOME, "both") ?: throw TransactionProcessException(TradeErrorCode.TRANSACTION_NOT_EXISTS, "交易参考号<$refno>不存在") recalcShopBalance(shopdtl, amount, overdraft) diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt index a59a3f1b..dccbf816 100644 --- a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt +++ b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt @@ -1,7 +1,6 @@ package com.supwisdom.dlpay.api.service.impl import com.supwisdom.dlpay.api.TransactionBuilder -import com.supwisdom.dlpay.api.dao.PersondtlDao import com.supwisdom.dlpay.api.dao.TransactionMainDao import com.supwisdom.dlpay.api.domain.* import com.supwisdom.dlpay.api.repositories.AccountService @@ -16,18 +15,11 @@ import com.supwisdom.dlpay.framework.util.TradeErrorCode import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service import java.sql.SQLException -import java.sql.Timestamp import kotlin.math.absoluteValue @Service class TransactionServiceImpl : TransactionService { - - companion object { - const val PERSON_BALANCE_FLAG = 2 - const val SHOP_BALANCE_FLAG = 2 - } - @Autowired private lateinit var transactionMainDao: TransactionMainDao @@ -172,7 +164,7 @@ class TransactionServiceImpl : TransactionService { val dc = getDebitOrCredit(builder.person().tradeFlag) transaction.sumAmountByAccno(builder.person().person.accno, Subject.SUBJNO_PERSONAL_DEPOSIT, - PERSON_BALANCE_FLAG, dc).also { + dc).also { if (transaction.personDtl.amount != it) { throw TransactionProcessException(TradeErrorCode.INPUT_DATA_ERROR, "输入金额错误,个人余额不符<${transaction.personDtl.amount}>") @@ -183,8 +175,7 @@ class TransactionServiceImpl : TransactionService { if (builder.hasShop()) { val dc = getDebitOrCredit(builder.shop().tradeFlag) transaction.sumAmountByAccno(builder.shop().shopacc.shopaccno, - Subject.SUBJNO_MACHANT_INCOME, - SHOP_BALANCE_FLAG, dc).also { + Subject.SUBJNO_MACHANT_INCOME, dc).also { if (transaction.shopDtl.amount != it) { throw TransactionProcessException(TradeErrorCode.INPUT_DATA_ERROR, "输入金额错误,商户余额不符<${transaction.shopDtl.amount}>") @@ -194,9 +185,7 @@ class TransactionServiceImpl : TransactionService { if (builder.hasSubject()) { transaction.sumAmountByAccno(builder.subject().subject.subjno, - builder.subject().subject.subjno, - builder.subject().subject.balflag, - "both").also { + builder.subject().subject.subjno, "both").also { if (transaction.subjectDtl.amount != it) { throw TransactionProcessException(TradeErrorCode.INPUT_DATA_ERROR, "输入金额错误,科目余额不符<${transaction.subjectDtl.amount}>") @@ -362,7 +351,7 @@ class TransactionServiceImpl : TransactionService { // update account balance val amount = transaction.sumAmountByAccno( transaction.personDtl.accountNo, Subject.SUBJNO_PERSONAL_DEPOSIT, - PERSON_BALANCE_FLAG, "both") + "both") if (amount.absoluteValue.compareTo(0.0) != 0) { transaction.personDtl?.let { transaction.personDtl.accdate = transaction.accdate -- 2.17.1