deason 5 年之前
父节点
当前提交
ed1c33715e

+ 8 - 3
src/main/java/cn/com/qmth/examcloud/app/controller/RouterController.java

@@ -9,10 +9,12 @@ package cn.com.qmth.examcloud.app.controller;
 
 import cn.com.qmth.examcloud.app.core.router.Router;
 import cn.com.qmth.examcloud.app.model.Result;
+import cn.com.qmth.examcloud.app.service.RouterService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import static cn.com.qmth.examcloud.app.model.Constants.PARAM_APP_KEY;
@@ -30,14 +32,17 @@ import static cn.com.qmth.examcloud.app.model.Constants.PARAM_APP_TOKEN;
 public class RouterController {
     private static Logger log = LoggerFactory.getLogger(RouterController.class);
 
+    @Autowired
+    private RouterService routerService;
+
     @ApiOperation(value = "路由接口")
     @PostMapping(value = "/router")
     public Result router(@RequestHeader(name = PARAM_APP_KEY) String key,
                          @RequestHeader(name = PARAM_APP_TOKEN) String token,
                          @RequestBody Router router) {
-        //todo
-        log.info("router url:" + router.getUrl());
-        return new Result().success();
+        router.setKey(key);
+        router.setToken(token);
+        return routerService.execute(router);
     }
 
 }

+ 36 - 0
src/main/java/cn/com/qmth/examcloud/app/core/router/Router.java

@@ -1,16 +1,36 @@
 package cn.com.qmth.examcloud.app.core.router;
 
+import io.swagger.annotations.ApiModelProperty;
+
 import java.io.Serializable;
 import java.util.Map;
 
 public class Router implements Serializable {
+
+    @ApiModelProperty(value = "服务名", example = "BASIC、EXAMWORK、OE_ADMIN、OE_STUDENT、QUESTION", required = true)
     private Server server;
+
+    @ApiModelProperty(value = "URL地址", example = "/abc/1", required = true)
     private String url;
+
+    @ApiModelProperty(value = "请求方式", example = "GET、POST、PUT、DELETE", required = true)
     private Method method;
+
+    @ApiModelProperty(value = "请求Headers", required = false)
     private Map<String, Object> headers;
+
+    @ApiModelProperty(value = "请求Params", required = false)
     private Map<String, Object> params;
+
+    @ApiModelProperty(value = "请求Body", required = false)
     private String body;
 
+    @ApiModelProperty(value = "认证Key", required = false, hidden = true)
+    private String key;
+
+    @ApiModelProperty(value = "认证Token", required = false, hidden = true)
+    private String token;
+
     public Server getServer() {
         return server;
     }
@@ -59,4 +79,20 @@ public class Router implements Serializable {
         this.body = body;
     }
 
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getToken() {
+        return token;
+    }
+
+    public void setToken(String token) {
+        this.token = token;
+    }
+
 }

+ 29 - 0
src/main/java/cn/com/qmth/examcloud/app/service/RouterService.java

@@ -0,0 +1,29 @@
+package cn.com.qmth.examcloud.app.service;
+
+import cn.com.qmth.examcloud.app.core.SysProperty;
+import cn.com.qmth.examcloud.app.core.router.Router;
+import cn.com.qmth.examcloud.app.model.Result;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.util.Assert;
+
+@Component
+public class RouterService {
+    private static Logger log = LoggerFactory.getLogger(RouterService.class);
+    @Autowired
+    private SysProperty sysProperty;
+
+    public Result execute(Router router) {
+        Assert.notNull(router, "参数“router”不能为空!");
+        Assert.notNull(router.getServer(), "参数“server”不能为空!");
+        Assert.hasLength(router.getUrl(), "参数“url”不能为空!");
+        Assert.notNull(router.getMethod(), "参数“method”不能为空!");
+        log.info(String.format("Router:[%s][%s]-%s ", router.getServer().getInstanceName(), router.getMethod().name(), router.getUrl()));
+
+
+        return new Result().success();
+    }
+
+}