diff --git a/pom.xml b/pom.xml index 437cfb8df..ac06c5b07 100644 --- a/pom.xml +++ b/pom.xml @@ -223,6 +223,11 @@ flying-saucer-pdf 9.0.3 + + com.jcraft + jsch + 0.1.55 + 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 acfe399d9..19fb154c5 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 @@ -581,7 +581,7 @@ public class TestController { } @GetMapping(value = "/securepay/settle/file") - public void sendSecurePaySettleFile() { - tradeSecureService.sendSecurePaySettleFile("20200803"); + public void sendSecurePaySettleFile(@RequestParam String dateStr) { + tradeSecureService.sendSecurePaySettleFile(dateStr); } } 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 23ee9beaa..82261922a 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 @@ -45,9 +45,9 @@ public class TradeSecureServiceHanyinImpl implements TradeSecureService { private String sftpUsername; @Value("${app.hanyin-secure.sftp-pwd}") private String sftpPwd; - @Value("${app.securepay.sftp.username:upitest}") + @Value("${app.securepay.sftp.username:securepay}") private String securePaySftpName; - @Value("${app.securepay.sftp.password:upitest}") + @Value("${app.securepay.sftp.password:k0uShtrmUvZ9}") private String securePaySftpPwd; @Resource private TransactionMapper transactionMapper; @@ -139,7 +139,7 @@ public class TradeSecureServiceHanyinImpl implements TradeSecureService { scpayMchs.forEach(mch -> { TradeLogQuery query = new TradeLogQuery(); query.setDatefrom(dateStr); - query.setDatefrom(dateStr); + query.setDateto(dateStr); byte[] fileData = tradeLogService.exportPDFSettlement(query, mch); String fileName = dateStr + "-SETTLEMENT-" + RandomStringUtils.random(9, true, true).toUpperCase() + "-" + mch.getString("client_moniker") + ".pdf"; @@ -157,11 +157,15 @@ public class TradeSecureServiceHanyinImpl implements TradeSecureService { channel.connect(); command = (ChannelSftp) channel; try { - command.put(new ByteArrayInputStream(data), "/" + StringUtils.substring(dateStr, 0, 6) + "/" + fileName); - logger.info("文件发送成功!"); + command.mkdir(StringUtils.substring(dateStr, 0, 6)); } catch (SftpException e) { logger.error(e.getMessage()); } + try { + command.put(new ByteArrayInputStream(data), StringUtils.substring(dateStr, 0, 6) + "/" + fileName); + logger.info("文件发送成功!"); + } catch (SftpException ignore) { + } } catch (IOException | JSchException e) { throw new ChannelNetworkException("Send Settlement file failed", e); } finally { @@ -174,7 +178,8 @@ public class TradeSecureServiceHanyinImpl implements TradeSecureService { private Session initSFTPConnection(String sftpUsername, String sftpPassword) throws IOException { FileSystemOptions fso = new FileSystemOptions(); - return SftpClientFactory.createConnection("124.156.126.236", 2022, + SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(fso, "no"); + return SftpClientFactory.createConnection("sftp.royalpay.com.au", 2022, sftpUsername.toCharArray(), sftpPassword.toCharArray(), fso); } diff --git a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java index 67c3765b9..e21d847ea 100644 --- a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java @@ -2006,6 +2006,24 @@ public class TradeLogServiceImpl implements TradeLogService { item.put("rate", item.getBigDecimal("rate") == null ? "-" : item.getBigDecimal("rate").toPlainString() + "%"); }); } + if (clientOrderList.size() <= 0) { + JSONObject mockJson = new JSONObject(); + mockJson.put("order_id", "-"); + mockJson.put("transaction_time", "-"); + mockJson.put("channel", "-"); + mockJson.put("gateway", "-"); + mockJson.put("exchange_rate", BigDecimal.ZERO); + mockJson.put("transaction_type", "-"); + mockJson.put("transaction_currency", "-"); + mockJson.put("display_amount", BigDecimal.ZERO); + mockJson.put("settle_amount", BigDecimal.ZERO); + mockJson.put("remark", ""); + mockJson.put("transaction_amount", BigDecimal.ZERO); + mockJson.put("total_surcharge", BigDecimal.ZERO); + mockJson.put("clearing_amount", BigDecimal.ZERO); + mockJson.put("rate", BigDecimal.ZERO); + settlementLogDetailList.add(mockJson); + } JRDataSource jrDataSource = new JRBeanCollectionDataSource(settlementLogDetailList); return JasperRunManager.runReportToPdf(partner_settlement_flow.getInputStream(), parmerters, jrDataSource); } catch (Exception e) { diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.xml index 242c3f775..9fc3bf234 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.xml @@ -1420,7 +1420,7 @@ #{clearing_order} - ORDER BY transaction_time DESC + ORDER BY t.transaction_time DESC