master
lujian 6 years ago
parent 7be4235424
commit 0b909d47ba

@ -2,6 +2,7 @@ package au.com.royalpay.payment.manage.riskbusiness.core.impl;
import au.com.royalpay.payment.core.exceptions.EmailException;
import au.com.royalpay.payment.core.exceptions.InvalidShortIdException;
import au.com.royalpay.payment.core.exceptions.OrderNotExistsException;
import au.com.royalpay.payment.core.exceptions.OrderNotMatchException;
import au.com.royalpay.payment.manage.mappers.log.AppMessageLogMapper;
import au.com.royalpay.payment.manage.mappers.payment.OrderMapper;
@ -10,9 +11,9 @@ import au.com.royalpay.payment.manage.mappers.riskbusiness.RiskEventMapper;
import au.com.royalpay.payment.manage.mappers.riskbusiness.RiskFileMapper;
import au.com.royalpay.payment.manage.mappers.riskbusiness.RiskMaterialMapper;
import au.com.royalpay.payment.manage.mappers.riskbusiness.RiskOrdersMapper;
import au.com.royalpay.payment.manage.mappers.system.ClientBDMapper;
import au.com.royalpay.payment.manage.mappers.system.ClientDeviceTokenMapper;
import au.com.royalpay.payment.manage.mappers.system.ClientMapper;
import au.com.royalpay.payment.manage.mappers.system.ClientBDMapper;
import au.com.royalpay.payment.manage.notice.core.MailService;
import au.com.royalpay.payment.manage.pushMessage.APNSMessageHelper;
import au.com.royalpay.payment.manage.pushMessage.bean.AppManagerMessageBuilder;
@ -20,32 +21,31 @@ import au.com.royalpay.payment.manage.riskbusiness.core.RiskBusinessService;
import au.com.royalpay.payment.manage.riskbusiness.core.RiskMaterialService;
import au.com.royalpay.payment.manage.riskbusiness.core.RiskProcessLogService;
import au.com.royalpay.payment.manage.riskbusiness.enums.RiskEmailStatusEnum;
import au.com.royalpay.payment.manage.riskbusiness.enums.RiskOrderTypeEnum;
import au.com.royalpay.payment.manage.riskbusiness.enums.RiskResultTypeEnum;
import au.com.royalpay.payment.manage.signin.beans.TodoNotice;
import au.com.royalpay.payment.manage.signin.core.ManagerTodoNoticeProvider;
import au.com.royalpay.payment.manage.tradelog.core.TradeLogService;
import au.com.royalpay.payment.manage.riskbusiness.enums.RiskOrderTypeEnum;
import au.com.royalpay.payment.tools.device.message.AppMessage;
import au.com.royalpay.payment.tools.device.message.AppMsgSender;
import au.com.royalpay.payment.tools.env.PlatformEnvironment;
import au.com.royalpay.payment.tools.exceptions.BadRequestException;
import au.com.royalpay.payment.tools.exceptions.ServerErrorException;
import au.com.royalpay.payment.tools.locale.LocaleSupport;
import au.com.royalpay.payment.tools.permission.enums.ManagerRole;
import au.com.royalpay.payment.tools.exceptions.ServerErrorException;
import au.com.royalpay.payment.tools.threadpool.RoyalThreadPoolExecutor;
import au.com.royalpay.payment.tools.utils.PageListUtils;
import com.alibaba.fastjson.JSON;
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.codec.binary.Base64;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -55,19 +55,17 @@ import org.springframework.transaction.annotation.Transactional;
import org.thymeleaf.context.Context;
import org.thymeleaf.spring4.SpringTemplateEngine;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.*;
import java.net.URL;
import java.text.ParseException;
import java.util.*;
import javax.annotation.Resource;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import java.util.concurrent.TimeUnit;
/**
* @Author lvjian
@ -254,7 +252,10 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
if (client != null && StringUtils.isNotBlank(realOrderIds)) {
String[] orderIdArray = realOrderIds.trim().split(",");
JSONObject orderInfo = new JSONObject();
// 获取订单信息
/**
*
*
*/
if (riskEvent.getIntValue("order_type") == 3) {
for (int i = 0; i < orderIdArray.length; i++) {
orderInfo = tradeLogService.getOrderDetail(new JSONObject(), riskEvent.getString("client_moniker"), orderIdArray[i], null);
@ -322,6 +323,14 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
}
return params;
}
/**
*
* risk_orders
*
* @param params
* @param manager
*/
@Override
public void addRiskEvent(JSONObject params, JSONObject manager) {
params = getEvent(params);
@ -359,6 +368,11 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
setRiskOrders(params);
}
/**
*
* @param riskId
* @param response
*/
@Override
public void downloadAuditMaterialZiP(String riskId, HttpServletResponse response) {
@ -369,13 +383,13 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
param.put("orderby_type", "update_time");
JSONObject riskMaterial = getRiskMaterial(param);
try {
String downloadFilename = clientMoniker + "_audit_materials_" + DateFormatUtils.format(new Date(), "dd/MM/yyyy HH:mm:ss") + ".zip";
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());
for(int i=1;i<=6;i++){
if(riskMaterial.containsKey("file"+i)){
List<String> fileList= (List<String>)riskMaterial.get("file"+i);
for(int i = 1; i <= 6; i++){
if(riskMaterial.containsKey("file" + i)){
List<String> fileList= (List<String>) riskMaterial.get("file"+i);
for(String fileUrl : fileList){
zos.putNextEntry(new ZipEntry("file" + i+fileUrl.substring(fileUrl.lastIndexOf("/"))));
InputStream inputStream = new URL(fileUrl).openConnection().getInputStream();
@ -395,6 +409,14 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
}
}
/**
*
*
*
* App
* @param riskId
* @throws IOException
*/
@Override
public void sendUploadEmail(String riskId) throws IOException {
JSONObject event = getRiskEventDetail(riskId);
@ -435,6 +457,11 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
});
}
/**
* App
* risk
* @param event
*/
private void sendAppRiskMessage(JSONObject event){
JSONObject client = clientMapper.findClientByMoniker(event.getString("client_moniker"));
logger.debug("sendRiskAppMessage-" + client.getString("client_moniker") + "-" + "risk_id:"+event.getString("risk_id"));
@ -479,6 +506,15 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
}
}
/**
*
* @param dev_id
* @param client_id
* @param messageType
* @param dev_token
* @param remark
* @return
*/
private JSONObject saveAppMessageLog(String dev_id, int client_id, String messageType, String dev_token, String remark) {
JSONObject log = new JSONObject();
log.put("dev_id", dev_id);
@ -492,6 +528,15 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
}
/**
*
*
*
*
* @param riskId
* @param refuseDescription
* @throws IOException
*/
@Transactional
@Override
public void sendRefuseEmail(String riskId, String refuseDescription) throws IOException {
@ -520,7 +565,6 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
event.put("result_type",RiskResultTypeEnum.MATERIAL_NOT_PASS.getResultType());
event.put("submit_url",uploadUrl);
riskEventMapper.update(event);
// 日志记录
riskProcessLogService.addRiskProcessLog(riskId,
event.getString("fillin_id"),
event.getString("fillin_person"),
@ -533,6 +577,11 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
});
}
/**
*
* @param riskId
* @throws IOException
*/
@Override
public void sendUrgeEmail(String riskId) throws IOException {
JSONObject event = getRiskEventDetail(riskId);
@ -616,16 +665,49 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
List<JSONObject> orders = new ArrayList();
int isSendClient = event.getIntValue("is_send_client");
ctx.setVariable("emailsTos", bdEmails);
// 内部调单需要密送的人
List<String> emailsBccs = new ArrayList<>(Arrays.asList(
"locky@royalpay.com.au ", "leo.huang@royalpay.com.au",
"mona.zhang@royalpay.com.au", "weixinfengkong@royalpay.com.au", "thomas.li@royalpay.com.au"
));
/**
*
* bd
* bdemailsBccs
*
*
* "18852852189@163.com"
*
* Arrays.asList("18852852189@139.com", "1370256381@qq.com")debug
*/
if (isSendClient == 1) {
ctx.setVariable("emailsTos", clientEmails);
ctx.setVariable("emailsCcs", bdEmails);
if (orderType == RiskOrderTypeEnum.ROYALPAY_ORDER.getOrderType().intValue()) {
ctx.setVariable("emailsBccs", Arrays.asList(
// "locky@royalpay.com.au ", "zoe.tao@royalpay.com.au", "leo.huang@royalpay.com.au",
// "mona.zhang@royalpay.com.au", "weixinfengkong@royalpay.com.au", "thomas.li@royalpay.com.au"
ctx.setVariable("emailsCcs", null);
if (PlatformEnvironment.getEnv().isDebug()) {
emailsBccs = new ArrayList<>(Arrays.asList(
"18852852189@139.com", "1370256381@qq.com"
));
}
emailsBccs.addAll(bdEmails);
ctx.setVariable("emailsBccs", emailsBccs);
}
} else {
if (orderType == RiskOrderTypeEnum.ROYALPAY_ORDER.getOrderType().intValue()) {
if (PlatformEnvironment.getEnv().isDebug()) {
emailsBccs = new ArrayList<>(Arrays.asList(
"18852852189@139.com", "1370256381@qq.com"
));
}
emailsBccs.addAll(bdEmails);
ctx.setVariable("emailsBccs", emailsBccs);
ctx.setVariable("emailsTos", Arrays.asList(
"18852852189@163.com"
));
}
}
switch (event.getIntValue("order_type")){
@ -674,6 +756,11 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
return UPLOAD_MAIL_PREFIX + codeKey;
}
/**
*
* @param param
* @return
*/
@Override
public JSONObject getRiskMaterial(JSONObject param) {
List<JSONObject> riskMaterialList = riskMaterialMapper.findAllMaterials(param.getString("risk_id"));
@ -682,14 +769,14 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
List<JSONObject> files = riskFileMapper.findAllFiles(fileNew.getString("material_id"));
for(JSONObject file : files){
int fileType = file.getIntValue("file_type");
if(!fileNew.containsKey("file"+fileType)){
if(!fileNew.containsKey("file" + fileType)){
List<String> fileList = new ArrayList<>();
fileList.add(file.getString("file_url"));
fileNew.put("file"+fileType,fileList);
fileNew.put("file" + fileType, fileList);
}else{
List<String> fileList = (List<String>)fileNew.get("file"+fileType);
List<String> fileList = (List<String>) fileNew.get("file"+fileType);
fileList.add(file.getString("file_url"));
fileNew.put("file"+fileType,fileList);
fileNew.put("file" + fileType, fileList);
}
}
return fileNew;
@ -698,6 +785,12 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
return null;
}
/**
* system_transaction_idorder_id
* real_order_idorder_id,
* real_order_id
* client_idreal_order_id
*/
@Override
@Transactional
public void completeEventRealOrderIds() {
@ -849,12 +942,17 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
return "";
}
/**
*
* @param manager
* @param notices
*/
@Override
public void checkTodo(JSONObject manager, List<TodoNotice> notices) {
/**
* 1BD
* 2BD
* 3
* 3退noticeFlagtrue
*/
if (ManagerRole.BD_USER.hasRole(manager.getIntValue("role"))) {
JSONObject params = new JSONObject();
@ -891,6 +989,11 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
riskEventMapper.deleteRiskEvent(riskId);
}
/**
*
* @param clientId
* @return
*/
@Override
public JSONObject getNoticeInfo(int clientId) {
@ -914,6 +1017,13 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
return result;
}
/**
*
*
*
* @param riskId
* @return
*/
@Override
public JSONObject getRiskEventMaterialsRemark(String riskId) {
JSONObject riskEvent = riskEventMapper.findById(riskId);
@ -1017,11 +1127,14 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
return event;
}
/**
* risk_orders
*/
@Override
public void completeOrderAmount() {
List<JSONObject> riskEventList = getRiskEvents(null);
for(JSONObject riskEvent:riskEventList){
if(riskEvent.getIntValue("order_type")==4 || StringUtils.isBlank(riskEvent.getString("real_order_ids"))){
if(riskEvent.getIntValue("order_type") == 4 || StringUtils.isBlank(riskEvent.getString("real_order_ids"))){
continue;
}
String[] order_ids=riskEvent.getString("real_order_ids").split(",");

Loading…
Cancel
Save