对账修改
authorXia Kaixiang <kaixiang.xia@supwisdom.com>
Mon, 18 Nov 2019 09:58:15 +0000 (17:58 +0800)
committerXia Kaixiang <kaixiang.xia@supwisdom.com>
Mon, 18 Nov 2019 09:58:15 +0000 (17:58 +0800)
payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/ShopProxy.java
payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt

index adb2b3c..4562fa2 100644 (file)
@@ -1,5 +1,6 @@
 package com.supwisdom.dlpay.paysdk.proxy;
 
+import com.supwisdom.dlpay.api.bean.DownloadShopBillParam;
 import com.supwisdom.dlpay.api.bean.OpenShopParam;
 import com.supwisdom.dlpay.api.bean.QueryShopParam;
 import com.supwisdom.dlpay.api.bean.ShopResponse;
@@ -17,4 +18,7 @@ public interface ShopProxy {
 
   @GetMapping("/query")
   ShopResponse queryShop(@RequestBody QueryShopParam param);
+
+  @PostMapping("/downloadshopbill")
+  String downloadShopBill(@RequestBody DownloadShopBillParam param);
 }
index c1dbf6a..157c81c 100644 (file)
@@ -13,6 +13,7 @@ import com.supwisdom.dlpay.framework.tenant.TenantContext
 import com.supwisdom.dlpay.framework.util.TradeErrorCode
 import com.supwisdom.dlpay.system.service.DtlDataService
 import com.supwisdom.dlpay.util.ConstantUtil
+import org.apache.log4j.spi.ErrorCode
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.http.ResponseEntity
 import org.springframework.web.bind.annotation.*
@@ -85,23 +86,28 @@ class ShopAPIController {
      */
     @PostMapping("/downloadshopbill")
     fun downloadShopBill(@RequestBody param: DownloadShopBillParam, response: HttpServletResponse): ResponseEntity<Any> {
-        val outputStream = response.outputStream
         try {
             shopService.checkDownloadShopBillParam(param) //判断该天是否已结算,未结算直接报错
             val count = dtlDataService.getDownloadShopBillCount(param)
             if (count <= 0) {
                 return ResponseEntity.ok(ResponseBodyBuilder.create().fail(TradeErrorCode.NO_DEAL_EEROR, "当天无交易记录"))
             }
-            parseFile(dtlDataService, param, count, outputStream)
-            return ResponseEntity.ok(outputStream)
+            val outputStream = response.outputStream
+            return try {
+                parseFile(dtlDataService, param, count, outputStream)
+                ResponseEntity.ok(outputStream)
+            } catch (eb: Exception) {
+                ResponseEntity.ok(ResponseBodyBuilder.create()
+                        .exception(TradeErrorCode.BUSINESS_DEAL_ERROR, eb, "生成对账文件数据出错"))
+            } finally {
+                outputStream?.close()
+            }
         } catch (ex: RequestParamCheckException) {
             return ResponseEntity.ok(ResponseBodyBuilder.create()
                     .requestException(ex, "请求参数错误"))
         } catch (et: TransactionException) {
             return ResponseEntity.ok(ResponseBodyBuilder.create()
                     .transException(et, "业务处理错误"))
-        } finally {
-            outputStream?.close()
         }
     }