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