package com.java110.core.context;
|
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.java110.common.constant.CommonConstant;
|
import com.java110.common.util.DateUtil;
|
import com.java110.common.util.StringUtil;
|
import com.java110.core.factory.GenerateCodeFactory;
|
import com.java110.entity.center.AppRoute;
|
import com.java110.entity.center.Business;
|
import org.springframework.http.ResponseEntity;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 主要用于离散成对象 httpApi service 请求过程消息记录和返回记录
|
* Created by wuxw on 2018/4/13.
|
*/
|
public class ApiDataFlow extends AbstractDataFlowContext {
|
|
private String appId;
|
|
private String ip;
|
|
private String apiCurrentService;
|
|
private String reqSign;
|
|
private String resSign;
|
|
private String requestURL;
|
|
|
private List<AppRoute> appRoutes = new ArrayList<AppRoute>();
|
//请求业务系统报文
|
private JSONObject requestBusinessJson;
|
|
//业务系统返回报文
|
private JSONObject responseBusinessJson;
|
//rest 返回对象
|
private ResponseEntity responseEntity;
|
|
|
|
|
|
public ApiDataFlow(Date startDate, String code){
|
super(startDate,code);
|
}
|
|
public void setAppId(String appId) {
|
this.appId = appId;
|
}
|
|
|
|
public void setReqSign(String reqSign) {
|
this.reqSign = reqSign;
|
}
|
|
|
|
public void setResSign(String resSign) {
|
this.resSign = resSign;
|
}
|
|
|
|
|
public String getAppId() {
|
return appId;
|
}
|
|
|
|
public String getReqSign() {
|
return reqSign;
|
}
|
|
@Override
|
public Orders getOrder() {
|
return this;
|
}
|
|
public String getResSign() {
|
return resSign;
|
}
|
|
|
|
public String getRequestURL() {
|
return requestURL;
|
}
|
|
public void setRequestURL(String requestURL) {
|
this.requestURL = requestURL;
|
}
|
|
|
public List<AppRoute> getAppRoutes() {
|
return appRoutes;
|
}
|
|
public void addAppRoutes(AppRoute appRoute) {
|
this.appRoutes.add(appRoute);
|
}
|
|
public String getIp() {
|
return ip;
|
}
|
|
public void setIp(String ip) {
|
this.ip = ip;
|
}
|
|
public ApiDataFlow doBuilder(String reqInfo, Map<String,String> headerAll) throws Exception{
|
|
try{
|
JSONObject reqInfoObj = JSONObject.parseObject(reqInfo);
|
|
this.setReqData(reqInfo);
|
this.setReqJson(reqInfoObj);
|
this.setDataFlowId("-1");
|
this.setAppId(headerAll.get(CommonConstant.HTTP_APP_ID));
|
this.setTransactionId(headerAll.get(CommonConstant.HTTP_TRANSACTION_ID));
|
this.setReqSign(headerAll.get(CommonConstant.HTTP_SIGN));
|
this.setRequestTime(headerAll.get(CommonConstant.HTTP_REQ_TIME));
|
|
if (headerAll != null){
|
this.requestHeaders.putAll(headerAll);
|
this.requestCurrentHeaders.putAll(headerAll);
|
this.setRequestURL(requestHeaders.get("REQUEST_URL"));
|
this.setIp(requestHeaders.get("IP"));
|
}
|
|
|
}catch (Exception e){
|
|
throw e;
|
}
|
return this;
|
}
|
|
/**
|
* 透传时构建对象
|
* @param reqInfo
|
* @param headerAll
|
* @return
|
* @throws Exception
|
*/
|
public ApiDataFlow builderTransfer(String reqInfo, Map<String,String> headerAll) throws Exception{
|
|
try{
|
this.setReqData(reqInfo);
|
this.setDataFlowId("-1");
|
this.setAppId(headerAll.get(CommonConstant.HTTP_APP_ID));
|
this.setTransactionId(headerAll.get(CommonConstant.HTTP_TRANSACTION_ID));
|
this.setReqSign(headerAll.get(CommonConstant.HTTP_SIGN));
|
this.setRequestTime(headerAll.get(CommonConstant.HTTP_REQ_TIME));
|
|
if (headerAll != null){
|
this.requestHeaders.putAll(headerAll);
|
this.requestCurrentHeaders.putAll(headerAll);
|
this.setRequestURL(requestHeaders.get("REQUEST_URL"));
|
this.setIp(requestHeaders.get("IP"));
|
}
|
|
|
}catch (Exception e){
|
|
throw e;
|
}
|
return this;
|
}
|
|
@Override
|
public String getServiceCode() {
|
return apiCurrentService;
|
}
|
|
public void setApiCurrentService(String apiCurrentService) {
|
this.apiCurrentService = apiCurrentService;
|
}
|
|
|
@Override
|
public void setResponseEntity(ResponseEntity responseEntity){
|
this.responseEntity = responseEntity;
|
}
|
|
|
public ResponseEntity getResponseEntity(){
|
return responseEntity;
|
}
|
}
|