From: Tang Cheng Date: Tue, 6 Aug 2019 12:17:14 +0000 (+0800) Subject: 优化了对账逻辑 X-Git-Tag: 1.0.1^2~43 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=c0f6387096bc76a7ba6a16d766ad415fd8588187;p=epayment%2Ffood_payapi.git 优化了对账逻辑 --- diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/scheduler_sourcetype_chk.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/scheduler_sourcetype_chk.kt index 2bee46c8..b7f5a142 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/scheduler_sourcetype_chk.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/scheduler_sourcetype_chk.kt @@ -1,6 +1,7 @@ package com.supwisdom.dlpay.api import com.supwisdom.dlpay.agent.AgentCode +import com.supwisdom.dlpay.agent.AgentResponse import com.supwisdom.dlpay.agent.CheckFileProvider import com.supwisdom.dlpay.api.domain.TSourceType import com.supwisdom.dlpay.api.domain.TSourceTypeCheckStatus @@ -165,8 +166,8 @@ class SourceTypeCheckExecutor { private fun downloadFile(provider: CheckFileProvider, checkStatus: TSourceTypeCheckStatus): ExecutorResult { return provider.downloadCheckFile(checkStatus.checkFileDate).let { resp -> when { - resp.code == AgentCode.SUCCESS -> ExecutorResult(checkStatus, SUCCESS, "成功") - resp.code == AgentCode.REQUIRE_QUERY -> ExecutorResult(checkStatus, WAIT, "等待查询对账文件") + resp.code == AgentCode.SUCCESS -> ExecutorResult(resp.payload, SUCCESS, "成功") + resp.code == AgentCode.REQUIRE_QUERY -> ExecutorResult(resp.payload, WAIT, "等待查询对账文件") else -> ExecutorResult(checkStatus, FAIL, resp.agentMsg) } } @@ -178,20 +179,23 @@ class SourceTypeCheckExecutor { val result = getProvider(checkStatus.sourceType)?.let { provider -> val acResp = provider.acquireCheckFile(checkStatus.checkFileDate) if (acResp.code == AgentCode.REQUIRE_QUERY) { - var success = false + var success: AgentResponse = + AgentResponse().apply { + code = AgentCode.FAIL + } repeat(10) { - if (!success) { + if (success.code != AgentCode.SUCCESS) { Thread.sleep(3000) - success = provider.queryCheckFile(checkStatus.checkFileDate).code == AgentCode.SUCCESS + success = provider.queryCheckFile(checkStatus.checkFileDate) } } - if (success) { - downloadFile(provider, checkStatus) + if (success.code == AgentCode.SUCCESS) { + downloadFile(provider, success.payload) } else { ExecutorResult(checkStatus, FAIL, "下载失败,未能查到对账文件") } } else if (acResp.code == AgentCode.SUCCESS) { - downloadFile(provider, checkStatus) + downloadFile(provider, acResp.payload) } else { ExecutorResult(checkStatus, FAIL, acResp.agentMsg) }