From d4e1929dcab147030d3bcae89b1801250fd6a5da Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期四, 25 四月 2019 11:25:43 +0800
Subject: [PATCH] 优化feign 异常处理

---
 java110-core/src/main/java/com/java110/core/base/smo/BaseServiceSMO.java |   54 ++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 42 insertions(+), 12 deletions(-)

diff --git a/java110-core/src/main/java/com/java110/core/base/smo/BaseServiceSMO.java b/java110-core/src/main/java/com/java110/core/base/smo/BaseServiceSMO.java
index 7390192..161b9c0 100644
--- a/java110-core/src/main/java/com/java110/core/base/smo/BaseServiceSMO.java
+++ b/java110-core/src/main/java/com/java110/core/base/smo/BaseServiceSMO.java
@@ -1,20 +1,22 @@
 package com.java110.core.base.smo;
 
 
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.java110.common.log.LoggerEngine;
+import com.java110.common.constant.CommonConstant;
 import com.java110.common.util.ProtocolUtil;
 import com.java110.core.base.AppBase;
 import com.java110.core.context.AppContext;
-import com.java110.core.context.BusinessServiceDataFlow;
-import com.java110.core.context.DataFlowContext;
-import com.java110.core.factory.DataFlowFactory;
-import com.java110.feign.base.IPrimaryKeyService;
-import org.apache.commons.lang3.math.NumberUtils;
-
-import java.util.List;
-import java.util.Map;
+import com.java110.core.context.IPageData;
+import com.java110.core.smo.code.IPrimaryKeyInnerServiceSMO;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.HttpStatusCodeException;
+import org.springframework.web.client.RestTemplate;
 
 /**
  * 鎵�鏈夋湇鍔$鐨勫熀绫�
@@ -24,6 +26,7 @@
  */
 public class BaseServiceSMO extends AppBase {
 
+    private static final Logger logger = LoggerFactory.getLogger(BaseServiceSMO.class);
 
     /**
      * 涓婚敭鐢熸垚
@@ -32,9 +35,9 @@
      * @return
      * @throws Exception
      */
-    protected String queryPrimaryKey(IPrimaryKeyService iPrimaryKeyService,String type) throws Exception{
+    protected String queryPrimaryKey(IPrimaryKeyInnerServiceSMO iPrimaryKeyService, String type) throws Exception {
         JSONObject data = new JSONObject();
-        data.put("type",type);
+        data.put("type", type);
         //鐢熸垚鐨処D
         String targetId = "-1";
         //瑕佹眰鎺ュ彛杩斿洖 {"RESULT_CODE":"0000","RESULT_INFO":{"user_id":"7020170411000041"},"RESULT_MSG":"鎴愬姛"}
@@ -53,6 +56,33 @@
         return targetId;
     }
 
+    /**
+     * 璋冪敤涓績鏈嶅姟
+     * @return
+     */
+    protected ResponseEntity<String> callCenterService(RestTemplate restTemplate,IPageData pd, String param, String url, HttpMethod httpMethod){
+        ResponseEntity<String> responseEntity = null;
+        HttpHeaders header = new HttpHeaders();
+        header.add(CommonConstant.HTTP_APP_ID.toLowerCase(), CommonConstant.HC_WEB_APP_ID);
+        header.add(CommonConstant.HTTP_USER_ID.toLowerCase(), CommonConstant.ORDER_DEFAULT_USER_ID);
+        header.add(CommonConstant.HTTP_TRANSACTION_ID.toLowerCase(), pd.getTransactionId());
+        header.add(CommonConstant.HTTP_REQ_TIME.toLowerCase(), pd.getRequestTime());
+        header.add(CommonConstant.HTTP_SIGN.toLowerCase(), "");
+        HttpEntity<String> httpEntity = new HttpEntity<String>(param, header);
+        logger.debug("璇锋眰涓績鏈嶅姟淇℃伅锛寋}",httpEntity);
+        try{
+            responseEntity = restTemplate.exchange(url, httpMethod, httpEntity, String.class);
+        }catch (HttpStatusCodeException e){ //杩欓噷spring 妗嗘灦 鍦�4XX 鎴� 5XX 鏃舵姏鍑� HttpServerErrorException 寮傚父锛岄渶瑕侀噸鏂板皝瑁呬竴涓�
+            responseEntity = new ResponseEntity<String>("璇锋眰涓嬫父绯荤粺寮傚父锛�"+e.getResponseBodyAsString(),e.getStatusCode());
+        }catch (Exception e){
+            responseEntity = new ResponseEntity<String>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+        }finally {
+            logger.debug("璇锋眰涓績鏈嶅姟淇℃伅锛寋}",responseEntity);
+            return responseEntity;
+        }
+
+    }
+
 
     /**
      * 鍒涘缓涓婁笅鏂囧璞�

--
Gitblit v1.8.0