From dff3ea27dd86c84c1cc84b20ff2ba1ccb58c3c59 Mon Sep 17 00:00:00 2001 From: Tang Cheng Date: Tue, 18 Jun 2019 11:08:48 +0800 Subject: [PATCH] =?utf8?q?refacor:=20=E4=BC=98=E5=8C=96=E4=BA=86=E5=95=86?= =?utf8?q?=E6=88=B7=E8=B4=A6=E6=88=B7=E4=BD=99=E9=A2=9D=E6=9B=B4=E6=96=B0?= =?utf8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../api/controller/consume_api_controller.kt | 12 +++++++++--- .../api/service/impl/transaction_service_impl.kt | 15 ++++++++++----- .../dlpay/api/service/transaction_service.kt | 4 ++-- 3 files changed, 21 insertions(+), 10 deletions(-) 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]) -- 2.17.1