wuxw7
2018-11-25 c8665e4368f2e81a54a8117adf8aa77c05add0b1
用户注册返回报文处理
6个文件已修改
74 ■■■■■ 已修改文件
Api/src/main/java/com/java110/api/listener/AbstractServiceApiDataFlowListener.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/UserRegisterServiceListener.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-config/db/CenterService/create_table.db 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-config/db/LogService/create_table.db 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/context/AbstractDataFlowContext.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/context/DataFlowContext.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/AbstractServiceApiDataFlowListener.java
@@ -2,15 +2,14 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.common.constant.CommonConstant;
import com.java110.common.constant.ResponseConstant;
import com.java110.common.util.Assert;
import com.java110.common.util.StringUtil;
import com.java110.core.context.DataFlowContext;
import com.java110.entity.center.AppService;
import com.java110.event.service.api.ServiceDataFlowListener;
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.http.*;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.HttpServerErrorException;
import org.springframework.web.client.HttpStatusCodeException;
@@ -78,6 +77,56 @@
    /**
     * 处理返回报文信息
     * @param dataFlowContext
     */
    protected void doResponse(DataFlowContext dataFlowContext) {
        ResponseEntity<String> responseEntity = dataFlowContext.getResponseEntity();
        ResponseEntity<String> newResponseEntity = null;
        if(responseEntity == null || StringUtil.isNullOrNone(responseEntity.getBody()) || !Assert.isJsonObject(responseEntity.getBody())){ //这里一般进不去
            return ;
        }
        JSONObject resJson = JSONObject.parseObject(responseEntity.getBody());
        if(!resJson.containsKey("orders")
                || !ResponseConstant.RESULT_CODE_SUCCESS.equals(resJson.getJSONObject("orders").getJSONObject("response").getString("code"))){
            return ;
        }
        if(resJson.containsKey("business") && resJson.getJSONArray("business").size() == 1){
            JSONObject busiJson = resJson.getJSONArray("business").getJSONObject(0);
            if(busiJson.containsKey("orderTypeCd")){
                busiJson.remove("orderTypeCd");
            }
            if(busiJson.containsKey("serviceCode")){
                busiJson.remove("serviceCode");
            }
            if(busiJson.containsKey("response")){
                busiJson.remove("response");
            }
            if(busiJson.containsKey("bId")){
                busiJson.remove("bId");
            }
            if(busiJson.containsKey("businessType")){
                busiJson.remove("businessType");
            }
            if(busiJson.containsKey("dataFlowId")){
                busiJson.remove("dataFlowId");
            }
            //这个一般是 center服务和下游系统之间交互的流水可以删掉,返回出去也没有啥意义
            if(busiJson.containsKey("transactionId")){
                busiJson.remove("transactionId");
            }
            newResponseEntity = new ResponseEntity<String>(busiJson.toJSONString(),responseEntity.getHeaders(), HttpStatus.OK);
            dataFlowContext.setResponseEntity(newResponseEntity);
        }
    }
    /**
     * 将rest 协议转为 订单协议
     * @param business
     * @return
Api/src/main/java/com/java110/api/listener/UserRegisterServiceListener.java
@@ -2,8 +2,11 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.common.constant.CommonConstant;
import com.java110.common.constant.ResponseConstant;
import com.java110.common.constant.ServiceCodeConstant;
import com.java110.common.constant.StatusConstant;
import com.java110.common.util.Assert;
import com.java110.common.util.StringUtil;
import com.java110.core.annotation.Java110Listener;
import com.java110.core.context.DataFlowContext;
import com.java110.entity.center.AppService;
@@ -15,6 +18,8 @@
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import java.util.Map;
@@ -82,6 +87,8 @@
        HttpEntity<String> httpEntity = new HttpEntity<String>(paramInObj, header);
        //http://user-service/test/sayHello
        super.doRequest(dataFlowContext, service, httpEntity);
        super.doResponse(dataFlowContext);
    }
    /**
java110-config/db/CenterService/create_table.db
@@ -5,7 +5,7 @@
CREATE TABLE c_orders(
    o_id VARCHAR(30) NOT NULL UNIQUE COMMENT '订单ID',
    app_id VARCHAR(10) NOT NULL COMMENT '应用ID',
    ext_transaction_id VARCHAR(30) NOT NULL COMMENT '外部交易流水',
    ext_transaction_id VARCHAR(32) NOT NULL COMMENT '外部交易流水',
    user_id VARCHAR(30) NOT NULL COMMENT '用户ID',
    request_time VARCHAR(16) NOT NULL COMMENT '外部系统请求时间',
    create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
java110-config/db/LogService/create_table.db
@@ -2,7 +2,7 @@
create table l_transaction_log(
    log_id varchar(30) not null  COMMENT 'id',
    transaction_id VARCHAR(30) NOT NULL COMMENT '外部交易流水',
    transaction_id VARCHAR(32) NOT NULL COMMENT '外部交易流水',
    contract_id varchar(64) not null comment '上下文ID',
    ip varchar(20) not null comment '日志产生主机IP',
    port varchar(10) not null comment '日志产生端口',
java110-core/src/main/java/com/java110/core/context/AbstractDataFlowContext.java
@@ -369,4 +369,8 @@
    }
    public ResponseEntity getResponseEntity(){
        return null;
    }
}
java110-core/src/main/java/com/java110/core/context/DataFlowContext.java
@@ -101,5 +101,5 @@
    public void setResponseEntity(ResponseEntity responseEntity);
    public ResponseEntity getResponseEntity();
}