apzl_leasing/src/com/ample/esb/controller/AfsResultServlet.java
2023-08-31 18:10:26 +08:00

106 lines
4.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
}