wuxw7
2018-06-17 288d590fbca6f7d884b7398d4c0e1921b04e128d
java110-core/src/main/java/com/java110/core/context/AbstractDataFlowContext.java
@@ -2,19 +2,26 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.common.factory.ApplicationContextFactory;
import com.java110.common.log.LoggerEngine;
import com.java110.common.util.DateUtil;
import com.java110.entity.center.Business;
import com.java110.entity.center.DataFlowLinksCost;
import com.java110.entity.center.DataFlowLog;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.*;
/**
 * 数据流上下文
 * Created by wuxw on 2018/5/18.
 */
public abstract class AbstractDataFlowContext implements DataFlowContext,Orders{
public abstract class AbstractDataFlowContext extends AbstractTransactionLog implements DataFlowContext,Orders,TransactionLog{
    private String dataFlowId;
    private String businessType;
    //交易流水
    private String transactionId;
@@ -33,9 +40,13 @@
    private String message;
    private String reqData;
    private JSONObject reqJson;
    private JSONObject resJson;
    private String resData;
    protected List<Business> businesses;
@@ -45,7 +56,10 @@
    private List<DataFlowLog> logDatas = new ArrayList<DataFlowLog>();
    protected Map<String,String> headers = new HashMap<String,String>();
    protected Map<String,String> requestHeaders = new HashMap<String,String>();
    protected Map<String,String> requestCurrentHeaders = new HashMap<String,String>();
    protected Map<String,String> responseHeaders = new HashMap<String,String>();
    protected Map<String,String> responseCurrentHeaders = new HashMap<String,String>();
    //请求开始时间
    private Date startDate;
@@ -60,7 +74,37 @@
     * @return
     * @throws Exception
     */
    public abstract DataFlowContext builder(String reqInfo, Map<String,String> headerAll) throws Exception;
    public  <T> T builder(String reqInfo, Map<String,String> headerAll) throws Exception{
        //预处理
        preBuilder(reqInfo, headerAll);
        //调用builder
        T dataFlowContext = (T)doBuilder(reqInfo, headerAll);
        //后处理
        afterBuilder((DataFlowContext) dataFlowContext);
        return dataFlowContext;
    }
    /**
     * 预处理
     * @param reqInfo
     * @param headerAll
     */
    protected void preBuilder(String reqInfo, Map<String,String> headerAll) {
        super.preBuilder(reqInfo,headerAll);
    }
    /**
     * 构建对象
     * @param reqInfo
     * @param headerAll
     * @return
     * @throws Exception
     */
    public abstract DataFlowContext doBuilder(String reqInfo, Map<String,String> headerAll) throws Exception;
    protected void afterBuilder(DataFlowContext dataFlowContext){
    }
    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
@@ -146,18 +190,29 @@
        this.endDate = endDate;
    }
    public Map<String, String> getHeaders() {
        return headers;
    public Map<String, String> getRequestHeaders() {
        return requestHeaders;
    }
    public JSONObject getReqJson() {
        return reqJson;
    public Map<String, String> getResponseHeaders() {
        return responseHeaders;
    }
    public void setReqJson(JSONObject reqJson) {
        this.reqJson = reqJson;
    public Map<String, String> getRequestCurrentHeaders() {
        return requestHeaders;
    }
    public Map<String, String> getResponseCurrentHeaders() {
        return responseHeaders;
    }
    public String getReqData() {
        return reqData;
    }
    public void setReqData(String reqData) {
        this.reqData = reqData;
    }
    public JSONObject getResJson() {
        return resJson;
@@ -165,6 +220,7 @@
    public void setResJson(JSONObject resJson) {
        this.resJson = resJson;
        this.setResData(resJson.toJSONString());
    }
    public List<DataFlowLinksCost> getLinksCostDates() {
@@ -213,6 +269,16 @@
    public String getUserId(){return null;};
    @Override
    public void setAppId(String appId) {
    }
    @Override
    public void setUserId(String userId) {
    }
    public String getRemark(){return null;};
    public String getReqSign(){return null;};
@@ -220,21 +286,75 @@
    public JSONArray getAttrs(){return null;};
    public String getBusinessType() {
        return null;
        return businessType;
    }
    public void setBusinessType(String businessType) {
        this.businessType = businessType;
    }
    public Map<String, Object> getParamOut() {
        return null;
    }
    public void addParamOut(String key,Object value) {
    public String getResData() {
        return resData;
    }
    public void setResData(String resData) {
        this.resData = resData;
    }
    public JSONObject getReqJson() {
        return reqJson;
    }
    public void setReqJson(JSONObject reqJson) {
        this.reqJson = reqJson;
    }
    public void addParamOut(String key, Object value) {
    }
    public void setPort(String port) {
        this.port = port;
    }
    public String getbId(){
        return null;
    }
    public String getLogId(){
        return getbId();
    }
    /**
     * 业务编码 当前需要处理的业务编码,可以写将要请求服务提供方的方法名
     * 主要用于 日志端展示
     * @return 当前服务编码
     */
    public String getServiceCode(){
        if(this.currentBusiness != null){
            return currentBusiness.getServiceCode();
        }
        return "";
    }
    /**
     * 业务名称 当前需要处理的业务名称,可以当前调用的业务名称 如 商品购买 等
     * 主要用于 日志端展示
     * @return 当前服务名称
     */
    public String getServiceName(){
        if(this.currentBusiness != null){
            return currentBusiness.getServiceName();
        }
        return "";
    }
    public abstract Orders getOrder();
    protected AbstractDataFlowContext(Date startDate, String code){