From 6bfbbc623a595caaeb03de206fef28e2aa0acad4 Mon Sep 17 00:00:00 2001
From: wuxw7 <wuxw7@asiainfo.com>
Date: 星期六, 26 五月 2018 17:01:34 +0800
Subject: [PATCH] 加入 接口透传功能

---
 CenterService/src/main/java/com/java110/center/api/HttpApi.java |   52 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 48 insertions(+), 4 deletions(-)

diff --git a/CenterService/src/main/java/com/java110/center/api/HttpApi.java b/CenterService/src/main/java/com/java110/center/api/HttpApi.java
index 36774fb..79d4feb 100644
--- a/CenterService/src/main/java/com/java110/center/api/HttpApi.java
+++ b/CenterService/src/main/java/com/java110/center/api/HttpApi.java
@@ -4,21 +4,21 @@
 import com.java110.center.smo.ICenterServiceSMO;
 import com.java110.common.constant.ResponseConstant;
 import com.java110.common.exception.BusinessException;
+import com.java110.common.util.Assert;
 import com.java110.core.factory.DataTransactionFactory;
 import com.java110.core.base.controller.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.util.HashMap;
 import java.util.Map;
 
 /**
  * 涓績http鏈嶅姟 缁熶竴鏈嶅姟绫�
  *  1銆佸彧鎻愪緵service鏂规硶
+ *  2銆佹彁渚� 閫忎紶鏈哄埗
  * Created by wuxw on 2018/4/13.
  */
 @RestController
@@ -49,14 +49,58 @@
     }
 
     /**
+     * 瀵瑰崗璁笉閬靛惊鐨� 鎺ュ彛杩涜閫忎紶
+     * @param orderInfo
+     * @param request
+     * @return
+     */
+    @RequestMapping(path = "/httpApi/service/{serviceCode}",method= RequestMethod.POST)
+    public String servicePostTransfer(@PathVariable String serviceCode, @RequestBody String orderInfo, HttpServletRequest request,
+                                      HttpServletResponse response) {
+        String resData = "";
+        Map<String, String> headers = new HashMap<String, String>();
+        try {
+            headers.put("serviceCode",serviceCode);
+            getRequestInfo(request, headers);
+            //棰勬牎楠�
+            preValiateOrderInfo(orderInfo,headers);
+            resData = centerServiceSMOImpl.serviceTransfer(orderInfo, headers);
+        }catch (Exception e){
+            logger.error("璇锋眰璁㈠崟寮傚父",e);
+            resData = DataTransactionFactory.createOrderResponseJson(ResponseConstant.NO_TRANSACTION_ID,
+                    ResponseConstant.RESULT_CODE_ERROR,e.getMessage()+e).toJSONString();
+        }finally {
+            for(String key : headers.keySet()) {
+                response.addHeader(key,headers.get(key));
+            }
+            return resData;
+        }
+    }
+
+    /**
      * 杩欓噷棰勬牎楠岋紝璇锋眰鎶ユ枃涓笉鑳芥湁 dataFlowId
      * @param orderInfo
      */
     private void preValiateOrderInfo(String orderInfo) {
+
         if(JSONObject.parseObject(orderInfo).getJSONObject("orders").containsKey("dataFlowId")){
             throw new BusinessException(ResponseConstant.RESULT_CODE_ERROR,"鎶ユ枃涓笉鑳藉瓨鍦╠ataFlowId鑺傜偣");
         }
     }
+    /**
+     * 杩欓噷棰勬牎楠岋紝璇锋眰鎶ユ枃涓笉鑳芥湁 dataFlowId
+     * @param orderInfo
+     */
+    private void preValiateOrderInfo(String orderInfo,Map<String, String> headers) {
+
+        Assert.hasKey(headers,"serviceCode","娌℃湁鍖呭惈serviceCode");
+
+        Assert.hasLength(headers.get("serviceCode"),"serviceCode 涓嶈兘涓虹┖");
+
+        Assert.hasKey(headers,"appId","娌℃湁鍖呭惈appId");
+
+        Assert.hasLength(headers.get("appId"),"appId 涓嶈兘涓虹┖");
+    }
 
     /**
      * 鑾峰彇璇锋眰淇℃伅

--
Gitblit v1.8.0