@ -252,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 ) ;
@ -320,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 ) ;
@ -357,6 +368,11 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
setRiskOrders ( params ) ;
}
/ * *
* 下 载 审 核 材 料
* @param riskId
* @param response
* /
@Override
public void downloadAuditMaterialZiP ( String riskId , HttpServletResponse response ) {
@ -371,9 +387,9 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
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 ( ) ;
@ -393,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 ) ;
@ -433,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" ) ) ;
@ -477,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 ) ;
@ -490,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 {
@ -518,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" ) ,
@ -531,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 ) ;
@ -614,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"
) ) ;
}
}
@ -672,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" ) ) ;
@ -680,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 ;
@ -696,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 ( ) {
@ -847,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 ( ) ;
@ -889,6 +989,11 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo
riskEventMapper . deleteRiskEvent ( riskId ) ;
}
/ * *
* 某 个 商 户 是 否 存 在 调 单 事 件
* @param clientId
* @return
* /
@Override
public JSONObject getNoticeInfo ( int clientId ) {
@ -912,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 ) ;
@ -1015,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 ( "," ) ;