refacor: 优化了商户账户余额更新逻辑
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
index 737ddc3..1214889 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
@@ -1,5 +1,6 @@
package com.supwisdom.dlpay.api.controller
+import com.supwisdom.dlpay.ShopAccBalanceAsyncTask
import com.supwisdom.dlpay.api.AccountProxy
import com.supwisdom.dlpay.api.CallService
import com.supwisdom.dlpay.api.TransactionBuilder
@@ -48,6 +49,9 @@
@Autowired
lateinit var transactionService: TransactionService
+ @Autowired
+ private lateinit var shopAccBalanceAsyncTask: ShopAccBalanceAsyncTask
+
/**
* 流水结果查询统一接口
* */
@@ -162,7 +166,7 @@
}.and().shop(shopacc).apply {
setAmount(param.amount / 100.0, TradeDict.TRADE_FLAG_IN)
opposite = AccountProxy(account)
- }.and().also {builder ->
+ }.and().also { builder ->
param.feelist?.forEach {
when (it.feetype) {
TradeDict.FEETYPE_CONSUME_MEALER -> {
@@ -177,7 +181,7 @@
}
}.init(transactionService)
- transactionService.success(dtl.refno)
+ transactionService.success(dtl.refno, "")
return ResponseEntity.ok(ResponseBodyBuilder.create()
.data("refno", dtl.refno)
@@ -284,12 +288,14 @@
it.shopDtl)
}
if (code.retcode == "0") {
- transactionService.success(param.refno).let {
+ transactionService.success(param.refno, "支付").let {
return ResponseEntity.ok(ResponseBodyBuilder.create()
.data("refno", it.refno)
.data("billno", it.outTradeNo)
.success("交易确认成功"))
}
+
+
} else {
transactionService.fail(param.refno).let {
return ResponseEntity.ok(ResponseBodyBuilder.create()
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 17b45f0..05b57b2 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
@@ -39,9 +39,6 @@
private lateinit var accountService: AccountService
@Autowired
- private lateinit var shopaccService: ShopaccService
-
- @Autowired
private lateinit var systemUtilService: SystemUtilService
@Autowired
@@ -312,12 +309,20 @@
if (transaction.shop) {
transaction.shopDtl.remark = remark
}
- transaction.endTime = Timestamp(systemUtilService.sysdatetime.sysdate.time)
+ transaction.endTime = systemUtilService.sysdatetime.currentTimestamp
transactionMainDao.save(transaction)
return transaction
}
override fun success(refno: String, remark: String): TTransactionMain {
+ val transaction = successOnAccount(refno, remark)
+ if (transaction.status == TradeDict.DTL_STATUS_SUCCESS) {
+ shopAccBalanceAsyncTask.updateShopBalance(transaction.refno)
+ }
+ return transaction
+ }
+
+ override fun successOnAccount(refno: String, remark: String): TTransactionMain {
val transaction = transactionMainDao.findByRefnoForUpdate(refno)
?: throw TransactionProcessException(TradeErrorCode.TRANSACTION_IS_FINISHED, "流水<$refno>参考号错误")
@@ -329,7 +334,7 @@
transaction.accdate = systemUtilService.accdate
transactionOnSuccess(transaction, remark, false)
- transaction.endTime = Timestamp(systemUtilService.sysdatetime.sysdate.time)
+ transaction.endTime = systemUtilService.sysdatetime.currentTimestamp
transactionMainDao.save(transaction)
return transaction
}
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt
index f0acef4..c2b942a 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt
@@ -22,10 +22,10 @@
fun fail(refno: String, remark: String): TTransactionMain
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class])
- fun success(refno: String): TTransactionMain
+ fun successOnAccount(refno: String, remark: String): TTransactionMain
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class])
fun success(refno: String, remark: String): TTransactionMain
+ fun success(refno: String): TTransactionMain
// 撤销接口冲正类接口
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class])