package com.java110.core.context; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 应用上下文对象 * Created by wuxw on 2017/4/22. */ public class AppContext { /** * olId 主键前缀 */ public final static String PREFIX_OLID = "OLID_"; /** * custId 主键前缀 */ public final static String PREFIX_CUSTID = "CUSTID_"; /** * 订单动作 */ private String bo_action_type; /** * 为了满足 一个单子上有 多个 olId,custId 不同的处理, * key 为 olId,custId 默认 前缀加 请求时的 值 如 OLID_-1 * value 通过生单后生成的 值 如 12345678 * * 后期取值时通过订单原始请求报文中 olId,custId 对应的值 从map 中获取 */ private Map keyIdMap = null; /** * 返回报文 */ private JSONObject rspJson; private Object reqObj; /** * 存放订单data节点 */ private Map datas = null; public static AppContext newInstance(){ AppContext context = new AppContext(); context.keyIdMap = new HashMap(); context.datas = new HashMap(); return context; } /** * 添加 数据 * @param data */ public void addData(String actionTypeCd , JSONArray data){ synchronized (datas){ datas.put(actionTypeCd,data); } } public void coverData(Map datas){ this.datas = datas; } /** * 获取 所有数据 * @return */ public Map getAllDatas(){ return datas; } /** * 根据 动作类型获取 数据 * @param actionTypeCd * @return */ public JSONArray getDatasByActionTypeCd(String actionTypeCd){ return datas.get(actionTypeCd); } /** * * 根据 原始的olId的值获取新生成的值 * @param originalKeyIdValue 原始的olId 值 如请求订单中的olId 为 -1 这里就写-1 * @param defalutValue 如果获取不到对应的值则返回默认值 * @return */ public String getKeyId(String originalKeyIdValue,String defalutValue){ if(keyIdMap.containsKey(originalKeyIdValue)){ return keyIdMap.get(originalKeyIdValue); } return defalutValue; } /** * 设置新生成的主键值 * @param prefix * @param originalKeyIdValue * @param newValue */ public void setKeyId(String prefix,String originalKeyIdValue,String newValue){ keyIdMap.put(prefix+originalKeyIdValue,newValue); } public JSONObject getRspJson() { return rspJson; } public void setRspJson(JSONObject rspJson) { this.rspJson = rspJson; } public Object getReqObj() { return reqObj; } public void setReqObj(Object reqObj) { this.reqObj = reqObj; } public String getBo_action_type() { return bo_action_type; } public void setBo_action_type(String bo_action_type) { this.bo_action_type = bo_action_type; } }