优化了交易余额统计接口
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 d0572f2..01534ec 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 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 @@
         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 c65bc41..6e6ade4 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 @@
             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 a59a3f1..dccbf81 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 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 @@
                 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 @@
             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 @@
 
             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 @@
             // 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