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 f965868a4..27f2fdeb9 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 @@ -1170,7 +1170,19 @@ public class CleanServiceImpl implements CleanService, ManagerTodoNoticeProvider String defaultBank = config.getRemainsTo(); clearingDetailMapper.updateAllBanks(defaultBank, clearingId); List details = clearingDetailMapper.listReportsOfSettlement(clearingId); - details.sort((log1, log2) -> log2.getBigDecimal("clearing_amount").compareTo(log1.getBigDecimal("clearing_amount"))); + details.sort((log1, log2) -> { + if (StringUtils.equals(defaultBank, log1.getString("account_bank")) == + StringUtils.equals(defaultBank, log2.getString("account_bank"))) { + //两个银行都是defaultBank或者都不是defaultBank, all true or all false,比较清算金额,金额大的在前 + return log2.getBigDecimal("clearing_amount").compareTo(log1.getBigDecimal("clearing_amount")); + } + //有一个是defaultBank,defaultBank在后 + if (defaultBank.equals(log1.getString("account_bank"))) { + return -1; + } else { + return 1; + } + }); bankDistribution.remove(defaultBank); for (String bank : bankDistribution.keySet()) { List detailIds = new ArrayList<>(); diff --git a/src/main/java/au/com/royalpay/payment/manage/riskbusiness/core/impl/RiskBusinessServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/riskbusiness/core/impl/RiskBusinessServiceImpl.java index 27802aa3e..365852461 100644 --- a/src/main/java/au/com/royalpay/payment/manage/riskbusiness/core/impl/RiskBusinessServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/riskbusiness/core/impl/RiskBusinessServiceImpl.java @@ -149,7 +149,10 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo String orderIds = riskEvent.getString("order_ids"); JSONObject client = clientMapper.findClientByMonikerAll(riskEvent.getString("client_moniker")); List tradeLogs = new ArrayList<>(); - if (StringUtils.isNotBlank(orderIds)) { + /** + * 通用号调单会有client为空的情况,所以无法查到订单信息 + */ + if (client != null && StringUtils.isNotBlank(orderIds)) { String[] orderIdArray = orderIds.trim().split(","); JSONObject orderInfo = new JSONObject(); String realOrderId = ""; @@ -192,19 +195,26 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo params.put("order_ids", orderIds); String[] orderIdArray = orderIds.split(","); List orderAmountList = new ArrayList<>(); - for (int i = 0; i < orderIdArray.length; i++) { - JSONObject orderInfo = orderMapper.findOrderById(orderIdArray[i],client.getIntValue("client_id")); - // 判断该笔订单是否存在,是否属于该商户 - if (orderInfo == null) - throw new OrderNotExistsException(); - else { - if (!clientMoniker.equals(orderInfo.getString("partner_code"))) { - throw new OrderNotMatchException(); + /** + * 通用号调单的时候,是不用填写client_moniker的,但是系统需要client_id关联查询订单信息, + * 所以当client为空的时候,就不去校验订单的信息了,从而order_amounts字段为空 + * 带来的影响是前台根据金额字段查询对该风控事件就不起作用了。 + */ + if (client != null) { + for (int i = 0; i < orderIdArray.length; i++) { + JSONObject orderInfo = orderMapper.findOrderById(orderIdArray[i],client.getIntValue("client_id")); + // 判断该笔订单是否存在,是否属于该商户 + if (orderInfo == null) + throw new OrderNotExistsException(); + else { + if (!clientMoniker.equals(orderInfo.getString("partner_code"))) { + throw new OrderNotMatchException(); + } + orderAmountList.add(orderInfo.getString("total_amount")); } - orderAmountList.add(orderInfo.getString("total_amount")); } + params.put("order_amounts", StringUtils.join(orderAmountList, ",")); } - params.put("order_amounts", StringUtils.join(orderAmountList, ",")); } riskEventMapper.save(params); } diff --git a/src/main/ui/static/analysis/risk_business.js b/src/main/ui/static/analysis/risk_business.js index 6e6d3ec30..fa8177534 100644 --- a/src/main/ui/static/analysis/risk_business.js +++ b/src/main/ui/static/analysis/risk_business.js @@ -578,7 +578,21 @@ define(['angular', 'jquery', 'uiRouter', './monitoring/analysis-monitoring'], $scope.partnerParam.sub_merchant_id = $scope.riskEvent.sub_merchant_id; $http.get('/risk/business/partners', {params: $scope.partnerParam}).then(function (resp) { $scope.partners = resp.data; - $scope.riskEvent.client_moniker = $scope.partners[0].client_moniker; + if ($scope.partners != null && $scope.partners.length > 0) { + $scope.riskEvent.client_moniker = $scope.partners[0].client_moniker; + } + else { + commonDialog.confirm({ + title: 'Warning', + content: '该微信子商户号下暂时没有商户或者商户被禁用,是否继续?' + }).then(function () { + // 点击确定 + $scope.riskEvent.client_moniker = null; + }, function () { + // 点击取消 + $scope.riskEvent.sub_merchant_id = ''; + }); + } if ($scope.partners != null && $scope.partners.length > 1 && $scope.riskEvent.order_type != 5) commonDialog.confirm({ title: 'Warning', diff --git a/src/main/ui/static/analysis/templates/new_riskEvent.html b/src/main/ui/static/analysis/templates/new_riskEvent.html index 704892ca1..4900bf874 100644 --- a/src/main/ui/static/analysis/templates/new_riskEvent.html +++ b/src/main/ui/static/analysis/templates/new_riskEvent.html @@ -101,7 +101,7 @@ -
+
diff --git a/src/main/ui/static/analysis/templates/risk_business.html b/src/main/ui/static/analysis/templates/risk_business.html index da236ae47..f86d2d2df 100644 --- a/src/main/ui/static/analysis/templates/risk_business.html +++ b/src/main/ui/static/analysis/templates/risk_business.html @@ -192,7 +192,9 @@ - + {{riskEvent.short_name}}({{riskEvent.client_moniker}})