From 4ff738f377504fe8f2296df18cf7d0123641cdd9 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期四, 17 十月 2019 22:11:03 +0800
Subject: [PATCH] 优化调用微服务时的报错

---
 java110-core/src/main/java/com/java110/core/base/smo/BaseServiceSMO.java |   72 ++++++++++++++++++++++++++---------
 1 files changed, 53 insertions(+), 19 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..a4bbbe1 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,23 @@
 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.util.ProtocolUtil;
+import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.util.ProtocolUtil;
+import com.java110.utils.util.StringUtil;
 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,41 +27,72 @@
  */
 public class BaseServiceSMO extends AppBase {
 
+    private static final Logger logger = LoggerFactory.getLogger(BaseServiceSMO.class);
 
     /**
      * 涓婚敭鐢熸垚
+     *
      * @param iPrimaryKeyService 涓婚敭鐢熸垚鏈嶅姟瀵硅薄
-     * @param type 涓婚敭绫诲瀷 濡� OL_ID , CUST_ID
+     * @param type               涓婚敭绫诲瀷 濡� OL_ID , CUST_ID
      * @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":"鎴愬姛"}
         String custIdJSONStr = iPrimaryKeyService.queryPrimaryKey(data.toJSONString());
         JSONObject custIdJSONTmp = JSONObject.parseObject(custIdJSONStr);
-        if(custIdJSONTmp.containsKey("RESULT_CODE")
+        if (custIdJSONTmp.containsKey("RESULT_CODE")
                 && ProtocolUtil.RETURN_MSG_SUCCESS.equals(custIdJSONTmp.getString("RESULT_CODE"))
-                && custIdJSONTmp.containsKey("RESULT_INFO")){
+                && custIdJSONTmp.containsKey("RESULT_INFO")) {
             //浠庢帴鍙g敓鎴恛lId
-            targetId =  custIdJSONTmp.getJSONObject("RESULT_INFO").getString(type);
+            targetId = custIdJSONTmp.getJSONObject("RESULT_INFO").getString(type);
         }
-        if("-1".equals(targetId)) {
+        if ("-1".equals(targetId)) {
             throw new RuntimeException("璋冪敤涓婚敭鐢熸垚鏈嶅姟鏈嶅姟澶辫触锛�" + custIdJSONStr);
         }
 
         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(), StringUtil.isEmpty(pd.getUserId()) ? CommonConstant.ORDER_DEFAULT_USER_ID : pd.getUserId());
+        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("璇锋眰鍦板潃涓�,{} 璇锋眰涓績鏈嶅姟淇℃伅锛寋},涓績鏈嶅姟杩斿洖淇℃伅锛寋}", url, httpEntity, responseEntity);
+            return responseEntity;
+        }
+
+    }
+
 
     /**
      * 鍒涘缓涓婁笅鏂囧璞�
+     *
      * @return
      */
-    protected AppContext createApplicationContext(){
+    protected AppContext createApplicationContext() {
         return AppContext.newInstance();
     }
 

--
Gitblit v1.8.0