From: Tang Cheng Date: Tue, 18 Jun 2019 03:08:48 +0000 (+0800) Subject: refacor: 优化了商户账户余额更新逻辑 X-Git-Tag: 1.0.0^2~176 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=dff3ea27dd86c84c1cc84b20ff2ba1ccb58c3c59;p=epayment%2Ffood_payapi.git 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 737ddc3d..1214889a 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 @@ class ConsumeAPIController { @Autowired lateinit var transactionService: TransactionService + @Autowired + private lateinit var shopAccBalanceAsyncTask: ShopAccBalanceAsyncTask + /** * 流水结果查询统一接口 * */ @@ -162,7 +166,7 @@ class ConsumeAPIController { }.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 @@ class ConsumeAPIController { } }.init(transactionService) - transactionService.success(dtl.refno) + transactionService.success(dtl.refno, "") return ResponseEntity.ok(ResponseBodyBuilder.create() .data("refno", dtl.refno) @@ -284,12 +288,14 @@ class ConsumeAPIController { 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 17b45f0a..05b57b24 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 @@ -38,9 +38,6 @@ class TransactionServiceImpl : TransactionService { @Autowired private lateinit var accountService: AccountService - @Autowired - private lateinit var shopaccService: ShopaccService - @Autowired private lateinit var systemUtilService: SystemUtilService @@ -312,12 +309,20 @@ class TransactionServiceImpl : TransactionService { 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 @@ class TransactionServiceImpl : TransactionService { 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 f0acef4d..c2b942a1 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 @@ interface TransactionService { 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])