From 9e29441646434d9f54a2c3e855a724633885d8a4 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 13 八月 2019 19:43:49 +0800
Subject: [PATCH] 缓存开发测试完成

---
 WebService/src/main/java/com/java110/web/controller/CallComponentController.java |   60 ++++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 46 insertions(+), 14 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 59ef685..4d926d0 100644
--- a/WebService/src/main/java/com/java110/web/controller/CallComponentController.java
+++ b/WebService/src/main/java/com/java110/web/controller/CallComponentController.java
@@ -1,49 +1,81 @@
 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;
+import com.java110.core.context.IPageData;
+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(CallComponentController.class);
+
     /**
      * 璋冪敤缁勪欢鏂规硶
+     *
      * @return
      */
 
-    @RequestMapping(path="/callComponent/{componentCode}/{componentMethod}",
-            method = RequestMethod.POST)
+    @RequestMapping(path = "/callComponent/{componentCode}/{componentMethod}")
     public ResponseEntity<String> callComponent(
             @PathVariable String componentCode,
             @PathVariable String componentMethod,
-            @RequestBody String info,
-            HttpServletRequest request){
+            //@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,String.class);
+            Method cMethod = componentInstance.getClass().getDeclaredMethod(componentMethod, IPageData.class);
 
-            Assert.notNull(cMethod,"鏈壘鍒扮粍浠跺搴斿鐞嗙被鐨勬柟娉曪紝璇风‘璁� "+componentCode+"鏂规硶锛�"+componentMethod);
+            Assert.notNull(cMethod, "鏈壘鍒扮粍浠跺搴斿鐞嗙被鐨勬柟娉曪紝璇风‘璁� " + componentCode + "鏂规硶锛�" + componentMethod);
 
-             responseEntity = (ResponseEntity<String>)cMethod.invoke(componentInstance,info);
+            IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);
 
-        }catch (Exception e){
-            responseEntity = new ResponseEntity<>("璋冪敤缁勪欢澶辫触"+e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
-        }finally {
+            logger.debug("缁勪欢缂栫爜{}锛岀粍浠舵柟娉晎}锛宲d 涓簕}", componentCode, componentMethod, pd.toString());
+
+            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) {
+            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