diff --git a/pom.xml b/pom.xml
index 45daa1b93..62377ab20 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,7 +13,7 @@
UTF-8
1.1.2
- 1.0.41
+ 1.0.43
diff --git a/src/main/java/au/com/royalpay/payment/manage/dev/web/TestController.java b/src/main/java/au/com/royalpay/payment/manage/dev/web/TestController.java
index 2f2725959..76d1a4419 100644
--- a/src/main/java/au/com/royalpay/payment/manage/dev/web/TestController.java
+++ b/src/main/java/au/com/royalpay/payment/manage/dev/web/TestController.java
@@ -25,7 +25,6 @@ import au.com.royalpay.payment.manage.mappers.system.ClientMapper;
import au.com.royalpay.payment.manage.merchants.core.ClientManager;
import au.com.royalpay.payment.manage.permission.manager.ManagerMapping;
import au.com.royalpay.payment.manage.system.core.TradeSecureService;
-import au.com.royalpay.payment.manage.system.core.beans.TradeSecureFile;
import au.com.royalpay.payment.manage.tradelog.core.TradeLogService;
import au.com.royalpay.payment.tools.CommonConsts;
import au.com.royalpay.payment.tools.defines.TradeType;
@@ -62,8 +61,6 @@ import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -446,8 +443,8 @@ public class TestController implements ApplicationEventPublisherAware {
}
@ManagerMapping(value = "/secure/hanyin_reports/{date}", role = ManagerRole.DEVELOPER, method = RequestMethod.GET)
- public void downloadHanyinSecureReports(@PathVariable String date) {
- tradeSecureService.uploadSecureReport(DateTime.parse(date).toDate());
+ public void downloadHanyinSecureReports(@PathVariable String date, @RequestParam(defaultValue = "false") boolean upload, HttpServletResponse resp) {
+ tradeSecureService.manualDownloadHanyinSecureReport(DateTime.parse(date).toDate(), upload, resp);
}
@ManagerMapping(value = "/register/alipayOnlineGms", role = ManagerRole.DEVELOPER, method = RequestMethod.POST)
diff --git a/src/main/java/au/com/royalpay/payment/manage/system/core/TradeSecureService.java b/src/main/java/au/com/royalpay/payment/manage/system/core/TradeSecureService.java
index bd2eaa596..599bfd2ca 100644
--- a/src/main/java/au/com/royalpay/payment/manage/system/core/TradeSecureService.java
+++ b/src/main/java/au/com/royalpay/payment/manage/system/core/TradeSecureService.java
@@ -2,6 +2,7 @@ package au.com.royalpay.payment.manage.system.core;
import au.com.royalpay.payment.manage.system.core.beans.TradeSecureFile;
+import javax.servlet.http.HttpServletResponse;
import java.util.Date;
/**
@@ -12,6 +13,7 @@ public interface TradeSecureService {
void uploadSecureReport(Date date);
- TradeSecureFile getSecureReportFile(Date date);
+ void manualDownloadHanyinSecureReport(Date date, boolean upload, HttpServletResponse resp);
+ TradeSecureFile getSecureReportFile(Date date);
}
diff --git a/src/main/java/au/com/royalpay/payment/manage/system/core/beans/TradeSecureFile.java b/src/main/java/au/com/royalpay/payment/manage/system/core/beans/TradeSecureFile.java
index c875fc9a3..c341b6ae0 100644
--- a/src/main/java/au/com/royalpay/payment/manage/system/core/beans/TradeSecureFile.java
+++ b/src/main/java/au/com/royalpay/payment/manage/system/core/beans/TradeSecureFile.java
@@ -80,6 +80,7 @@ public class TradeSecureFile {
for (TradeItem item : tradeItems) {
writer.println(item.line());
}
+ writer.flush();
content = bos.toByteArray();
return content;
} catch (IOException e) {
diff --git a/src/main/java/au/com/royalpay/payment/manage/system/core/impl/TradeSecureServiceHanyinImpl.java b/src/main/java/au/com/royalpay/payment/manage/system/core/impl/TradeSecureServiceHanyinImpl.java
index 18bd9dc9f..060a41e1b 100644
--- a/src/main/java/au/com/royalpay/payment/manage/system/core/impl/TradeSecureServiceHanyinImpl.java
+++ b/src/main/java/au/com/royalpay/payment/manage/system/core/impl/TradeSecureServiceHanyinImpl.java
@@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.Date;
@@ -59,6 +60,17 @@ public class TradeSecureServiceHanyinImpl implements TradeSecureService {
sftpUpload(file);
}
+ @Override
+ public void manualDownloadHanyinSecureReport(Date date, boolean upload, HttpServletResponse resp) {
+ TradeSecureFile file = getSecureReportFile(date);
+ if (upload) {
+ sftpUpload(file);
+ }
+ if (!upload && resp != null) {
+ file.writeToHttp(resp);
+ }
+ }
+
private void sftpUpload(TradeSecureFile file) {
Session session = null;
ChannelSftp command = null;
@@ -75,8 +87,10 @@ public class TradeSecureServiceHanyinImpl implements TradeSecureService {
command.mkdir(dir);
}
String dest = dir + "/" + file.filename();
- logger.debug("find dir, start uploading file:{}", dest);
- command.put(new ByteArrayInputStream(file.content()), dest);
+ byte[] content = file.content();
+ logger.debug("find dir, start uploading file:{}(length:{})", dest, content.length);
+ command.put(new ByteArrayInputStream(content), dest);
+ logger.debug("uploading file finished:{}", dest);
} catch (IOException | JSchException | SftpException e) {
throw new ChannelNetworkException("Upload Secure file failed", e);
} finally {