From f99a5a6ff5cbc14bab4d6e9c84eb87e674bea15d Mon Sep 17 00:00:00 2001 From: hellolujian <1370256381@qq.com> Date: Sun, 14 Oct 2018 21:34:13 +0800 Subject: [PATCH] update --- .../core/RiskBusinessService.java | 7 + .../core/impl/RiskBusinessServiceImpl.java | 55 +- .../web/RiskBusinessController.java | 6 + src/main/ui/static/analysis/risk_business.js | 67 ++- .../analysis/templates/audit_material.html | 35 ++ .../analysis/templates/riskEvent_detail.html | 511 ++++++++++-------- 6 files changed, 439 insertions(+), 242 deletions(-) create mode 100644 src/main/ui/static/analysis/templates/audit_material.html diff --git a/src/main/java/au/com/royalpay/payment/manage/riskbusiness/core/RiskBusinessService.java b/src/main/java/au/com/royalpay/payment/manage/riskbusiness/core/RiskBusinessService.java index b457bc798..63c011a69 100644 --- a/src/main/java/au/com/royalpay/payment/manage/riskbusiness/core/RiskBusinessService.java +++ b/src/main/java/au/com/royalpay/payment/manage/riskbusiness/core/RiskBusinessService.java @@ -3,6 +3,7 @@ package au.com.royalpay.payment.manage.riskbusiness.core; import com.alibaba.fastjson.JSONObject; import com.github.miemiedev.mybatis.paginator.domain.PageBounds; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -50,4 +51,10 @@ public interface RiskBusinessService { * @param params */ void updateRiskEvent(JSONObject params); + + /** + * 下载审核材料(zip) + * @param riskId + */ + void downloadAuditMaterialZiP(String riskId, HttpServletResponse response); } 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 203729319..c88d23c00 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 @@ -1,18 +1,28 @@ package au.com.royalpay.payment.manage.riskbusiness.core.impl; +import au.com.royalpay.payment.core.exceptions.InvalidShortIdException; import au.com.royalpay.payment.manage.mappers.payment.OrderMapper; import au.com.royalpay.payment.manage.mappers.riskbusiness.RiskEventMapper; +import au.com.royalpay.payment.manage.mappers.system.ClientMapper; import au.com.royalpay.payment.manage.riskbusiness.core.RiskBusinessService; import au.com.royalpay.payment.tools.utils.PageListUtils; import com.alibaba.fastjson.JSONObject; import com.github.miemiedev.mybatis.paginator.domain.Order; import com.github.miemiedev.mybatis.paginator.domain.PageBounds; import com.github.miemiedev.mybatis.paginator.domain.PageList; +import org.apache.commons.lang3.time.DateFormatUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; import java.util.ArrayList; +import java.util.Date; import java.util.List; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; /** * @Author lvjian @@ -27,6 +37,9 @@ public class RiskBusinessServiceImpl implements RiskBusinessService { @Autowired private OrderMapper orderMapper; + @Autowired + private ClientMapper clientMapper; + @Override public List getRiskEvents(JSONObject params) { return riskEventMapper.findAll(params); @@ -41,7 +54,18 @@ public class RiskBusinessServiceImpl implements RiskBusinessService { @Override public JSONObject getRiskEventDetail(String riskId) { - return riskEventMapper.findById(riskId); + JSONObject riskEventDetail = riskEventMapper.findById(riskId); + + // 获取商户信息 + String clientMoniker = riskEventDetail.getString("client_moniker"); + JSONObject client = clientMapper.findClientByMonikerAll(clientMoniker); + if (client == null) { + throw new InvalidShortIdException(); + } else { + riskEventDetail.put("clientInfo", client); + } + + return riskEventDetail; } @Override @@ -70,4 +94,33 @@ public class RiskBusinessServiceImpl implements RiskBusinessService { public void updateRiskEvent(JSONObject params) { riskEventMapper.update(params); } + + @Override + public void downloadAuditMaterialZiP(String riskId, HttpServletResponse response) { + + JSONObject riskEvent = riskEventMapper.findById(riskId); + String clientMoniker = riskEvent.getString("client_moniker"); + try { + String downloadFilename = clientMoniker + "_audit_materials_" + DateFormatUtils.format(new Date(), "dd/MM/yyyy HH:mm:ss").toString() + ".zip";// 文件的名称 + response.setContentType("application/octet-stream"); + response.setHeader("Content-Disposition", "attachment;filename=" + downloadFilename); + ZipOutputStream zos = new ZipOutputStream(response.getOutputStream()); + String filePath = "https://file.royalpay.com.au/open/2018/09/20/1537438083143_tqIYPEDYPr40Y9Cyj4Ps1xgSRrDrVb.jpg"; + zos.putNextEntry(new ZipEntry(filePath.substring(filePath.lastIndexOf("/")))); + InputStream inputStream = new URL(filePath).openConnection().getInputStream(); + byte[] buffer = new byte[1024]; + int result = 0; + while ((result = inputStream.read(buffer)) != -1) { + zos.write(buffer, 0, result); + } + inputStream.close(); + zos.flush(); + zos.close(); + + zos.flush(); + zos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } } diff --git a/src/main/java/au/com/royalpay/payment/manage/riskbusiness/web/RiskBusinessController.java b/src/main/java/au/com/royalpay/payment/manage/riskbusiness/web/RiskBusinessController.java index 3050cf89e..8ed299654 100644 --- a/src/main/java/au/com/royalpay/payment/manage/riskbusiness/web/RiskBusinessController.java +++ b/src/main/java/au/com/royalpay/payment/manage/riskbusiness/web/RiskBusinessController.java @@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -49,5 +50,10 @@ public class RiskBusinessController { public void UpdateRiskEvent(@RequestBody JSONObject params) { riskBusinessService.updateRiskEvent(params); } + + @GetMapping(value = "/{risk_id}/download/materialsAsZIP") + public void downloadComplianceZip(@PathVariable("risk_id") String riskId, HttpServletResponse response) throws Exception { + riskBusinessService.downloadAuditMaterialZiP(riskId, response); + } } diff --git a/src/main/ui/static/analysis/risk_business.js b/src/main/ui/static/analysis/risk_business.js index a3ea20383..b09684270 100644 --- a/src/main/ui/static/analysis/risk_business.js +++ b/src/main/ui/static/analysis/risk_business.js @@ -14,8 +14,11 @@ define(['angular', 'jquery', 'uiRouter', './monitoring/analysis-monitoring'], var resultTypesMap = { "0": "未处理", - "1": "处理中", - "2": "已处理" + "1": "已发送邮件至BD", + "2": "BD已提交材料,等待审核", + "3": "材料审核通过", + "4": "材料审核不通过,已打回", + "5": "已处理()", }; var emailStatusMap = { @@ -43,6 +46,10 @@ define(['angular', 'jquery', 'uiRouter', './monitoring/analysis-monitoring'], url: '/new_riskEvent', templateUrl: '/static/analysis/templates/new_riskEvent.html', controller: 'newRiskEventCtrl' + }).state('analysis_monitoring.riskEvent_detail.audit_material', { + url: '/audit_material', + templateUrl: '/static/analysis/templates/audit_material.html', + controller: 'auditMaterialCtrl' }); }]); @@ -69,6 +76,8 @@ define(['angular', 'jquery', 'uiRouter', './monitoring/analysis-monitoring'], app.controller('riskEventDetailCtrl', ['$scope', '$state', '$http', '$uibModal', '$filter', 'commonDialog', 'riskEvent', function ($scope, $state, $http, $uibModal, $filter, commonDialog, riskEvent) { + $scope.orderTypes = orderTypesMap; + $scope.riskEvent = riskEvent.data; // 编辑表格的数据保存对象,重新从源数据复制,从而取消保存操作时不会更新视图 @@ -79,7 +88,9 @@ define(['angular', 'jquery', 'uiRouter', './monitoring/analysis-monitoring'], // 调单信息 $scope.tradeLogs = $scope.riskEvent.tradeLogs; - $scope.orderTypes = orderTypesMap; + + // 商户信息 + $scope.clientInfo = $scope.riskEvent.clientInfo; // 控制编辑表格的显示 $scope.editFlag = false; @@ -121,6 +132,56 @@ define(['angular', 'jquery', 'uiRouter', './monitoring/analysis-monitoring'], }); }); }; + + // 关停渠道 + $scope.updateChannel = function (orderType) { + var channel; + if (orderType == "1") + channel = 'wechat'; + else if (orderType == "2") + channel = 'alipay'; + $http.put('/sys/partners/' + $scope.riskEvent.client_moniker + '/channels/' + channel + '/permission', {allow: $scope.clientInfo['enable_' + channel]}).then(function () { + $state.reload('analysis_monitoring.riskEvent_detail'); + }, function (resp) { + commonDialog.alert({ + title: 'Failed to change ' + channel + ' channel permission status', + content: resp.data.message, + type: 'error' + }) + }); + }; + + // 关停商户 + $scope.updateClient = function(isValid) { + if (isValid) { + $http.put('/sys/partners/' + $scope.riskEvent.client_moniker + '/revert').then(function () { + $state.reload('analysis_monitoring.riskEvent_detail'); + }, function (resp) { + commonDialog.alert({title: 'Error', content: resp.data.message, type: 'error'}); + }) + } else { + $http.delete('/sys/partners/' + $scope.riskEvent.client_moniker).then(function () { + $state.reload('analysis_monitoring.riskEvent_detail'); + }, function (resp) { + commonDialog.alert({title: 'Error', content: resp.data.message, type: 'error'}); + }) + } + + }; + + // 获取riskEvent详细信息 + $scope.loadRiskEventDetail = function(riskId) { + $http.get('/risk/business/events/' + riskId) + } + } + ]); + + app.controller('auditMaterialCtrl', ['$scope', '$state', '$http', '$uibModal', '$filter', 'commonDialog', + function ($scope, $state, $http, $uibModal, $filter, commonDialog) { + $scope.downloadAsZip = function () { + var url = '/risk/business/' + $scope.riskEvent.risk_id + '/download/materialsAsZIP'; + return url; + }; } ]); diff --git a/src/main/ui/static/analysis/templates/audit_material.html b/src/main/ui/static/analysis/templates/audit_material.html new file mode 100644 index 000000000..028c8b6e4 --- /dev/null +++ b/src/main/ui/static/analysis/templates/audit_material.html @@ -0,0 +1,35 @@ +
+
Audit Files     + + + 一键下载 + +
+
+
+
+ +
+
+ + + +
+
+
+

Example:请保证图片信息清晰可见,如下图

+ +
+
+
+
+
+
+ check +
+
+ + + + \ No newline at end of file diff --git a/src/main/ui/static/analysis/templates/riskEvent_detail.html b/src/main/ui/static/analysis/templates/riskEvent_detail.html index a2209e208..5461723fc 100644 --- a/src/main/ui/static/analysis/templates/riskEvent_detail.html +++ b/src/main/ui/static/analysis/templates/riskEvent_detail.html @@ -1,271 +1,306 @@ -
+
+ +
+
+ -
-
-
-
-
-
-
RiskEvent Basic Information
-
-
-
- -
- -
-

Required Field -

-

Less Than 6 Letters -

-

- Only Uppercase Letters and Numbers are allowed -

-
-
-
+ +
+
+
+
RiskEvent Basic Information
+
+
+
+ +
+ +
+

Required Field +

+

Less Than 6 Letters +

+

+ Only Uppercase Letters and Numbers are allowed +

+
+
+
-
- -
- +
+ +
+ -
-

required field -

-
-
-
+
+

required field +

+
+
+
-
- -
- -
-

required field -

-
-
-
+
+ +
+ +
+

required field +

+
+
+
-
- -
-
- -
-
-
+
+ +
+
+ +
+
+
-
- -
- +
+ +
+ +
+
+
-
-
-
-
- - +
+ + +
+ +
- +
\ No newline at end of file