|
|
|
@ -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,14 +665,47 @@ 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;
|
|
|
|
|
* 如果是内部调单,密送bd与上面定义的‘emailsBccs’
|
|
|
|
|
* 如果没有勾选发送商户
|
|
|
|
|
* 如果不是内部调单,直接发送商户;
|
|
|
|
|
* 如果是内部调单,则自定义“"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"
|
|
|
|
|
"18852852189@139.com", "1370256381@qq.com"
|
|
|
|
|
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"
|
|
|
|
|
));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -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_id当做order_id,
|
|
|
|
|
* 所以新增real_order_id作为order_id,
|
|
|
|
|
* 对已经建立的风控事件,补全real_order_id字段
|
|
|
|
|
* 后面查找订单时会根据client_id与real_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) {
|
|
|
|
|
/**
|
|
|
|
|
* 1、判断登录的角色是不是BD
|
|
|
|
|
* 2、列出BD管理的商户
|
|
|
|
|
* 3、
|
|
|
|
|
* 3、遍历商户,如果有调单事件退出循环,noticeFlag设为true
|
|
|
|
|
*/
|
|
|
|
|
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(",");
|
|
|
|
|