From 9ceececf1c219fffda61696d6eda6645c910f929 Mon Sep 17 00:00:00 2001
From: 吴学文 <wuxuewen@wuxuewendeMacBook-Pro.local>
Date: 星期二, 23 四月 2019 00:36:22 +0800
Subject: [PATCH] 服务之间查询调用采用spring feign 有同学反映查询通过表配置sql的方式不太友好,所以提供另一种解决方案

---
 WebService/src/main/java/com/java110/web/controller/CallComponentController.java |   26 ++++++++++++++++----------
 1 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/WebService/src/main/java/com/java110/web/controller/CallComponentController.java b/WebService/src/main/java/com/java110/web/controller/CallComponentController.java
index 0a7ad8d..b88c0ac 100644
--- a/WebService/src/main/java/com/java110/web/controller/CallComponentController.java
+++ b/WebService/src/main/java/com/java110/web/controller/CallComponentController.java
@@ -1,6 +1,7 @@
 package com.java110.web.controller;
 
 import com.java110.common.constant.CommonConstant;
+import com.java110.common.exception.SMOException;
 import com.java110.common.factory.ApplicationContextFactory;
 import com.java110.common.util.Assert;
 import com.java110.core.base.controller.BaseController;
@@ -8,8 +9,10 @@
 import com.java110.web.smo.impl.LoginServiceSMOImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
+import org.springframework.util.MultiValueMap;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
@@ -36,27 +39,30 @@
             //@RequestBody String info,
             HttpServletRequest request){
         ResponseEntity<String> responseEntity = null;
-        try{
-            Assert.hasLength(componentCode,"鍙傛暟閿欒锛屾湭浼犲叆缁勪欢缂栫爜");
-            Assert.hasLength(componentMethod,"鍙傛暟閿欒锛屾湭浼犲叆璋冪敤缁勪欢鏂规硶");
+        try {
+            Assert.hasLength(componentCode, "鍙傛暟閿欒锛屾湭浼犲叆缁勪欢缂栫爜");
+            Assert.hasLength(componentMethod, "鍙傛暟閿欒锛屾湭浼犲叆璋冪敤缁勪欢鏂规硶");
 
             Object componentInstance = ApplicationContextFactory.getBean(componentCode);
 
-            Assert.notNull(componentInstance,"鏈壘鍒扮粍浠跺搴旂殑澶勭悊绫伙紝璇风‘璁� "+componentCode);
+            Assert.notNull(componentInstance, "鏈壘鍒扮粍浠跺搴旂殑澶勭悊绫伙紝璇风‘璁� " + componentCode);
 
-            Method cMethod = componentInstance.getClass().getDeclaredMethod(componentMethod,IPageData.class);
+            Method cMethod = componentInstance.getClass().getDeclaredMethod(componentMethod, IPageData.class);
 
-            Assert.notNull(cMethod,"鏈壘鍒扮粍浠跺搴斿鐞嗙被鐨勬柟娉曪紝璇风‘璁� "+componentCode+"鏂规硶锛�"+componentMethod);
+            Assert.notNull(cMethod, "鏈壘鍒扮粍浠跺搴斿鐞嗙被鐨勬柟娉曪紝璇风‘璁� " + componentCode + "鏂规硶锛�" + componentMethod);
 
             IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);
 
-            logger.debug("缁勪欢缂栫爜{}锛岀粍浠舵柟娉晎}锛宲d 涓簕}",componentCode,componentMethod,pd.toString());
+            logger.debug("缁勪欢缂栫爜{}锛岀粍浠舵柟娉晎}锛宲d 涓簕}", componentCode, componentMethod, pd.toString());
 
-             responseEntity = (ResponseEntity<String>)cMethod.invoke(componentInstance,pd);
+            responseEntity = (ResponseEntity<String>) cMethod.invoke(componentInstance, pd);
 
-
+        }catch (SMOException e){
+            MultiValueMap<String, String> headers = new HttpHeaders();
+            headers.add("code",e.getResult().getCode());
+            responseEntity = new ResponseEntity<>(e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
         }catch (Exception e){
-            responseEntity = new ResponseEntity<>("璋冪敤缁勪欢澶辫触"+e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
+            responseEntity = new ResponseEntity<>(e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
         }finally {
             logger.debug("缁勪欢璋冪敤杩斿洖淇℃伅涓簕}",responseEntity);
             return responseEntity;

--
Gitblit v1.8.0