From 2a2bc2abf283784151fe1c15047ff65d41ce5583 Mon Sep 17 00:00:00 2001
From: 吴学文 <wuxuewen@wuxuewendeMacBook-Pro.local>
Date: 星期四, 25 四月 2019 23:52:07 +0800
Subject: [PATCH] 增加小区楼信息开发中

---
 WebService/src/main/java/com/java110/web/controller/CallComponentController.java |   41 ++++++++++++++++++++++++++++++-----------
 1 files changed, 30 insertions(+), 11 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 d674354..223e674 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,18 +9,24 @@
 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;
+import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
 
+/**
+ * 缁勪欢璋冪敤澶勭悊绫�
+ */
 @RestController
 public class CallComponentController extends BaseController {
 
-    private final static Logger logger = LoggerFactory.getLogger(LoginServiceSMOImpl.class);
+    private final static Logger logger = LoggerFactory.getLogger(CallComponentController.class);
 
     /**
      * 璋冪敤缁勪欢鏂规硶
@@ -33,27 +40,39 @@
             //@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);
+            String msg = "";
+            if (e instanceof InvocationTargetException) {
+                Throwable targetEx =((InvocationTargetException)e).getTargetException();
+                if (targetEx != null) {
+                    msg = targetEx.getMessage();
+                }
+            } else {
+                msg = e.getMessage();
+            }
+            responseEntity = new ResponseEntity<>(msg,HttpStatus.INTERNAL_SERVER_ERROR);
         }finally {
             logger.debug("缁勪欢璋冪敤杩斿洖淇℃伅涓簕}",responseEntity);
             return responseEntity;

--
Gitblit v1.8.0