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 {