diff --git a/pom.xml b/pom.xml index 94a2f7150..c394163c9 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ au.com.royalpay.payment payment-parent - 0.2.0 + 0.2.0-dev 4.0.0 diff --git a/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/ChannelsAnalysisServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/ChannelsAnalysisServiceImpl.java index 0ab5fa1ae..98477eb2d 100644 --- a/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/ChannelsAnalysisServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/ChannelsAnalysisServiceImpl.java @@ -20,9 +20,9 @@ public class ChannelsAnalysisServiceImpl implements ChannelsAnalysisService { @Override public List getChannelMount(JSONObject params) { - if (!params.containsKey("client_ids") && !params.containsKey("org_id")){ + /*if (!params.containsKey("client_ids") && !params.containsKey("org_id")){ params.put("client_id",0); - } + }*/ List listChannel = new ArrayList<>(); listChannel.add(putParam(params,"Wechat")); listChannel.add(putParam(params,"Bestpay")); @@ -86,6 +86,18 @@ public class ChannelsAnalysisServiceImpl implements ChannelsAnalysisService { obj.put("total",count.getIntValue("total")); obj.put("order",count.getIntValue("orders")); obj.put("channel",name); + obj.put("transaction_partners",count.getIntValue("transaction_partners")); + int enablePartners = 0; + if ("AlipayOnline".equals(name)) { + params.put("gateway_alipay_online", 1); + enablePartners = customerAndOrdersStatisticsMapper.countEnableChannel(params); + params.remove("gateway_alipay_online"); + } else { + params.put("enable_" + name.toLowerCase(), 1); + enablePartners = customerAndOrdersStatisticsMapper.countEnableChannel(params); + params.remove("enable_" + name.toLowerCase()); + } + obj.put("enable_partners", enablePartners); return obj; } } diff --git a/src/main/java/au/com/royalpay/payment/manage/analysis/mappers/CustomerAndOrdersStatisticsMapper.java b/src/main/java/au/com/royalpay/payment/manage/analysis/mappers/CustomerAndOrdersStatisticsMapper.java index fdb90019a..c05f71b19 100644 --- a/src/main/java/au/com/royalpay/payment/manage/analysis/mappers/CustomerAndOrdersStatisticsMapper.java +++ b/src/main/java/au/com/royalpay/payment/manage/analysis/mappers/CustomerAndOrdersStatisticsMapper.java @@ -61,4 +61,6 @@ public interface CustomerAndOrdersStatisticsMapper { int countTotalCustomers(JSONObject params); int countTotalOldCustomers(JSONObject params); + + int countEnableChannel(JSONObject params); } diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/system/SysChannelConfigMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/system/SysChannelConfigMapper.java index 2d4eb5549..9670b45d0 100644 --- a/src/main/java/au/com/royalpay/payment/manage/mappers/system/SysChannelConfigMapper.java +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/system/SysChannelConfigMapper.java @@ -21,4 +21,7 @@ public interface SysChannelConfigMapper { @Param(value = "last_update_by")String lastUpdateBy, @Param(value = "is_valid") boolean is_valid); JSONObject findOne(@Param(value = "type") int type); + + @AutoSql(type = SqlType.SELECT) + JSONObject selectByChannelId (@Param(value = "channel_id") String channel_id); } diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java b/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java index a6e740d7a..1a0a346b7 100644 --- a/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java +++ b/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java @@ -380,4 +380,6 @@ public interface ClientManager { String cbBankPayLink(String clientMoniker); void switchPaymentConfigPC(String clientMoniker, HttpServletResponse response) throws IOException; + + void partnerCBChannelConfig(String clientMoniker, String channelKey, String channel_id); } diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java b/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java index e891f3789..fbe7bf079 100644 --- a/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java @@ -4314,6 +4314,12 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid if (paymentConfig == null) { throw new BadRequestException("服务商未开启快捷支付"); } + if (client.getString("cb_channel_id") != null) { + JSONObject channelConfig = sysChannelConfigMapper.selectByChannelId(client.getString("cb_channel_id")); + if (channelConfig != null) { + paymentConfig = channelConfig; + } + } response.sendRedirect(String.format(PlatformEnvironment.getEnv().concatUrl(paymentConfig.getString("path")), clientMoniker)); } @@ -4346,6 +4352,12 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid if (paymentConfig == null) { throw new BadRequestException("服务商未开启快捷支付"); } + if (client.getString("cb_channel_id") != null) { + JSONObject channelConfig = sysChannelConfigMapper.selectByChannelId(client.getString("cb_channel_id")); + if (channelConfig != null) { + paymentConfig = channelConfig; + } + } return String.format(PlatformEnvironment.getEnv().concatUrl(paymentConfig.getString("path")), clientMoniker); } @@ -4359,11 +4371,35 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid if (paymentConfig == null) { throw new BadRequestException("服务商未开启快捷支付"); } + if (client.getString("cb_channel_id") != null) { + JSONObject channelConfig = sysChannelConfigMapper.selectByChannelId(client.getString("cb_channel_id")); + if (channelConfig != null) { + paymentConfig = channelConfig; + } + } String path = paymentConfig.getString("path"); path = path.replaceAll("app","pc"); response.sendRedirect(String.format(PlatformEnvironment.getEnv().concatUrl(path), clientMoniker)); } + @Override + public void partnerCBChannelConfig(String clientMoniker, String channelKey, String channel_id) { + JSONObject client = clientMapper.findClientByMoniker(clientMoniker); + if (client == null) { + throw new BadRequestException("partner code is not exists!"); + } + if (StringUtils.isNotEmpty(channel_id)) { + JSONObject cbBankConfig = sysChannelConfigMapper.selectByChannelId(channel_id); + if (cbBankConfig == null) { + throw new BadRequestException("不存在该支付渠道"); + } + } + JSONObject updateClient = new JSONObject(); + updateClient.put("client_id", client.getIntValue("client_id")); + updateClient.put(channelKey, channel_id); + clientMapper.update(updateClient); + } + private TemplateMessage initClientMessage(JSONObject client, String newExpiryDate, String wechatOpenid, String templateId) { TemplateMessage notice = new TemplateMessage(wechatOpenid, templateId, null); notice.put("first", "您好,您的合同费率已到期,根据合同协议系统已自动为您延期1年。", "#ff0000"); diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerManageController.java b/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerManageController.java index fcf6f6d07..3f3ed611b 100644 --- a/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerManageController.java +++ b/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerManageController.java @@ -646,4 +646,16 @@ public class PartnerManageController { public void switchPaymentWayPC(@PathVariable String clientMoniker, HttpServletResponse response) throws IOException { clientManager.switchPaymentConfigPC(clientMoniker, response); } + + + /** + * 商户设置单独的网银和快捷通道 + * @param clientMoniker + * @param channelKey + * @throws IOException + */ + @ManagerMapping(value = "/{clientMoniker}/cb_bankpay/{channelKey}/channel_id", method = RequestMethod.PUT, role = {ManagerRole.ADMIN, ManagerRole.OPERATOR}) + public void switchPartnerCBChannelConfig(@PathVariable String clientMoniker, @PathVariable String channelKey, @RequestBody JSONObject channel) { + clientManager.partnerCBChannelConfig(clientMoniker, channelKey, channel.getString("channel_id")); + } } diff --git a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/TradeLogService.java b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/TradeLogService.java index 1fb0b3185..954cc6cc5 100644 --- a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/TradeLogService.java +++ b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/TradeLogService.java @@ -52,4 +52,6 @@ public interface TradeLogService { PageList listPreRefundClients(PreRefundQueryBean params); void exportSettlementLog(TradeLogQuery query, JSONObject partner, HttpServletResponse response); + + void exportPDFSettlement(TradeLogQuery query, JSONObject partner, HttpServletResponse response); } 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 a992efea2..0409db451 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 @@ -156,6 +156,8 @@ public class TradeLogServiceImpl implements TradeLogService { private org.springframework.core.io.Resource trans_excel; @Value("classpath:/jasper/austrac_report.jasper") private org.springframework.core.io.Resource austrac_report; + @Value("classpath:/jasper/partner_settlement_detail.jasper") + private org.springframework.core.io.Resource partner_settlement_flow; @Override public JSONObject listPartnerTradeLogs(JSONObject manager, JSONObject account, String shortId, TradeLogQuery query, String timezone) throws Exception { @@ -670,64 +672,99 @@ public class TradeLogServiceImpl implements TradeLogService { } @Override - public void exportExcel(TradeLogQuery query, JSONObject partner, HttpServletResponse response) throws Exception { + public void exportExcel(TradeLogQuery query, JSONObject partner, HttpServletResponse resp) throws Exception { logger.debug("excel The method======= exportExcel() start......................."); JSONObject transFlow = listPartnerTransFlow(query, partner); // JSONObject analysis = transFlow.getJSONObject("analysis"); if (transFlow.getJSONArray("data").size() > 0) { + OutputStream ous = null; try { List dataList = (List) transFlow.get("data"); String transType; JSONObject device; int status; - for (JSONObject data : dataList) { - transType = data.getString("trans_type"); - if (!"refund".equals(transType)) - continue; - status = data.getIntValue("status"); - if (status == 6) - transType = "Partly " + transType; - else if (status == 7) { - transType = "Fully " + transType; + resp.setContentType("application/octet-stream;"); + resp.addHeader("Content-Disposition", + "attachment; filename=" + "Merchant_Settlement_Info_" + query.getDatefrom() + "_" + query.getDateto() + ".xlsx"); + ous = resp.getOutputStream(); + Workbook wb = new XSSFWorkbook(); + Font font = wb.createFont(); + font.setBoldweight(Font.BOLDWEIGHT_BOLD); + font.setFontHeightInPoints((short) 10); + CellStyle analysisStyle = wb.createCellStyle(); + analysisStyle.setFont(font); + String[] clientIds = query.getClient_ids(); + List clientIdList = new ArrayList<>(); + clientIdList.add("ALL"); + if (clientIds.length >= 2) { + clientIdList.addAll(Arrays.asList(clientIds)); + } + Sheet sheet = null; + JSONObject client = null; + for (int i = 0;i < clientIdList.size();i++) { + if (i == 0) { + sheet = wb.createSheet("ALL"); + } else { + client = clientManager.getClientInfo(Integer.parseInt(clientIdList.get(i))); + sheet = wb.createSheet(client == null ? clientIdList.get(i) : client.getString("client_moniker")); + } + int rowNum = 0; + Row row = sheet.createRow(rowNum); + String[] title = {"Transaction Time", "Client Order ID", "System Order ID", "Client Moniker", "Short Name", "Order ID", "Channel", "Input Amount", "Transaction Amount", "Transaction Currency", "Clearing Amount", "Exchange Rate", + "Transaction Type", "Clearing Status", "Gateway", "Remark", "Dev No"}; + for (int j = 0; j < title.length; j++) { + row.createCell(j, Cell.CELL_TYPE_STRING).setCellValue(title[j]); + } + String platformCurrency = PlatformEnvironment.getEnv().getForeignCurrency(); + for (JSONObject data : dataList) { + if (!clientIdList.get(i).equals(data.getString("client_id")) && i != 0) { + continue; + } + if (i == 0) { + transType = data.getString("trans_type"); + if (!"refund".equals(transType)) { + status = data.getIntValue("status"); + if (status == 6) + transType = "Partly " + transType; + else if (status == 7) { + transType = "Fully " + transType; + } + } + data.put("trans_type", transType); + device = clientDeviceMapper.find(data.getString("order_dev_id")); + if (device != null) + data.put("dev_id", device.getString("client_dev_id")); + scaleDecimalVal(data, "display_amount", platformCurrency); + scaleDecimalVal(data, "transaction_amount", platformCurrency); + scaleDecimalVal(data, "clearing_amount", platformCurrency); + } + row = sheet.createRow(++rowNum); + row.createCell(0, Cell.CELL_TYPE_STRING).setCellValue(data.getString("transaction_time")); + row.createCell(1, Cell.CELL_TYPE_STRING).setCellValue(data.getString("client_order_id")); + row.createCell(2, Cell.CELL_TYPE_STRING).setCellValue(data.getString("system_transaction_id")); + row.createCell(3, Cell.CELL_TYPE_STRING).setCellValue(data.getString("client_moniker")); + row.createCell(4, Cell.CELL_TYPE_STRING).setCellValue(data.getString("short_name")); + row.createCell(5, Cell.CELL_TYPE_STRING).setCellValue(data.getString("order_id")); + row.createCell(6, Cell.CELL_TYPE_STRING).setCellValue(data.getString("channel")); + row.createCell(7, Cell.CELL_TYPE_STRING).setCellValue(data.getString("display_amount")); + row.createCell(8, Cell.CELL_TYPE_STRING).setCellValue(data.getString("transaction_amount")); + row.createCell(9, Cell.CELL_TYPE_STRING).setCellValue(data.getString("currency")); + row.createCell(10, Cell.CELL_TYPE_STRING).setCellValue(data.getString("clearing_amount")); + row.createCell(11, Cell.CELL_TYPE_STRING).setCellValue(data.getString("trans_type").equals("clearing")?"-":data.getBigDecimal("exchange_rate").toString()); + row.createCell(12, Cell.CELL_TYPE_STRING).setCellValue(data.getString("trans_type")); + row.createCell(13, Cell.CELL_TYPE_STRING).setCellValue(data.getString("clear_status")); + row.createCell(14, Cell.CELL_TYPE_STRING).setCellValue(data.getString("gateway")); + row.createCell(15, Cell.CELL_TYPE_STRING).setCellValue(data.getString("order_detail")); + row.createCell(16, Cell.CELL_TYPE_STRING).setCellValue(data.getString("dev_id")); } - data.put("trans_type", transType); - device = clientDeviceMapper.find(data.getString("order_dev_id")); - if (device != null) - data.put("dev_id", device.getString("client_dev_id")); } - JSONObject parmerters = new JSONObject(); - parmerters.put("dateFrom", StringUtils.isNotBlank(query.getDatefrom()) ? query.getDatefrom() : ""); - parmerters.put("dateTo", StringUtils.isNotBlank(query.getDateto()) ? query.getDateto() : DateFormatUtils.format(new Date(), "yyyyMMdd")); - parmerters.put("partnerCode", partner.getString("client_moniker")); - // parmerters.put("actual_fee", analysis.containsKey("actual_fee") ? - // analysis.getBigDecimal("actual_fee") : 0); - JRDataSource jrDataSource = new JRBeanCollectionDataSource(dataList); - response.setContentType("application/vnd.ms-excel"); - String fileName = StringUtils.isEmpty(parmerters.getString("dateFrom")) ? parmerters.getString("dateTo") - : (parmerters.getString("dateFrom") + "~" + parmerters.getString("dateTo")); - // String fileName = new String(URLEncoder.encode(defaultname,"utf8")); - response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx"); - OutputStream outputStream = response.getOutputStream(); - JasperPrint jasperPrint = JasperFillManager.fillReport(trans_excel.getInputStream(), parmerters, jrDataSource); - // JRXlsExporter exporter = new JRXlsExporter(); - JRXlsxExporter exporter = new JRXlsxExporter(); - ExporterInput exporterInput = new SimpleExporterInput(jasperPrint); - exporter.setExporterInput(exporterInput); - OutputStreamExporterOutput exporterOutput = new SimpleOutputStreamExporterOutput(outputStream); - exporter.setExporterOutput(exporterOutput); - // 设置导出时参数 - SimpleXlsxReportConfiguration xlsReportConfiguration = new SimpleXlsxReportConfiguration(); - xlsReportConfiguration.setOnePagePerSheet(false); - xlsReportConfiguration.setRemoveEmptySpaceBetweenRows(true); - xlsReportConfiguration.setDetectCellType(true); - xlsReportConfiguration.setWhitePageBackground(false); - exporter.setConfiguration(xlsReportConfiguration); - exporter.exportReport(); - outputStream.close(); - } catch (Exception e) { + wb.write(ous); + ous.flush(); + } catch (IOException e) { e.printStackTrace(); + } finally { + IOUtils.closeQuietly(ous); } - } } @@ -1246,7 +1283,7 @@ public class TradeLogServiceImpl implements TradeLogService { row.createCell(11, Cell.CELL_TYPE_STRING).setCellValue(settle.getBigDecimal("rate") == null? "": settle.getBigDecimal("rate").toPlainString() + "%"); row.createCell(12, Cell.CELL_TYPE_STRING).setCellValue(settle.getBigDecimal("settle_amount") == null ? "" : settle.getBigDecimal("settle_amount").setScale(2, BigDecimal.ROUND_DOWN).toPlainString()); - row.createCell(13, Cell.CELL_TYPE_STRING).setCellValue(settle.getString("order_detail")); + row.createCell(13, Cell.CELL_TYPE_STRING).setCellValue(settle.getString("remark")); device = clientDeviceMapper.find(settle.getString("dev_id")); if (device != null) clientDevId = device.getString("client_dev_id"); @@ -1273,4 +1310,54 @@ public class TradeLogServiceImpl implements TradeLogService { IOUtils.closeQuietly(ous); } } + + @Override + public void exportPDFSettlement(TradeLogQuery query, JSONObject partner, HttpServletResponse response) { + int client_id = partner.getIntValue("client_id"); + String begin = query.getDatefrom() == null ?"":query.getDatefrom(); + String end = query.getDateto() == null ?"":query.getDateto(); + JSONObject client = partner.getJSONObject("client"); + String timezone = client.getString("timezone"); + JSONObject params = query.toParams(timezone); + params.put("client_id", client_id); + List clientOrderList = transactionMapper.getClientOrderByTransactionTime(params); + List clientOrders = new ArrayList<>(clientOrderList.size()); + clientOrderList.parallelStream().forEach(p->{ + clientOrders.add(p.getInteger("clearing_order")); + }); + List settlementLogDetailList = transactionMapper.getSettlementLogDetailList(clientOrders, client_id); + TimeZoneUtils.switchTimeZoneToString(settlementLogDetailList, timezone, "yyyy-MM-dd HH:mm:ss", Arrays.asList("transaction_time")); + try { + + JSONObject parmerters = new JSONObject(); + parmerters.put("dateRange", "(Statement Period " + begin + "~" + + end + ")"); + parmerters.put("clientName", client.getString("company_name")); + parmerters.put("clientAddress", client.getString("address")); + parmerters.put("clientLocation", client.getString("suburb") + "," + client.getString("state") + "," + client.getString("postcode")); + parmerters.put("logo", logo.getInputStream()); + settlementLogDetailList.parallelStream().forEach(item -> { + scaleDecimalVal(item, "display_amount", item.getString("transaction_currency")); + String platformCurrency = PlatformEnvironment.getEnv().getForeignCurrency(); + scaleDecimalVal(item, "clearing_amount", platformCurrency); + scaleDecimalVal(item, "settle_amount", platformCurrency); + scaleDecimalVal(item, "total_surcharge", platformCurrency); + scaleDecimalVal(item, "transaction_amount", platformCurrency); + item.put("exchange_rate", item.getBigDecimal("exchange_rate").setScale(5, BigDecimal.ROUND_DOWN)); + item.put("gateway" , item.getInteger("gateway") == null ? "-" : TradeType.fromGatewayNumber(item.getIntValue("gateway")).getTradeType()); + item.put("rate", item.getBigDecimal("rate") == null? "-": item.getBigDecimal("rate").toPlainString() + "%"); + }); + JRDataSource jrDataSource = new JRBeanCollectionDataSource(settlementLogDetailList); + response.setContentType("application/pdf"); + String fileName = partner.getString("client_moniker") + "_" + parmerters.getString("dateRange").replaceAll("/", ""); + response.setHeader("Content-Disposition", "attachment;fileName=" + fileName + ".pdf"); + OutputStream outs = response.getOutputStream(); + byte[] bytes = JasperRunManager.runReportToPdf(partner_settlement_flow.getInputStream(), parmerters, jrDataSource); + outs.write(bytes, 0, bytes.length); + outs.flush(); + outs.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/src/main/java/au/com/royalpay/payment/manage/tradelog/web/TradeFlowController.java b/src/main/java/au/com/royalpay/payment/manage/tradelog/web/TradeFlowController.java index 27275b973..fef98d397 100644 --- a/src/main/java/au/com/royalpay/payment/manage/tradelog/web/TradeFlowController.java +++ b/src/main/java/au/com/royalpay/payment/manage/tradelog/web/TradeFlowController.java @@ -65,4 +65,10 @@ public class TradeFlowController { tradeLogService.exportSettlementLog(query, partner, response); } + @PartnerMapping(value = "/settlement/log/pdf",method = RequestMethod.GET) + @ResponseBody + public void exportLogPDF(TradeLogQuery query, @ModelAttribute(CommonConsts.PARTNER_STATUS) JSONObject partner, HttpServletResponse response) { + tradeLogService.exportPDFSettlement(query, partner, response); + } + } diff --git a/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/CustomerAndOrdersStatisticsMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/CustomerAndOrdersStatisticsMapper.xml index e5b705835..d207115b5 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/CustomerAndOrdersStatisticsMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/CustomerAndOrdersStatisticsMapper.xml @@ -275,10 +275,12 @@ SELECT ifnull(sum(s.orders),0) orders, ifnull(sum(s.total),0) total, - ifnull(sum(s.single_amount),0) single_amount + ifnull(sum(s.single_amount),0) single_amount, + ifnull(count(distinct s.client_id), 0) transaction_partners FROM statistics_customer_order s LEFT JOIN sys_clients c ON c.client_id = s.client_id and c.is_valid=1 + AND s.client_id != 0 AND s.client_id IN @@ -566,4 +568,50 @@ + 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 29f9ebe76..4572cdea4 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 @@ -58,6 +58,8 @@ +
+ +
+ +
+
diff --git a/src/main/ui/static/payment/tradelog/partner-settlement-log.js b/src/main/ui/static/payment/tradelog/partner-settlement-log.js index 113cf4a85..bcb76f875 100644 --- a/src/main/ui/static/payment/tradelog/partner-settlement-log.js +++ b/src/main/ui/static/payment/tradelog/partner-settlement-log.js @@ -92,9 +92,12 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) { }; $scope.loadSettlementLogs(1); - $scope.exportSettlementLogs = function() { + $scope.exportSettlementLogs = function(pattern) { var params = angular.copy($scope.params); var url = '/client/trans_flow/settlement/log/excel'; + if (pattern === 'pdf') { + url = '/client/trans_flow/settlement/log/pdf'; + } var connectSymbol = '?'; if (params.datefrom) { params.datefrom = $filter('date')(params.datefrom, 'yyyyMMdd'); diff --git a/src/main/ui/static/payment/tradelog/templates/partner_settlement_logs.html b/src/main/ui/static/payment/tradelog/templates/partner_settlement_logs.html index f9b7990a3..714ab730f 100644 --- a/src/main/ui/static/payment/tradelog/templates/partner_settlement_logs.html +++ b/src/main/ui/static/payment/tradelog/templates/partner_settlement_logs.html @@ -88,9 +88,15 @@ - - export - +
+ + +