deason 7 年 前
コミット
daa3ce0c8c

+ 36 - 0
src/main/java/cn/com/qmth/examcloud/app/aspect/ControllerAspect.java

@@ -0,0 +1,36 @@
+/*
+ * *************************************************
+ * Copyright (c) 2018 QMTH. All Rights Reserved.
+ * Created by Deason on 2018-07-16 15:59:42.
+ * *************************************************
+ */
+
+package cn.com.qmth.examcloud.app.aspect;
+
+import cn.com.qmth.examcloud.app.model.Result;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+@ControllerAdvice(annotations = Controller.class)
+public class ControllerAspect {
+    private final static Logger log = LoggerFactory.getLogger(ControllerAspect.class);
+
+    @ResponseBody
+    @ExceptionHandler(value = RuntimeException.class)
+    public Result handle(RuntimeException e) {
+        log.error(e.getMessage(), e);
+        return new Result().error(e.getMessage());
+    }
+
+    @ResponseBody
+    @ExceptionHandler(value = Exception.class)
+    public Result handle(Exception e) {
+        log.error(e.getMessage(), e);
+        return new Result().error(e.getMessage());
+    }
+
+}

+ 36 - 0
src/main/java/cn/com/qmth/examcloud/app/aspect/RestControllerAspect.java

@@ -0,0 +1,36 @@
+/*
+ * *************************************************
+ * Copyright (c) 2018 QMTH. All Rights Reserved.
+ * Created by Deason on 2018-07-16 15:17:21.
+ * *************************************************
+ */
+
+package cn.com.qmth.examcloud.app.aspect;
+
+import cn.com.qmth.examcloud.app.model.Result;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+@RestControllerAdvice(annotations = RestController.class)
+public class RestControllerAspect {
+    private final static Logger log = LoggerFactory.getLogger(RestControllerAspect.class);
+
+    @ResponseBody
+    @ExceptionHandler(value = RuntimeException.class)
+    public Result handle(RuntimeException e) {
+        log.error(e.getMessage(), e);
+        return new Result().error(e.getMessage());
+    }
+
+    @ResponseBody
+    @ExceptionHandler(value = Exception.class)
+    public Result handle(Exception e) {
+        log.error(e.getMessage(), e);
+        return new Result().error(e.getMessage());
+    }
+
+}

+ 11 - 1
src/main/java/cn/com/qmth/examcloud/app/controller/IndexController.java

@@ -7,16 +7,26 @@
 
 package cn.com.qmth.examcloud.app.controller;
 
+import cn.com.qmth.examcloud.app.exception.ApiException;
+import cn.com.qmth.examcloud.app.model.Result;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
 
 @Controller
 public class IndexController {
 
     @RequestMapping(value = "/", method = RequestMethod.GET)
-    public String index() {
+    public String index() throws Exception {
         return "index";
     }
 
+    @ResponseBody
+    @RequestMapping(value = "/test", method = {RequestMethod.GET, RequestMethod.POST})
+    public Result test() throws Exception {
+        throw new ApiException("error");
+        //return new Result().error();
+    }
+
 }

+ 21 - 0
src/main/java/cn/com/qmth/examcloud/app/exception/ApiException.java

@@ -0,0 +1,21 @@
+/*
+ * *************************************************
+ * Copyright (c) 2018 QMTH. All Rights Reserved.
+ * Created by Deason on 2018-07-16 15:21:38.
+ * *************************************************
+ */
+
+package cn.com.qmth.examcloud.app.exception;
+
+public class ApiException extends RuntimeException {
+    private static final long serialVersionUID = 0L;
+
+    public ApiException() {
+        super();
+    }
+
+    public ApiException(String message) {
+        super(message);
+    }
+
+}

+ 4 - 0
src/main/java/cn/com/qmth/examcloud/app/model/Constants.java

@@ -9,4 +9,8 @@ package cn.com.qmth.examcloud.app.model;
 
 public interface Constants {
 
+    String PARAM_KEY = "key";
+
+    String PARAM_TOKEN = "token";
+
 }

+ 30 - 26
src/main/java/cn/com/qmth/examcloud/app/model/Result.java

@@ -14,17 +14,24 @@ import java.io.Serializable;
 
 public class Result<T> implements Serializable {
     private static final long serialVersionUID = 1L;
-    private boolean success;//是否成功
-    private String message;//描述信息
-    private T data;//结果数据
+    private String code;//状态码
+    private String desc;//描述信息
+    private T data;//数据
+
+    /* 常用状态码 */
+    public static String CODE_200 = "200";//成功
+    public static String CODE_500 = "500";//失败
+    public static String CODE_403 = "403";//认证失败
+    public static String DESC_SUCCESS = "操作成功";
+    public static String DESC_FAIL = "操作失败";
 
     public Result() {
 
     }
 
-    public Result(boolean success, String message, T data) {
-        this.success = success;
-        this.message = message;
+    public Result(String code, String desc, T data) {
+        this.code = code;
+        this.desc = desc;
         this.data = data;
     }
 
@@ -32,54 +39,51 @@ public class Result<T> implements Serializable {
      * 成功结果
      */
     public Result success(T data) {
-        this.success = true;
+        this.code = CODE_200;
+        this.desc = DESC_SUCCESS;
         this.data = data;
         return this;
     }
 
     public Result success() {
-        this.success = true;
+        this.code = CODE_200;
+        this.desc = DESC_SUCCESS;
         return this;
     }
 
     /**
      * 错误结果
      */
-    public Result error(String message) {
-        this.success = false;
-        this.message = message;
+    public Result error(String desc) {
+        this.code = CODE_500;
+        this.desc = desc;
         return this;
     }
 
     public Result error() {
-        this.success = false;
+        this.code = CODE_500;
+        this.desc = DESC_FAIL;
         return this;
     }
 
-    public boolean isSuccess() {
-        return success;
-    }
-
-    public void setSuccess(boolean success) {
-        this.success = success;
+    public Result tokenError() {
+        this.code = CODE_403;
+        this.desc = "No login,Token is invalid.";
+        return this;
     }
 
-    public String getMessage() {
-        return message;
+    public String getCode() {
+        return code;
     }
 
-    public void setMessage(String message) {
-        this.message = message;
+    public String getDesc() {
+        return desc;
     }
 
     public T getData() {
         return data;
     }
 
-    public void setData(T data) {
-        this.data = data;
-    }
-
     @Override
     public String toString() {
         return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);

+ 28 - 0
src/main/java/cn/com/qmth/examcloud/app/utils/HttpBuilder.java

@@ -0,0 +1,28 @@
+/*
+ * *************************************************
+ * Copyright (c) 2018 QMTH. All Rights Reserved.
+ * Created by Deason on 2018-07-16 16:38:13.
+ * *************************************************
+ */
+
+package cn.com.qmth.examcloud.app.utils;
+
+import okhttp3.OkHttpClient;
+
+/**
+ * HttpClient 单例对象
+ */
+public enum HttpBuilder {
+    client;
+
+    private OkHttpClient instance;
+
+    HttpBuilder() {
+        instance = new OkHttpClient();
+    }
+
+    public OkHttpClient getInstance() {
+        return instance;
+    }
+
+}

+ 11 - 1
src/main/resources/application.properties

@@ -10,4 +10,14 @@ logging.file=logs/logging.txt
 logging.level.org.springframework=WARN
 logging.level.org.apache=WARN
 logging.level.com.qmth=DEBUG
-logging.level.cn.com.qmth=DEBUG
+logging.level.cn.com.qmth=DEBUG
+#蕉昢督昢華硊
+examcloud.kaowu.url=http://ecs-dev.qmth.com.cn:8001
+#厙蕉督昢華硊
+examcloud.wangkao.url=http://ecs-dev.qmth.com.cn:8003
+#枙踱督昢華硊
+examcloud.tiku.url=http://ecs-dev.qmth.com.cn:8868
+#'痐笢陑督昢華硊
+examcloud.auth.url=http://192.168.10.30
+#衱鼴堁恅璃督昢華硊
+examcloud.upyun.url=https://ecs-test-static.qmth.com.cn