From 74835ee47d7b935f711a86e55de5e5d1524dd3c7 Mon Sep 17 00:00:00 2001 From: kira <164851225@qq.com> Date: Thu, 16 Aug 2018 16:47:59 +0800 Subject: [PATCH] hf settle --- .../analysis/core/PlatformClearService.java | 4 +- .../PlatformClearAnalysisServiceImpl.java | 71 ++++++++++--------- .../web/PlatformClearAController.java | 6 +- .../config/platformrevenue/platformrevenue.js | 39 +++++++--- .../templates/platform_settle_logs.html | 13 ++-- 5 files changed, 78 insertions(+), 55 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/analysis/core/PlatformClearService.java b/src/main/java/au/com/royalpay/payment/manage/analysis/core/PlatformClearService.java index a7025139b..a6444e4af 100644 --- a/src/main/java/au/com/royalpay/payment/manage/analysis/core/PlatformClearService.java +++ b/src/main/java/au/com/royalpay/payment/manage/analysis/core/PlatformClearService.java @@ -2,8 +2,6 @@ package au.com.royalpay.payment.manage.analysis.core; import com.alibaba.fastjson.JSONObject; -import org.springframework.web.multipart.MultipartFile; - import java.text.ParseException; public interface PlatformClearService { @@ -16,5 +14,5 @@ public interface PlatformClearService { void generateSettleLogs(); - void doVerifyHFSettleLog(MultipartFile file, String start, String end); + void doVerifyHFSettleLog(JSONObject param); } diff --git a/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/PlatformClearAnalysisServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/PlatformClearAnalysisServiceImpl.java index d02f978ef..9e9064a3e 100644 --- a/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/PlatformClearAnalysisServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/PlatformClearAnalysisServiceImpl.java @@ -8,6 +8,7 @@ import au.com.royalpay.payment.channels.wechat.runtime.beans.SettlementLog; import au.com.royalpay.payment.manage.analysis.core.PlatformClearService; import au.com.royalpay.payment.manage.analysis.mappers.EstimateAnalysisMapper; import au.com.royalpay.payment.manage.mappers.log.PlatformSettlementMapper; +import au.com.royalpay.payment.tools.connections.attachment.core.AttachmentClient; import au.com.royalpay.payment.tools.utils.PageListUtils; import au.com.royalpay.payment.tools.utils.TimeZoneUtils; @@ -20,17 +21,17 @@ import com.github.miemiedev.mybatis.paginator.domain.PageList; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateUtils; +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; -import org.apache.poi.xssf.usermodel.XSSFSheet; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.bind.annotation.RequestMethod; -import java.io.IOException; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -43,6 +44,8 @@ import java.util.Map; import javax.annotation.Resource; +import cn.yixblog.platform.http.HttpRequestGenerator; + @Service public class PlatformClearAnalysisServiceImpl implements PlatformClearService { @@ -58,6 +61,8 @@ public class PlatformClearAnalysisServiceImpl implements PlatformClearService { private PlatformSettlementMapper platformSettlementMapper; @Resource private EstimateAnalysisMapper estimateAnalysisMapper; + @Resource + private AttachmentClient attachmentClient; @Override public JSONObject getPlatformSettleLog(String channel, int page, int limit) { @@ -366,8 +371,11 @@ public class PlatformClearAnalysisServiceImpl implements PlatformClearService { } @Override - public void doVerifyHFSettleLog(MultipartFile file, String start, String end) { - JSONObject hfSettle = handleHFSettleFile(file); + public void doVerifyHFSettleLog(JSONObject param) { + + String end = param.getString("end"); + String start = param.getString("start"); + JSONObject hfSettle = handleHFSettleFile(param.getString("fileId")); if (hfSettle == null) { return; } @@ -394,7 +402,7 @@ public class PlatformClearAnalysisServiceImpl implements PlatformClearService { List check = null; try { - check = platformSettlementMapper.findBySettleDate(DateUtils.parseDate(end, "YYYY-MM-dd"), "hf"); + check = platformSettlementMapper.findBySettleDate(DateUtils.parseDate(end, "yyyy-MM-dd"), "hf"); } catch (ParseException e) { e.printStackTrace(); } @@ -408,10 +416,11 @@ public class PlatformClearAnalysisServiceImpl implements PlatformClearService { } - private JSONObject handleHFSettleFile(MultipartFile file) { + private JSONObject handleHFSettleFile(String fileId) { try { - XSSFWorkbook workbook = new XSSFWorkbook(file.getInputStream()); - XSSFSheet sheet = workbook.getSheetAt(0); + HttpRequestGenerator gen = new HttpRequestGenerator(attachmentClient.getFileUrl(fileId), RequestMethod.GET); + HSSFWorkbook workbook = new HSSFWorkbook(gen.execute().getResponseContentStream()); + HSSFSheet sheet = workbook.getSheetAt(0); Iterator rowIterator = sheet.rowIterator(); Row row = null; Cell cell = null; @@ -423,46 +432,38 @@ public class PlatformClearAnalysisServiceImpl implements PlatformClearService { BigDecimal clearingAmount = BigDecimal.ZERO; while (rowIterator.hasNext()) { row = rowIterator.next(); - cell = row.getCell(14); + + cell = row.getCell(0); + if (cell != null) { + continue; + } + cell = row.getCell(15); + cell.setCellType(HSSFCell.CELL_TYPE_STRING); if (cell != null) { String orderAmountStr = cell.getStringCellValue().trim(); if (StringUtils.isNotEmpty(orderAmountStr)) { - BigDecimal cellVar = new BigDecimal(orderAmountStr); - if (orderAmount.compareTo(cellVar) == 0) { - result.put("orderAmount", orderAmount); - } else { - orderAmount = orderAmount.add(cellVar); - } + result.put("orderAmount", new BigDecimal(orderAmountStr)); } } - cell = row.getCell(15); + cell = row.getCell(16); + cell.setCellType(HSSFCell.CELL_TYPE_STRING); if (cell != null) { String surchargeStr = cell.getStringCellValue().trim(); if (StringUtils.isNotEmpty(surchargeStr)) { - BigDecimal cellVar = new BigDecimal(surchargeStr); - if (surcharge.compareTo(cellVar) == 0) { - result.put("orderAmount", surcharge); - } else { - surcharge = surcharge.add(cellVar); - } + result.put("surcharge", new BigDecimal(surchargeStr)); } } - cell = row.getCell(16); + cell = row.getCell(17); + cell.setCellType(HSSFCell.CELL_TYPE_STRING); if (cell != null) { String clearingAmounStr = cell.getStringCellValue().trim(); if (StringUtils.isNotEmpty(clearingAmounStr)) { - BigDecimal cellVar = new BigDecimal(clearingAmounStr); - if (clearingAmount.compareTo(cellVar) == 0) { - result.put("clearingAmount", clearingAmount); - } else { - clearingAmount = clearingAmount.add(cellVar); - } + result.put("clearingAmount", new BigDecimal(clearingAmounStr)); } } - return result; } return result; - } catch (IOException e) { + } catch (Exception e) { logger.debug("处理汇付清算文件出错", e); } return null; @@ -474,13 +475,15 @@ public class PlatformClearAnalysisServiceImpl implements PlatformClearService { JSONObject creditLogs = platformSettlementMapper.calculateSysSettleLog(start, end, "hf", "Credit", new BigDecimal(0.008)); result.put("sys_pay_fee", creditLogs.getBigDecimal("aud_amount")); JSONObject debitLogs = platformSettlementMapper.calculateSysSettleLog(start, end, "hf", "Debit", new BigDecimal(0.008)); + result.put("sys_surcharge", platformSettlementMapper.calculateRmbCharge(start, end, "hf", new BigDecimal(0.008))); result.put("sys_refund_fee", debitLogs.getBigDecimal("aud_amount")); result.put("sys_net_fee", creditLogs.getBigDecimal("aud_amount").subtract(debitLogs.getBigDecimal("aud_amount"))); result.put("sys_settle_fee", result.getBigDecimal("sys_net_fee").subtract(result.getBigDecimal("sys_surcharge"))); - result.put("sys_surcharge", platformSettlementMapper.calculateRmbCharge(start, end, "hf", new BigDecimal(0.008))); return result; } catch (Exception ignore) { + ignore.printStackTrace(); } return null; } + } diff --git a/src/main/java/au/com/royalpay/payment/manage/analysis/web/PlatformClearAController.java b/src/main/java/au/com/royalpay/payment/manage/analysis/web/PlatformClearAController.java index fb8d3b76a..669478b5d 100644 --- a/src/main/java/au/com/royalpay/payment/manage/analysis/web/PlatformClearAController.java +++ b/src/main/java/au/com/royalpay/payment/manage/analysis/web/PlatformClearAController.java @@ -7,11 +7,11 @@ import au.com.royalpay.payment.tools.permission.enums.ManagerRole; import com.alibaba.fastjson.JSONObject; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; import java.text.ParseException; @@ -45,7 +45,7 @@ public class PlatformClearAController { } @ManagerMapping(value = "/generate/hf/settle", method = RequestMethod.PUT, role = {ManagerRole.ADMIN, ManagerRole.OPERATOR, ManagerRole.DEVELOPER}) - public void generatehfSettleLogs(@RequestParam("file") MultipartFile settleFile,@RequestParam String start,@RequestParam String end) { - platformClearService.doVerifyHFSettleLog(settleFile,start,end); + public void generatehfSettleLogs(@RequestBody JSONObject param) { + platformClearService.doVerifyHFSettleLog(param); } } diff --git a/src/main/ui/static/config/platformrevenue/platformrevenue.js b/src/main/ui/static/config/platformrevenue/platformrevenue.js index 81c7ea806..e02654fea 100644 --- a/src/main/ui/static/config/platformrevenue/platformrevenue.js +++ b/src/main/ui/static/config/platformrevenue/platformrevenue.js @@ -16,7 +16,7 @@ define(['angular', 'decimal', 'uiRouter', 'angularEcharts', '../../analysis/repo }); }]); - app.controller('platformSettleLogCtrl', ['$scope', '$http', '$state','Upload','commonDialog', function ($scope, $http, $state,Upload, commonDialog) { + app.controller('platformSettleLogCtrl', ['$scope', '$http', '$state','$filter','Upload','commonDialog', function ($scope, $http, $state,$filter,Upload, commonDialog) { $scope.wechatPagination = {}; $scope.loadWechatLogs = function (page) { @@ -106,21 +106,38 @@ define(['angular', 'decimal', 'uiRouter', 'angularEcharts', '../../analysis/repo $scope.loadhfLogs(1); $scope.uploadhfSettleFile = function (file) { - $scope.hfParam.file=file; - if(!$scope.hfParam.start){ + if (file != null) { + Upload.upload({ + url: '/attachment/secret_files', + data: {file: file} + }).then(function (resp) { + $scope.hfParam.fileId = resp.data.fileid; + commonDialog.alert({title: 'Upload Success', content:'', type: 'success'}) + }, function (resp) { + }, function (evt) { + }) + } + }; + + $scope.dohfSettle = function () { + var param = angular.copy($scope.hfParam); + if(!param.start){ alert("请先选择开始时间"); } - if(!$scope.hfParam.end){ + if(!param.end){ alert("请先选择结束时间"); } - var param = angular.copy($scope.hfParam); - if (file != null) { - Upload.upload({ - url: '/platform/analysis/generate/hf/settle', - data: param - }); + if(!param.fileId){ + alert("请先上传汇付清算文件"); } - }; + param.start = $filter('date')(param.start, "yyyy-MM-dd"); + param.end = $filter('date')(param.end, "yyyy-MM-dd"); + + $http.put('/platform/analysis/generate/hf/settle',param).then(function (resp) { + + }); + + } }]); app.controller('platformRevenueRootCtrl', ['$scope', '$http', '$filter', 'chartParser', function ($scope, $http, $filter, chartParser) { diff --git a/src/main/ui/static/config/platformrevenue/templates/platform_settle_logs.html b/src/main/ui/static/config/platformrevenue/templates/platform_settle_logs.html index 0893ac2fd..802d5c3fd 100644 --- a/src/main/ui/static/config/platformrevenue/templates/platform_settle_logs.html +++ b/src/main/ui/static/config/platformrevenue/templates/platform_settle_logs.html @@ -280,15 +280,15 @@
+ datepicker-options="{maxDate:hfParam.end}">
@@ -296,7 +296,12 @@ + +