106 lines
4.3 KiB
Java
106 lines
4.3 KiB
Java
package com.ample.esb.controller;
|
||
|
||
import com.amarsoft.are.ARE;
|
||
import com.amarsoft.are.jbo.BizObject;
|
||
import com.amarsoft.are.jbo.BizObjectManager;
|
||
import com.amarsoft.are.jbo.JBOException;
|
||
import com.amarsoft.are.jbo.JBOFactory;
|
||
import com.ample.esb.bean.esb.*;
|
||
import com.ample.esb.util.BaicPropertiesUtil;
|
||
import com.ample.esb.util.DateUtils;
|
||
import com.ample.esb.util.XstreamUtil;
|
||
import com.ample.sms.FileUtil;
|
||
import jbo.oti.RC_SCORE_RESULT;
|
||
|
||
import javax.servlet.ServletException;
|
||
import javax.servlet.http.HttpServlet;
|
||
import javax.servlet.http.HttpServletRequest;
|
||
import javax.servlet.http.HttpServletResponse;
|
||
import java.io.BufferedReader;
|
||
import java.io.IOException;
|
||
import java.io.InputStreamReader;
|
||
import java.io.PrintWriter;
|
||
|
||
public class AfsResultServlet extends HttpServlet {
|
||
private static final long serialVersionUID = 1L;
|
||
public void doPost(HttpServletRequest request, HttpServletResponse response) {
|
||
System.out.println("反欺诈人工判定结果请求回调开始!");
|
||
response.setContentType("application/x-www-form-urlencoded;charset:utf-8");
|
||
response.setHeader("Cache-Control", "no-store");
|
||
response.setHeader("Pragma", "no-cache");
|
||
response.setDateHeader("Expires", 0L);
|
||
response.setCharacterEncoding("utf-8");
|
||
PrintWriter out = null;
|
||
String resultXml = null;
|
||
try {
|
||
out = response.getWriter();
|
||
BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
|
||
StringBuilder sb = new StringBuilder();
|
||
String line = null;
|
||
while ((line = in.readLine()) != null) {
|
||
sb.append(line);
|
||
}
|
||
resultXml = sb.toString();
|
||
ARE.getLog().info("接收到Rpt记录:" + resultXml);
|
||
} catch (IOException e) {
|
||
e.printStackTrace();
|
||
}
|
||
|
||
out.print(updateResult(resultXml));
|
||
out.close();
|
||
|
||
}
|
||
|
||
public String updateResult(String requestXml){
|
||
Transaction tran = (Transaction)XstreamUtil.objectConvert(requestXml);
|
||
String logPath = BaicPropertiesUtil.get("log_path");
|
||
String globalSeqNo = tran.getMessageEsbHead().getGlobalSeqNo();
|
||
String projectNo = tran.getMessageBody().getAfsResultRequest().getApplyNo();
|
||
FileUtil.writeFile(logPath + projectNo +"_"+ globalSeqNo +"_request.txt", requestXml);
|
||
String fraudAlert = tran.getMessageBody().getAfsResultRequest().getFraudAlert();
|
||
String actionTaken = tran.getMessageBody().getAfsResultRequest().getActionTaken();
|
||
BizObjectManager bom = null;
|
||
BizObject boRsr = null;
|
||
try {
|
||
bom = JBOFactory.getBizObjectManager(RC_SCORE_RESULT.CLASS_NAME);
|
||
boRsr = bom.createQuery("project_no=:projectNo").setParameter("projectNo",projectNo).getSingleResult(true);
|
||
boRsr.setAttributeValue("fraud_alert_code",fraudAlert);
|
||
boRsr.setAttributeValue("fraud_taken_code",actionTaken);
|
||
boRsr.setAttributeValue("updatetime", DateUtils.dateTimeNowCore());
|
||
bom.saveObject(boRsr);
|
||
} catch (JBOException e) {
|
||
e.printStackTrace();
|
||
}
|
||
Response rs = new Response();
|
||
rs.setResult("Successful");
|
||
MessageBody mb = new MessageBody();
|
||
mb.setResponse(rs);
|
||
tran.setMessageBody(mb);
|
||
MessageEsbHead esbHead = tran.getMessageEsbHead();
|
||
esbHead.setTargetMachineDate(DateUtils.dateNow());
|
||
esbHead.setTargetMachineTime(DateUtils.TimeNowAccurate());
|
||
esbHead.setTargetReciveDate(DateUtils.dateNow());
|
||
esbHead.setTargetReciveTime(DateUtils.TimeNowAccurate());
|
||
esbHead.setRetCommStatus("S");
|
||
esbHead.setRetCode("000000");
|
||
esbHead.setRetMsg("成功");
|
||
esbHead.setRetSystemId("APF");
|
||
|
||
MessageAppHead appHead = tran.getMessageAppHead();
|
||
appHead.setTargetTranDate(DateUtils.dateNow());
|
||
appHead.setTargetTranTime(DateUtils.TimeNowAccurate());
|
||
|
||
String responseXml = XstreamUtil.xmlConvert(tran);
|
||
FileUtil.writeFile(logPath + projectNo +"_"+ globalSeqNo +"_response.txt", responseXml);
|
||
|
||
return responseXml;
|
||
|
||
}
|
||
|
||
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
|
||
doPost(request, response);
|
||
}
|
||
|
||
|
||
}
|