改进了task任务
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/async_tasks.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/async_tasks.kt
index 73f8ba6..9448f3d 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/async_tasks.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/async_tasks.kt
@@ -1,12 +1,15 @@
 package com.supwisdom.dlpay.api
 
+import com.supwisdom.dlpay.agent.AgentCode
+import com.supwisdom.dlpay.agent.citizencard.YnrccUtil
+import com.supwisdom.dlpay.api.domain.TTransactionMain
 import com.supwisdom.dlpay.api.repositories.ShopaccService
 import com.supwisdom.dlpay.api.service.TransactionServiceProxy
-import com.supwisdom.dlpay.agent.service.CitizencardPayService
-import com.supwisdom.dlpay.agent.citizencard.YnrccUtil
+import com.supwisdom.dlpay.framework.util.ApplicationUtil
 import mu.KotlinLogging
 import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler
 import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.context.ApplicationContext
 import org.springframework.context.annotation.Bean
 import org.springframework.context.annotation.Configuration
 import org.springframework.scheduling.annotation.Async
@@ -20,7 +23,7 @@
 @Configuration
 @EnableAsync
 class SpringAsyncConfig : AsyncConfigurer {
-    @Bean(value = ["shopAccBalanceUpdater", "queryCitizencardPayResult"])
+    @Bean(value = ["shopAccBalanceUpdater", "queryAgentPayResult"])
     fun threadPoolExecutor(): Executor {
         return ThreadPoolTaskExecutor().apply {
             corePoolSize = 5
@@ -56,52 +59,53 @@
 }
 
 @Component
-class CitizencardQueryResultTask {
+class AgentQueryResultTask {
     private val logger = KotlinLogging.logger { }
 
     @Autowired
-    private lateinit var citizencardPayService: CitizencardPayService
-    @Autowired
     lateinit var transactionService: TransactionServiceProxy
 
-    @Async("queryCitizencardPayResult")
-    fun queryResult(refno: String, qcnt: Int) {
+    @Autowired
+    private lateinit var applicationContext: ApplicationContext
+
+    @Async("queryAgentPayResult")
+    fun queryResult(transaction: TTransactionMain, qcnt: Int) {
         try {
-            if(qcnt >= YnrccUtil.QUERY_MAX_COUNT){
+            if (qcnt >= YnrccUtil.QUERY_MAX_COUNT) {
                 //查询超最大次数
-                logger.error("查询refno=[$refno]流水结果超最大查询次数[${YnrccUtil.QUERY_MAX_COUNT}]")
+                logger.error("查询refno=[${transaction.refno}]流水结果超最大查询次数[${YnrccUtil.QUERY_MAX_COUNT}]")
                 return
             }
 
-            logger.info("refno=[$refno]开始第" + (qcnt + 1) + "次查询支付结果:")
-            val resp = citizencardPayService.queryResult(refno)
-            when {
-                YnrccUtil.CODE_SUCCESS == resp.code -> {
+            val service = ApplicationUtil.findAgentPayService(applicationContext,
+                    transaction.sourceType)
+            logger.info("refno=[${transaction.refno}]开始第" + (qcnt + 1) + "次查询支付结果:")
+            val resp = service.query(transaction)
+            when (resp.code) {
+                AgentCode.SUCCESS -> {
                     //查询成功
-                    when {
-                        YnrccUtil.DTL_STATUS_SUCCESS == resp.status ->
-                            transactionService.success(refno, resp.bankjourno, false) //流水成功
-                        YnrccUtil.DTL_STATUS_REFUND == resp.status -> {
-                            //流水已退款 TODO:流水成功后才退款,无查询原成功流水逻辑
-                            return
-                        }
-                        YnrccUtil.DTL_STATUS_PART_REFUND == resp.status -> {
-                            //流水已部分退款 TODO:暂无逻辑
-                            return
-                        }
-                        else -> {
-                            //流水失败
-                            transactionService.fail(refno, "查询流水状态为交易失败")
-                        }
-                    }
+//                    when {
+//                        YnrccUtil.DTL_STATUS_SUCCESS == resp.status ->
+//                            transactionService.success(refno, resp.bankjourno, false) //流水成功
+//                        YnrccUtil.DTL_STATUS_REFUND == resp.status -> {
+//                            //流水已退款 TODO:流水成功后才退款,无查询原成功流水逻辑
+//                            return
+//                        }
+//                        YnrccUtil.DTL_STATUS_PART_REFUND == resp.status -> {
+//                            //流水已部分退款 TODO:暂无逻辑
+//                            return
+//                        }
+//                        else -> {
+//                            //流水失败
+//                            transactionService.fail(refno, "查询流水状态为交易失败")
+//                        }
+//                    }
+                    transactionService.success(transaction.refno, resp.agentRefno, false)
                 }
-                YnrccUtil.CODE_NOT_EXISTS == resp.code ->
-                    transactionService.fail(refno, "银行流水不存在") //银行返回流水不存在
-                YnrccUtil.CODE_EXCEPTION == resp.code ->
-                    queryResult(refno, qcnt + 1) //查询次数加1
+                AgentCode.REFNO_NOT_EXISTS -> transactionService.fail(transaction.refno, "银行流水不存在")
+                AgentCode.COMMON_ERROR -> queryResult(transaction, qcnt + 1)
                 else -> {
-                    //其他明确错误,查询失败
-                    logger.error("查询refno=[$refno]流水结果返回失败:code=[${resp.code}],message=[${resp.message}]")
+                    transactionService.fail(transaction.refno, resp.agentMsg)
                 }
             }
         } catch (ex: Exception) {
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
index b0be489..1e7cca9 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
@@ -35,9 +35,8 @@
     lateinit var cardService: CardService
     @Autowired
     private lateinit var applicationContext: ApplicationContext
-
     @Autowired
-    lateinit var citizencardQueryResultTask: CitizencardQueryResultTask
+    lateinit var agentQueryResultTask: AgentQueryResultTask
 
     /**
      * ============================================================================
@@ -226,7 +225,7 @@
                 }
             AgentCode.REQUIRE_QUERY -> {
                 //去查询
-                citizencardQueryResultTask.queryResult(dtl.refno, 0)
+                agentQueryResultTask.queryResult(dtl, 0)
                 return ResponseEntity.ok(ResponseBodyBuilder.create()
                         .fail(CitizenPayResponse(dtl.refno,
                                 dtl.outTradeNo,
@@ -276,7 +275,7 @@
                 }
                 AgentCode.REQUIRE_QUERY -> {
                     //待查询
-                    citizencardQueryResultTask.queryResult(cancelTrans.refno, 0)
+                    agentQueryResultTask.queryResult(cancelTrans, 0)
                     return ResponseEntity.ok(ResponseBodyBuilder.create()
                             .fail(PayReverseResponse(cancelTrans.refno),
                                     TradeErrorCode.WAIT_QUERY_RESULT, "请查询撤销结果"))
@@ -331,7 +330,7 @@
                 }
                 AgentCode.REQUIRE_QUERY -> {
                     //待查询
-                    citizencardQueryResultTask.queryResult(refundTrans.refno, 0)
+                    agentQueryResultTask.queryResult(refundTrans, 0)
                     return ResponseEntity.ok(ResponseBodyBuilder.create()
                             .fail(PayReverseResponse(refundTrans.refno),
                                     TradeErrorCode.WAIT_QUERY_RESULT, "请查询撤销结果"))