From b10b3436792d17dd74fa9f14f05ad7234618f615 Mon Sep 17 00:00:00 2001 From: luoyang Date: Thu, 6 Sep 2018 14:56:33 +0800 Subject: [PATCH] fix clearing --- .../clearing/core/CleanService.java | 2 - .../clearing/core/impl/CleanServiceImpl.java | 63 ---------------- .../clearing/web/SettlementDevController.java | 10 --- .../mappers/log/ClearingDetailMapper.java | 5 -- .../mappers/log/ClearingDetailMapper.xml | 37 ---------- src/main/ui/static/analysis/clearing-log.js | 74 +++++++++---------- .../analysis/templates/settlement_detail.html | 28 ++++--- 7 files changed, 46 insertions(+), 173 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/CleanService.java b/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/CleanService.java index da0346bf6..09518584a 100644 --- a/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/CleanService.java +++ b/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/CleanService.java @@ -31,8 +31,6 @@ public interface CleanService { JSONObject getClearDetails(Date dt, String managerId); - JSONObject getClearDetailsLimit20(Date dt, String managerId); - JSONObject getCleanLogTransactions(int detailId, JSONObject manager); Map getDayAndChannelOfAnalysisMap(int detailId, String channel,JSONObject manager); diff --git a/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/impl/CleanServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/impl/CleanServiceImpl.java index 996bd833a..b419e9a95 100644 --- a/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/impl/CleanServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/impl/CleanServiceImpl.java @@ -248,69 +248,6 @@ public class CleanServiceImpl implements CleanService, ManagerTodoNoticeProvider return total; } - @Override - public JSONObject getClearDetailsLimit20(Date settleDate, String managerId) { - List logs = clearingLogMapper.findByDate(settleDate); - if (logs.isEmpty()) { - throw new NotFoundException(); - } - JSONObject total = new JSONObject(); - total.put("settle_date", settleDate); - total.put("total_credit", 0); - total.put("total_debit", 0); - total.put("gross_amount", 0); - total.put("wechat_charge", 0); - total.put("royalpay_charge", 0); - total.put("net_amount", 0); - total.put("total_charge", 0); - total.put("tax_amount", 0); - total.put("charge_cashback", 0); - - List details = new ArrayList<>(); - List totalList = new ArrayList<>(); - int clearingId = 0; - for (JSONObject log : logs) { - addBigDecimal(total, log, "total_credit"); - addBigDecimal(total, log, "total_debit"); - addBigDecimal(total, log, "gross_amount"); - addBigDecimal(total, log, "wechat_charge"); - addBigDecimal(total, log, "royalpay_charge"); - addBigDecimal(total, log, "net_amount"); - addBigDecimal(total, log, "total_charge"); - addBigDecimal(total, log, "charge_cashback"); - addBigDecimal(total, log, "tax_amount"); - clearingId = log.getIntValue("clearing_id"); - List logDetails = clearingDetailMapper.listReportsOfSettlementLimit20(clearingId); - details.addAll(logDetails); - List banks = logDetails.stream().map(detail -> detail.getString("settle_bank")).distinct().collect(Collectors.toList()); - - List bankStatistics = banks.stream().map(bank -> { - JSONObject data = new JSONObject(); - data.put("bank", bank); - data.put("total_settle", logDetails.stream() - .filter(detail -> bank.equals(detail.getString("settle_bank"))) - .map(detail -> detail.getBigDecimal("clearing_amount")) - .reduce(BigDecimal::add) - ); - data.put("clients", logDetails.stream() - .filter(detail -> bank.equals(detail.getString("settle_bank"))) - .count()); - return data; - }).collect(Collectors.toList()); - //bankStatistics.put() - log.put("bank_statistics", bankStatistics); - log.put("editable", DateUtils.isSameDay(log.getDate("settle_date"), new Date()) && log.getBooleanValue("editable")); - log.put("channel_analysis", clearingDetailAnalysisMapper.analysisChannelReport(clearingId)); - } - totalList = clearingDetailMapper.listRepostTotal(clearingId); - total.put("totalList", totalList); - total.put("logs", logs); - total.put("details", details); - List channels = clearingDetailAnalysisMapper.analysisChannelReportDaily(settleDate); - total.put("channel_analysis", channels); - return total; - } - private void addBigDecimal(JSONObject total, JSONObject log, String key) { total.put(key, total.getBigDecimal(key).add(log.getBigDecimal(key))); } diff --git a/src/main/java/au/com/royalpay/payment/manage/management/clearing/web/SettlementDevController.java b/src/main/java/au/com/royalpay/payment/manage/management/clearing/web/SettlementDevController.java index b010016c2..f4dea7830 100644 --- a/src/main/java/au/com/royalpay/payment/manage/management/clearing/web/SettlementDevController.java +++ b/src/main/java/au/com/royalpay/payment/manage/management/clearing/web/SettlementDevController.java @@ -42,16 +42,6 @@ public class SettlementDevController { } @RequestMapping("/reports/{date}") - public JSONObject settleReportLimit20(@PathVariable String date,@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { - try { - Date dt = dateFormat.parse(date); - return cleanService.getClearDetailsLimit20(dt, manager.getString("manager_id")); - } catch (ParseException e) { - throw new BadRequestException("error.payment.valid.invalid_date_format"); - } - } - - @RequestMapping("/reports/{date}/all") public JSONObject settleReport(@PathVariable String date, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { try { Date dt = dateFormat.parse(date); diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/log/ClearingDetailMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/log/ClearingDetailMapper.java index 3ddf28559..62ff594d9 100644 --- a/src/main/java/au/com/royalpay/payment/manage/mappers/log/ClearingDetailMapper.java +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/log/ClearingDetailMapper.java @@ -29,8 +29,6 @@ public interface ClearingDetailMapper { List listReportsOfSettlement(@Param("clearing_id") int clearingId); - List listReportsOfSettlementLimit20(@Param("clearing_id") int clearingId); - JSONObject listReportsOfSettleCleanDay(@Param("clearing_id") int clearingId, @Param("client_ids") List client_ids); PageList listReportsOfSettlementLogs(JSONObject params, PageBounds pagination); @@ -50,7 +48,4 @@ public interface ClearingDetailMapper { @AutoSql(type = SqlType.DELETE) void deleteSettleLogs(@Param("clearing_id") int clearingId); - - List listRepostTotal(@Param("clearing_id") int clearingId); - } diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/log/ClearingDetailMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/log/ClearingDetailMapper.xml index 154ee5abe..473d41a81 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/log/ClearingDetailMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/log/ClearingDetailMapper.xml @@ -25,37 +25,7 @@ INNER JOIN sys_clients c ON c.client_id = d.client_id AND c.is_valid=1 WHERE d.clearing_id = #{clearing_id} - - - \ No newline at end of file diff --git a/src/main/ui/static/analysis/clearing-log.js b/src/main/ui/static/analysis/clearing-log.js index fe0c60cda..4ee3f2e49 100644 --- a/src/main/ui/static/analysis/clearing-log.js +++ b/src/main/ui/static/analysis/clearing-log.js @@ -243,8 +243,6 @@ define(['angular', 'decimal', 'uiBootstrap', 'uiRouter', 'angularEcharts'], func }]); app.controller('settlementDetailCtrl', ['$scope', '$stateParams', '$http', '$uibModal', '$filter', '$state', 'detail', 'commonDialog', function ($scope, $stateParams, $http, $uibModal, $filter, $state, detail, commonDialog) { - $scope.allButton = false; - $scope.limitButton = true; $scope.detail = detail.data; $scope.hasSentMail = false; $scope.sendNotice = false; @@ -252,11 +250,8 @@ define(['angular', 'decimal', 'uiBootstrap', 'uiRouter', 'angularEcharts'], func $scope.analysisFilter = {}; $scope.currentAnalysis = $scope.detail; $scope.pageCtrl = {visible:{}}; - var t1Amount =0; - var t2Amount =0; - var t3Amount =0; - function getAnalysisTemplate() { + function getAnalysisTemplate() { return [ {settleDays: 1, clients: 0, settleAmount: 0, settles: []}, {settleDays: 2, clients: 0, settleAmount: 0, settles: []}, @@ -271,45 +266,35 @@ define(['angular', 'decimal', 'uiBootstrap', 'uiRouter', 'angularEcharts'], func }; angular.forEach($scope.detail.logs, function (batch) { $scope.batchAnalysis[batch.clearing_id + ''] = getAnalysisTemplate(); - }); - $scope.allClearing = function() { - $http.get('/sys/settlement/reports/' + $stateParams.date + '/all').then(function (resp) { - angular.forEach($scope.settleAnalysis, function (list) { - list.settles.splice(0, list.settles.length); - list.clients = 0; - list.settleAmount = 0; - }); - angular.forEach(resp.data.details, function (settleItem) { - var settleDays = settleItem.clear_days; - attachAnalysis($scope.settleAnalysis[Math.min(settleDays - 1, 2)]); - attachAnalysis($scope.batchAnalysis[settleItem.clearing_id + ''][Math.min(settleDays - 1, 2)]); + $scope.endIndexMap = {}; + $scope.initEndIndex = 20; - function attachAnalysis(analysisItem) { - analysisItem.settles.push(settleItem); - analysisItem.clients++; - analysisItem.settleAmount = Decimal.add(analysisItem.settleAmount, settleItem.clearing_amount).toFixed(2, Decimal.ROUND_FLOOR); - } - }); - $scope.allButton = true; - $scope.limitButton = false; - }); - }; + $scope.more = function(key) { - $scope.packup = function() { - angular.forEach($scope.settleAnalysis, function (list) { - list.settles.splice(20, list.settles.length); - list.clients = 20; - }); - $scope.settleAnalysis[0].settleAmount = t1Amount; - $scope.settleAnalysis[1].settleAmount = t2Amount; - $scope.settleAnalysis[2].settleAmount = t3Amount; - $scope.allButton = false; - $scope.limitButton = true; + var endIndex = $scope.endIndexMap[key] + $scope.initEndIndex; + $scope.endIndexMap[key] = endIndex; + if (endIndex > $scope.clientsMap[key].clients) { + $scope.endIndexMap[key] = $scope.clientsMap[key].clients; + } + + }; + $scope.packup = function(key) { + $scope.endIndexMap[key] = $scope.initEndIndex; + var length = $scope.clientsMap[key]; + if (length <= $scope.initEndIndex) + $scope.endIndexMap[key] = length; }; + $scope.displayAll = function (key) { + var length = $scope.clientsMap[key].clients; + $scope.endIndexMap[key] = length; + }; + + + angular.forEach($scope.detail.details, function (settleItem) { var settleDays = settleItem.clear_days; attachAnalysis($scope.settleAnalysis[Math.min(settleDays - 1, 2)]); @@ -322,9 +307,16 @@ define(['angular', 'decimal', 'uiBootstrap', 'uiRouter', 'angularEcharts'], func } }); - t1Amount = $scope.settleAnalysis[0].settleAmount; - t2Amount = $scope.settleAnalysis[1].settleAmount; - t3Amount = $scope.settleAnalysis[2].settleAmount; + $scope.clientsMap = $scope.settleAnalysis; + + for (var key in $scope.clientsMap) { + $scope.endIndexMap[key] = $scope.initEndIndex; + var length = $scope.clientsMap[key].clients; + if (length <= $scope.initEndIndex) + $scope.endIndexMap[key] = length; + } + + var nowStr = $filter('date')(new Date(), "yyyy-MM-dd"); $scope.datePattern = $stateParams.date; if ($scope.datePattern == nowStr) { diff --git a/src/main/ui/static/analysis/templates/settlement_detail.html b/src/main/ui/static/analysis/templates/settlement_detail.html index e2e10fc4d..b2ae518de 100644 --- a/src/main/ui/static/analysis/templates/settlement_detail.html +++ b/src/main/ui/static/analysis/templates/settlement_detail.html @@ -169,17 +169,9 @@ -
-
Total Amount:
-
- -   Amounts: - -
-
+ ng-repeat=" (key, group) in batchAnalysis[analysisFilter.clearing_id==null?'All':analysisFilter.clearing_id+'']">
T+{{group.settleDays}}: Clients:{{group.clients}} Amount:{{group.settleAmount|currency:''}} @@ -201,7 +193,7 @@ - + @@ -225,13 +217,19 @@ - - - 全部 + + + 更多 - - 收起 +     + + 全部 + + 收起 +