Преглед изворни кода

优化 api listener 开发间接

java110 пре 5 година
родитељ
комит
f8655de7b2

+ 5 - 0
Api/src/main/java/com/java110/api/listener/AbstractServiceApiListener.java

@@ -53,4 +53,9 @@ public abstract class AbstractServiceApiListener extends AbstractServiceApiDataF
     protected abstract void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson);
 
 
+    @Override
+    public int getOrder() {
+        return 0;
+    }
+
 }

+ 287 - 0
Api/src/main/java/com/java110/api/listener/AbstractServiceApiPlusListener.java

@@ -0,0 +1,287 @@
+package com.java110.api.listener;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.context.DataFlowContext;
+import com.java110.entity.center.AppService;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.util.BeanConvertUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.HttpStatusCodeException;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.Map;
+
+/**
+ * 主要目的将soService 方法拆分为校验部分 和业务处理部分
+ * Created by wuxw on 2018/11/15.
+ */
+public abstract class AbstractServiceApiPlusListener extends AbstractServiceApiDataFlowListener {
+
+    private static Logger logger = LoggerFactory.getLogger(AbstractServiceApiPlusListener.class);
+
+    //订单服务统一地址,这个不会变,直接在这里写死
+    private String ORDER_SERVICE_URL = "http://order-service/orderApi/service";
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    /**
+     * 业务处理
+     *
+     * @param event
+     */
+    public final void soService(ServiceDataFlowEvent event) {
+
+        DataFlowContext dataFlowContext = event.getDataFlowContext();
+        //获取请求数据
+        JSONObject reqJson = dataFlowContext.getReqJson();
+
+        logger.debug("API服务 --- 请求参数为:{}", reqJson.toJSONString());
+
+        validate(event, reqJson);
+
+
+        doSoService(event, dataFlowContext, reqJson);
+
+        //服务合并处理
+        JSONObject paramIn = mergeService(dataFlowContext);
+
+
+        ResponseEntity<String> responseEntity = this.callOrderService(dataFlowContext, paramIn);
+
+        dataFlowContext.setResponseEntity(responseEntity);
+
+        logger.debug("API服务 --- 返回报文信息:{}", dataFlowContext.getResponseEntity());
+
+    }
+
+    /**
+     * 合并服务 拼接最终报文
+     *
+     * @param dataFlowContext
+     * @return
+     */
+    private JSONObject mergeService(DataFlowContext dataFlowContext) {
+        JSONArray services = dataFlowContext.getServiceBusiness();
+
+        JSONArray tmpServices = new JSONArray();
+
+        JSONObject service = null;
+        JSONObject existsService = null;
+        for (int serIndex = 0; serIndex < services.size(); serIndex++) {
+            service = services.getJSONObject(serIndex);
+            service.put(CommonConstant.HTTP_SEQ, serIndex + 1);
+            existsService = getTmpService(tmpServices, service.getString(CommonConstant.HTTP_BUSINESS_TYPE_CD));
+            if (existsService == null) {
+                tmpServices.add(service);
+                continue;
+            }
+            JSONObject data = existsService.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS);
+            //获取到business
+            JSONArray businesses = data.getJSONArray(service.getString(CommonConstant.HTTP_BUSINESS_TYPE_CD));
+            JSONObject tmpData = service.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS);
+            businesses.addAll(tmpData.getJSONArray(service.getString(CommonConstant.HTTP_BUSINESS_TYPE_CD)));
+        }
+
+        return restToCenterProtocol(tmpServices, dataFlowContext.getRequestCurrentHeaders());
+    }
+
+    /**
+     * 临时服务中 是否包含当前业务
+     *
+     * @param tmpServices  临时服务
+     * @param businessType 当前业务
+     * @return 包含为true 否则为 false
+     */
+    private JSONObject getTmpService(JSONArray tmpServices, String businessType) {
+        if (tmpServices == null || tmpServices.size() < 1) {
+            return null;
+        }
+        for (int serIndex = 0; serIndex < tmpServices.size(); serIndex++) {
+            if (businessType.equals(tmpServices.getJSONObject(serIndex).getString(CommonConstant.HTTP_BUSINESS_TYPE_CD))) {
+                return tmpServices.getJSONObject(serIndex);
+            }
+        }
+
+        return null;
+    }
+
+
+    /**
+     * 将rest 协议转为 订单协议
+     *
+     * @param businesses 多个业务
+     * @param headers    订单头信息
+     * @return
+     */
+    public JSONObject restToCenterProtocol(JSONArray businesses, Map<String, String> headers) {
+
+        JSONObject centerProtocol = JSONObject.parseObject("{\"orders\":{},\"business\":[]}");
+        freshOrderProtocol(centerProtocol.getJSONObject("orders"), headers);
+        centerProtocol.put("business", businesses);
+        return centerProtocol;
+    }
+
+    /**
+     * 刷入order信息
+     *
+     * @param orders  订单信息
+     * @param headers 头部信息
+     */
+    public void freshOrderProtocol(JSONObject orders, Map<String, String> headers) {
+        for (String key : headers.keySet()) {
+
+            if (CommonConstant.HTTP_APP_ID.equals(key)) {
+                orders.put("appId", headers.get(key));
+            }
+            if (CommonConstant.HTTP_TRANSACTION_ID.equals(key)) {
+                orders.put("transactionId", headers.get(key));
+            }
+            if (CommonConstant.HTTP_SIGN.equals(key)) {
+                orders.put("sign", headers.get(key));
+            }
+
+            if (CommonConstant.HTTP_REQ_TIME.equals(key)) {
+                orders.put("requestTime", headers.get(key));
+            }
+            if (CommonConstant.HTTP_ORDER_TYPE_CD.equals(key)) {
+                orders.put("orderTypeCd", headers.get(key));
+            }
+            if (CommonConstant.HTTP_USER_ID.equals(key)) {
+                orders.put("userId", headers.get(key));
+            }
+
+            if (CommonConstant.ORDER_PROCESS.equals(key)) {
+                orders.put("orderProcess", headers.get(CommonConstant.ORDER_PROCESS));
+            }
+
+            if (CommonConstant.O_ID.equals(key)) {
+                orders.put("oId", headers.get(CommonConstant.O_ID));
+            }
+        }
+
+    }
+
+    /**
+     * 数据格式校验方法
+     *
+     * @param event   事件对象
+     * @param reqJson 请求报文数据
+     */
+    protected abstract void validate(ServiceDataFlowEvent event, JSONObject reqJson);
+
+
+    /**
+     * 业务处理类
+     *
+     * @param event   事件对象
+     * @param context 数据上文对象
+     * @param reqJson 请求报文
+     */
+    protected abstract void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson);
+
+
+    @Override
+    public int getOrder() {
+        return 0;
+    }
+
+    /**
+     * 新增数据方法
+     *
+     * @param context 上下文对象
+     * @param param   po对象
+     */
+    public void insert(DataFlowContext context, Object param, String businessType) {
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, businessType);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject businessObj = new JSONObject();
+        businessObj = BeanConvertUtil.covertBean(param, businessObj);
+        JSONArray businessArr = new JSONArray();
+        businessArr.add(businessObj);
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(businessType, businessArr);
+        context.addServiceBusiness(business);
+    }
+
+    /**
+     * 新增数据方法
+     *
+     * @param context 上下文对象
+     * @param param   po对象
+     */
+    public void update(DataFlowContext context, Object param, String businessType) {
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, businessType);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject businessObj = new JSONObject();
+        businessObj = BeanConvertUtil.covertBean(param, businessObj);
+        JSONArray businessArr = new JSONArray();
+        businessArr.add(businessObj);
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(businessType, businessArr);
+        context.addServiceBusiness(business);
+    }
+
+    /**
+     * 新增数据方法
+     *
+     * @param context 上下文对象
+     * @param param   po对象
+     */
+    public void delete(DataFlowContext context, Object param, String businessType) {
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, businessType);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject businessObj = new JSONObject();
+        businessObj = BeanConvertUtil.covertBean(param, businessObj);
+        JSONArray businessArr = new JSONArray();
+        businessArr.add(businessObj);
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(businessType, businessArr);
+        context.addServiceBusiness(business);
+    }
+
+
+    /**
+     * 调用下游服务
+     *
+     * @param context
+     * @return
+     */
+    public ResponseEntity<String> callOrderService(DataFlowContext context, JSONObject paramIn) {
+
+        context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
+        ResponseEntity responseEntity = null;
+        if (paramIn == null || paramIn.isEmpty()) {
+            paramIn = context.getReqJson();
+        }
+        String serviceUrl = ORDER_SERVICE_URL;
+        HttpEntity<String> httpEntity = null;
+        HttpHeaders header = new HttpHeaders();
+        for (String key : context.getRequestCurrentHeaders().keySet()) {
+            if (CommonConstant.HTTP_SERVICE.toLowerCase().equals(key.toLowerCase())) {
+                continue;
+            }
+            header.add(key, context.getRequestCurrentHeaders().get(key));
+        }
+        try {
+            httpEntity = new HttpEntity<String>(JSONObject.toJSONString(paramIn), header);
+            responseEntity = restTemplate.exchange(serviceUrl, HttpMethod.POST, httpEntity, String.class);
+        } catch (HttpStatusCodeException e) { //这里spring 框架 在4XX 或 5XX 时抛出 HttpServerErrorException 异常,需要重新封装一下
+            responseEntity = new ResponseEntity<String>(e.getResponseBodyAsString(), e.getStatusCode());
+        }
+        return responseEntity;
+    }
+
+}

+ 21 - 12
Api/src/main/java/com/java110/api/listener/activities/SaveActivitiesListener.java

@@ -4,9 +4,12 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.bmo.activities.IActivitiesBMO;
 import com.java110.api.listener.AbstractServiceApiListener;
+import com.java110.api.listener.AbstractServiceApiPlusListener;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.core.smo.file.IFileInnerServiceSMO;
 import com.java110.dto.file.FileDto;
+import com.java110.po.activities.ActivitiesPo;
+import com.java110.po.file.FileRelPo;
 import com.java110.utils.constant.*;
 import com.java110.utils.exception.ListenerExecuteException;
 import com.java110.utils.util.Assert;
@@ -16,6 +19,7 @@ import com.java110.event.service.api.ServiceDataFlowEvent;
 
 
 import com.java110.core.annotation.Java110Listener;
+import com.java110.utils.util.BeanConvertUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
@@ -27,7 +31,7 @@ import org.springframework.http.ResponseEntity;
  * add by wuxw 2019-06-30
  */
 @Java110Listener("saveActivitiesListener")
-public class SaveActivitiesListener extends AbstractServiceApiListener {
+public class SaveActivitiesListener extends AbstractServiceApiPlusListener {
 
     @Autowired
     private IFileInnerServiceSMO fileInnerServiceSMOImpl;
@@ -53,11 +57,7 @@ public class SaveActivitiesListener extends AbstractServiceApiListener {
     protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
 
 
-        JSONArray businesses = new JSONArray();
-
-        AppService service = event.getAppService();
-
-        reqJson.put("activitiesId",GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_activitiesId));
+        reqJson.put("activitiesId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_activitiesId));
 
         if (reqJson.containsKey("headerImg") && !StringUtils.isEmpty(reqJson.getString("headerImg"))) {
             FileDto fileDto = new FileDto();
@@ -71,19 +71,28 @@ public class SaveActivitiesListener extends AbstractServiceApiListener {
             reqJson.put("headerImg", fileDto.getFileId());
             reqJson.put("fileSaveName", fileName);
 
-            businesses.add(activitiesBMOImpl.addHeaderImg(reqJson, context));
+            FileRelPo fileRelPo = new FileRelPo();
+            fileRelPo.setFileRelId("-1");
+            fileRelPo.setFileRealName(reqJson.getString("headerImg"));
+            fileRelPo.setFileSaveName(reqJson.getString("fileSaveName"));
+            fileRelPo.setObjId(reqJson.getString("activitiesId"));
+            fileRelPo.setSaveWay("table");
+            fileRelPo.setRelTypeCd("70000");
+            super.insert(context, fileRelPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FILE_REL);
 
         }
-        //添加单元信息
-        businesses.add(activitiesBMOImpl.addActivities(reqJson, context));
 
-        ResponseEntity<String> responseEntity = activitiesBMOImpl.callService(context, service.getServiceCode(), businesses);
+        ActivitiesPo activitiesPo = BeanConvertUtil.covertBean(reqJson, ActivitiesPo.class);
+        activitiesPo.setReadCount("0");
+        activitiesPo.setLikeCount("0");
+        activitiesPo.setCollectCount("0");
+        activitiesPo.setState("11000");
+        //添加单元信息
+        super.insert(context, activitiesPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ACTIVITIES);
 
-        context.setResponseEntity(responseEntity);
     }
 
 
-
     @Override
     public String getServiceCode() {
         return ServiceCodeActivitiesConstant.ADD_ACTIVITIES;

+ 54 - 0
Api/src/main/java/com/java110/api/listener/electric/SaveElectricListener.java

@@ -0,0 +1,54 @@
+package com.java110.api.listener.electric;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.listener.AbstractServiceApiPlusListener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.po.ElectricPo;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.util.Assert;
+import org.springframework.http.HttpMethod;
+
+import java.util.Date;
+
+/**
+ * @ClassName SaveElectricListener
+ * @Description TODO
+ * @Author wuxw
+ * @Date 2020/5/26 10:04
+ * @Version 1.0
+ * add by wuxw 2020/5/26
+ **/
+public class SaveElectricListener extends AbstractServiceApiPlusListener {
+
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+
+        Assert.jsonObjectHaveKey(reqJson, "demoValue", "请求中未包含demoValue信息");
+
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+
+        ElectricPo electricPo = new ElectricPo();
+
+        electricPo.setId("123");
+        electricPo.setStartTime(new Date());
+        super.insert(context,electricPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ADVERT);
+
+
+    }
+
+    @Override
+    public String getServiceCode() {
+        return null;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return null;
+    }
+
+
+}

+ 2 - 2
CommunityService/src/main/java/com/java110/community/listener/activities/SaveActivitiesInfoListener.java

@@ -53,8 +53,8 @@ public class SaveActivitiesInfoListener extends AbstractActivitiesBusinessServic
         Assert.notEmpty(data,"没有datas 节点,或没有子节点需要处理");
 
         //处理 businessActivities 节点
-        if(data.containsKey("businessActivities")){
-            Object bObj = data.get("businessActivities");
+        if(data.containsKey(BusinessTypeConstant.BUSINESS_TYPE_SAVE_ACTIVITIES)){
+            Object bObj = data.get(BusinessTypeConstant.BUSINESS_TYPE_SAVE_ACTIVITIES);
             JSONArray businessActivitiess = null;
             if(bObj instanceof JSONObject){
                 businessActivitiess = new JSONArray();

+ 36 - 0
java110-bean/src/main/java/com/java110/po/ElectricPo.java

@@ -0,0 +1,36 @@
+package com.java110.po;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName ElectricPo
+ * @Description TODO
+ * @Author wuxw
+ * @Date 2020/5/26 10:02
+ * @Version 1.0
+ * add by wuxw 2020/5/26
+ **/
+public class ElectricPo implements Serializable {
+
+    private String id;
+
+    private Date startTime;
+
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+}

+ 148 - 0
java110-bean/src/main/java/com/java110/po/activities/ActivitiesPo.java

@@ -0,0 +1,148 @@
+package com.java110.po.activities;
+
+import com.java110.dto.PageDto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName FloorDto
+ * @Description 活动数据层封装
+ * @Author wuxw
+ * @Date 2019/4/24 8:52
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+public class ActivitiesPo implements Serializable {
+
+    private String collectCount;
+    private String activitiesId;
+    private String likeCount;
+    private String title;
+    private String readCount;
+    private String userName;
+    private String userId;
+    private String typeCd;
+    private String context;
+    private String startTime;
+    private String endTime;
+    private String communityId;
+    private String headerImg;
+    private String state;
+
+
+    public String getCollectCount() {
+        return collectCount;
+    }
+
+    public void setCollectCount(String collectCount) {
+        this.collectCount = collectCount;
+    }
+
+    public String getLikeCount() {
+        return likeCount;
+    }
+
+    public void setLikeCount(String likeCount) {
+        this.likeCount = likeCount;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getReadCount() {
+        return readCount;
+    }
+
+    public void setReadCount(String readCount) {
+        this.readCount = readCount;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getActivitiesId() {
+        return activitiesId;
+    }
+
+    public void setActivitiesId(String activitiesId) {
+        this.activitiesId = activitiesId;
+    }
+
+    public String getTypeCd() {
+        return typeCd;
+    }
+
+    public void setTypeCd(String typeCd) {
+        this.typeCd = typeCd;
+    }
+
+    public String getContext() {
+        return context;
+    }
+
+    public void setContext(String context) {
+        this.context = context;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+    public String getCommunityId() {
+        return communityId;
+    }
+
+    public void setCommunityId(String communityId) {
+        this.communityId = communityId;
+    }
+
+    public String getHeaderImg() {
+        return headerImg;
+    }
+
+    public void setHeaderImg(String headerImg) {
+        this.headerImg = headerImg;
+    }
+
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+
+}

+ 69 - 0
java110-bean/src/main/java/com/java110/po/file/FileRelPo.java

@@ -0,0 +1,69 @@
+package com.java110.po.file;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName FileRelPo
+ * @Description TODO
+ * @Author wuxw
+ * @Date 2020/5/26 12:38
+ * @Version 1.0
+ * add by wuxw 2020/5/26
+ **/
+public class FileRelPo implements Serializable {
+
+    private String fileRelId;
+    private String relTypeCd;
+    private String saveWay;
+    private String objId;
+    private String fileRealName;
+    private String fileSaveName;
+
+    public String getFileRelId() {
+        return fileRelId;
+    }
+
+    public void setFileRelId(String fileRelId) {
+        this.fileRelId = fileRelId;
+    }
+
+    public String getRelTypeCd() {
+        return relTypeCd;
+    }
+
+    public void setRelTypeCd(String relTypeCd) {
+        this.relTypeCd = relTypeCd;
+    }
+
+    public String getSaveWay() {
+        return saveWay;
+    }
+
+    public void setSaveWay(String saveWay) {
+        this.saveWay = saveWay;
+    }
+
+    public String getObjId() {
+        return objId;
+    }
+
+    public void setObjId(String objId) {
+        this.objId = objId;
+    }
+
+    public String getFileRealName() {
+        return fileRealName;
+    }
+
+    public void setFileRealName(String fileRealName) {
+        this.fileRealName = fileRealName;
+    }
+
+    public String getFileSaveName() {
+        return fileSaveName;
+    }
+
+    public void setFileSaveName(String fileSaveName) {
+        this.fileSaveName = fileSaveName;
+    }
+}

+ 65 - 28
java110-core/src/main/java/com/java110/core/context/AbstractDataFlowContext.java

@@ -13,7 +13,7 @@ import java.util.*;
  * 数据流上下文
  * Created by wuxw on 2018/5/18.
  */
-public abstract class AbstractDataFlowContext extends AbstractTransactionLog implements DataFlowContext, IOrders,TransactionLog{
+public abstract class AbstractDataFlowContext extends AbstractTransactionLog implements DataFlowContext, IOrders, TransactionLog {
 
     private String dataFlowId;
 
@@ -31,6 +31,8 @@ public abstract class AbstractDataFlowContext extends AbstractTransactionLog imp
 
     private JSONArray resBusiness;
 
+    private JSONArray serviceBusiness;
+
 
     private String code;
 
@@ -52,10 +54,10 @@ public abstract class AbstractDataFlowContext extends AbstractTransactionLog imp
 
     private List<DataFlowLog> logDatas = new ArrayList<DataFlowLog>();
 
-    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>();
+    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;
@@ -65,16 +67,17 @@ public abstract class AbstractDataFlowContext extends AbstractTransactionLog imp
 
     /**
      * 构建 对象信息
+     *
      * @param reqInfo
      * @param headerAll
      * @return
      * @throws Exception
      */
-    public  <T> T 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);
+        T dataFlowContext = (T) doBuilder(reqInfo, headerAll);
         //后处理
         afterBuilder((DataFlowContext) dataFlowContext);
         return dataFlowContext;
@@ -83,23 +86,25 @@ public abstract class AbstractDataFlowContext extends AbstractTransactionLog imp
 
     /**
      * 预处理
+     *
      * @param reqInfo
      * @param headerAll
      */
-    protected void preBuilder(String reqInfo, Map<String,String> headerAll) {
-        super.preBuilder(reqInfo,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;
+    public abstract DataFlowContext doBuilder(String reqInfo, Map<String, String> headerAll) throws Exception;
 
-    protected void afterBuilder(DataFlowContext dataFlowContext){
+    protected void afterBuilder(DataFlowContext dataFlowContext) {
 
     }
 
@@ -225,7 +230,7 @@ public abstract class AbstractDataFlowContext extends AbstractTransactionLog imp
     }
 
 
-    public List<DataFlowLog> getLogDatas(){
+    public List<DataFlowLog> getLogDatas() {
         return logDatas;
     }
 
@@ -247,24 +252,32 @@ public abstract class AbstractDataFlowContext extends AbstractTransactionLog imp
 
     /**
      * 添加各个环节的日志
+     *
      * @param dataFlowLog
      */
-    public void addLogDatas(DataFlowLog dataFlowLog){
+    public void addLogDatas(DataFlowLog dataFlowLog) {
         this.logDatas.add(dataFlowLog);
     }
 
     /**
      * 添加各个环节的耗时
+     *
      * @param dataFlowLinksCost
      */
-    public void addLinksCostDates(DataFlowLinksCost dataFlowLinksCost){
+    public void addLinksCostDates(DataFlowLinksCost dataFlowLinksCost) {
         this.linksCostDates.add(dataFlowLinksCost);
     }
 
 
-    public String getAppId(){return null;}
+    public String getAppId() {
+        return null;
+    }
+
+    public String getUserId() {
+        return null;
+    }
 
-    public String getUserId(){return null;};
+    ;
 
     @Override
     public void setAppId(String appId) {
@@ -276,11 +289,23 @@ public abstract class AbstractDataFlowContext extends AbstractTransactionLog imp
 
     }
 
-    public String getRemark(){return null;};
+    public String getRemark() {
+        return null;
+    }
 
-    public String getReqSign(){return null;};
+    ;
 
-    public JSONArray getAttrs(){return null;};
+    public String getReqSign() {
+        return null;
+    }
+
+    ;
+
+    public JSONArray getAttrs() {
+        return null;
+    }
+
+    ;
 
     public String getBusinessType() {
         return businessType;
@@ -318,11 +343,11 @@ public abstract class AbstractDataFlowContext extends AbstractTransactionLog imp
         this.port = port;
     }
 
-    public String getbId(){
+    public String getbId() {
         return null;
     }
 
-    public String getLogId(){
+    public String getLogId() {
         return getbId();
     }
 
@@ -330,10 +355,11 @@ public abstract class AbstractDataFlowContext extends AbstractTransactionLog imp
     /**
      * 业务编码 当前需要处理的业务编码,可以写将要请求服务提供方的方法名
      * 主要用于 日志端展示
+     *
      * @return 当前服务编码
      */
-    public String getServiceCode(){
-        if(this.currentBusiness != null){
+    public String getServiceCode() {
+        if (this.currentBusiness != null) {
             return currentBusiness.getServiceCode();
         }
         return "";
@@ -342,10 +368,11 @@ public abstract class AbstractDataFlowContext extends AbstractTransactionLog imp
     /**
      * 业务名称 当前需要处理的业务名称,可以当前调用的业务名称 如 商品购买 等
      * 主要用于 日志端展示
+     *
      * @return 当前服务名称
      */
-    public String getServiceName(){
-        if(this.currentBusiness != null){
+    public String getServiceName() {
+        if (this.currentBusiness != null) {
             return currentBusiness.getServiceName();
         }
         return "";
@@ -354,18 +381,28 @@ public abstract class AbstractDataFlowContext extends AbstractTransactionLog imp
 
     public abstract IOrders getOrder();
 
-    protected AbstractDataFlowContext(Date startDate, String code){
+    protected AbstractDataFlowContext(Date startDate, String code) {
         this.setStartDate(startDate);
         this.setCode(code);
     }
 
 
-    public void setResponseEntity(ResponseEntity responseEntity){
+    public void setResponseEntity(ResponseEntity responseEntity) {
 
     }
 
-    public ResponseEntity getResponseEntity(){
+    public ResponseEntity getResponseEntity() {
         return null;
     }
 
+    public JSONArray getServiceBusiness() {
+        return serviceBusiness;
+    }
+
+    public void addServiceBusiness(JSONObject serviceBusiness) {
+        if (this.serviceBusiness == null) {
+            this.serviceBusiness = new JSONArray();
+        }
+        this.serviceBusiness.add(serviceBusiness);
+    }
 }

+ 13 - 0
java110-core/src/main/java/com/java110/core/context/DataFlowContext.java

@@ -1,5 +1,6 @@
 package com.java110.core.context;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.entity.center.Business;
 import com.java110.entity.center.DataFlowLinksCost;
@@ -105,4 +106,16 @@ public interface DataFlowContext {
     public void setResponseEntity(ResponseEntity responseEntity);
 
     public ResponseEntity getResponseEntity();
+
+    /**
+     * 获取调用订单服务业务
+     * @return
+     */
+    public JSONArray getServiceBusiness();
+
+    /**
+     * 设置订单服务业务
+     * @param serviceBusiness
+     */
+    public void addServiceBusiness(JSONObject serviceBusiness);
 }

+ 6 - 6
java110-db/src/main/resources/mapper/common/AdvertItemServiceDaoImplMapper.xml

@@ -6,12 +6,12 @@
 
     <!-- 保存广告项信息信息 add by wuxw 2018-07-03 -->
     <insert id="saveBusinessAdvertItemInfo" parameterType="Map">
-           insert into business_advert_item(
-operate,item_type_cd,community_id,b_id,advert_item_id,advert_id,url,seq
-) values (
-#{operate},#{itemTypeCd},#{communityId},#{bId},#{advertItemId},#{advertId},#{url},#{seq}
-)
-       </insert>
+        insert into business_advert_item(
+        operate,item_type_cd,community_id,b_id,advert_item_id,advert_id,url,seq
+        ) values (
+        #{operate},#{itemTypeCd},#{communityId},#{bId},#{advertItemId},#{advertId},#{url},#{seq}
+        )
+    </insert>
 
 
     <!-- 查询广告项信息信息(Business) add by wuxw 2018-07-03 -->