From d207d5c6aa460c118a503e8ab4ae1e85b2ddded0 Mon Sep 17 00:00:00 2001
From: nidapeng <jp@doumee.com>
Date: 星期一, 29 四月 2024 17:02:34 +0800
Subject: [PATCH] 最新版本

---
 server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptor.java       |   45 +++++++
 server/system_timer/src/main/resources/application.yml                                    |    4 
 server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerConfig.java          |   88 ++++++++++++++
 server/system_gateway/src/main/resources/bootstrap.yml                                    |   12 +
 server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptorConfig.java |   23 +++
 server/system_timer/src/main/resources/bootstrap.yml                                      |    2 
 /dev/null                                                                                 |   23 ---
 server/system_timer/src/main/java/com/doumee/api/timer/QuartzController.java              |    4 
 server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java         |    2 
 server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerResourceConfig.java  |    3 
 server/system_timer/src/main/resources/application-dev.yml                                |    8 
 server/system_gateway/src/main/resources/application.yml                                  |    2 
 server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerConfig.java            |   88 ++++++++++++++
 13 files changed, 265 insertions(+), 39 deletions(-)

diff --git a/server/system_gateway/src/main/java/com/doumee/api/JwtAuthController.java b/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java
similarity index 98%
rename from server/system_gateway/src/main/java/com/doumee/api/JwtAuthController.java
rename to server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java
index 418e6f7..2cbb365 100644
--- a/server/system_gateway/src/main/java/com/doumee/api/JwtAuthController.java
+++ b/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java
@@ -1,4 +1,4 @@
-package com.doumee.api;
+package com.doumee.api.gateway;
 
 import com.doumee.config.annotation.LoginNoRequired;
 import com.doumee.config.jwt.JwtProperties;
diff --git a/server/system_gateway/src/main/java/com/doumee/api/meeting/CloudBookingsController.java b/server/system_gateway/src/main/java/com/doumee/api/meeting/CloudBookingsController.java
deleted file mode 100644
index 5963a9e..0000000
--- a/server/system_gateway/src/main/java/com/doumee/api/meeting/CloudBookingsController.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.doumee.api.meeting;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiModel;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * @author 姹熻箘韫�
- * @date 2023/05/04 18:18
- */
-@RestController
-@RequestMapping("/gateway")
-@Api(tags ="娴嬭瘯鎺ュ彛")
-public class CloudBookingsController  {
-
-    @GetMapping("/test")
-    public String test() {
-        return ("缃戠娴嬭瘯鎴愬姛");
-    }
-
-}
diff --git a/server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerConfig.java b/server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
new file mode 100644
index 0000000..07e9c82
--- /dev/null
+++ b/server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
@@ -0,0 +1,88 @@
+package com.doumee.config.swagger;
+
+import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
+import com.google.common.base.Function;
+import com.google.common.base.Optional;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.RequestHandler;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.oas.annotations.EnableOpenApi;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+
+import java.util.function.Predicate;
+
+/**
+ * Swagger閰嶇疆
+ * @author Eva.Caesar Liu
+ * @date 2022/03/11 10:24
+ */
+@Configuration
+@EnableOpenApi
+@EnableKnife4j
+public class SwaggerConfig {
+
+    @Value("${swagger.host:}")
+    private String host;
+
+    @Value("${swagger.title:鎺ュ彛鏂囨。}")
+    private String title;
+
+    @Value("${swagger.description:}")
+    private String description;
+
+    @Value("${project.version:}")
+    private String version;
+
+    @Bean
+    public ApiInfo getApiInfo() {
+        return new ApiInfoBuilder()
+                .title(title)
+                .description(description)
+                .version(version)
+                .build();
+    }
+    @Bean
+    public Docket getDocket2() {
+        return new Docket(DocumentationType.SWAGGER_2)
+                .apiInfo(this.getApiInfo()).groupName("default")
+                .host(host)
+                .select()
+                .apis( basePackage("com.doumee.api.gateway;"))
+                // 璁剧疆闇�瑕佽鎵弿鐨勭被锛岃繖閲岃缃负娣诲姞浜咢Api娉ㄨВ鐨勭被
+//                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
+                .paths(PathSelectors.any())
+                .build();
+    }
+
+    /**
+     * 閲嶅啓basePackage鏂规硶锛屼娇鑳藉瀹炵幇澶氬寘璁块棶锛屽鍒惰创涓婂幓
+     * @author  teavamc
+     * @date 2019/1/26
+     * @return com.google.common.base.Predicate<springfox.documentation.RequestHandler>
+     */
+    public static Predicate<RequestHandler> basePackage(String basePackage) {
+        return input -> declaringClass(input).transform(handlerPackage(basePackage)).or(true);
+    }
+
+    private static Function<Class<?>, Boolean> handlerPackage(String basePackage)     {
+        return input -> {
+            // 寰幆鍒ゆ柇鍖归厤
+            for (String strPackage : basePackage.split(";")) {
+                boolean isMatch = input.getPackage().getName().startsWith(strPackage);
+                if (isMatch) {
+                    return true;
+                }
+            }
+            return false;
+        };
+    }
+
+    private static Optional<? extends Class<?>> declaringClass(RequestHandler input) {
+        return Optional.fromNullable(input.declaringClass());
+    }
+}
diff --git a/server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerResourceConfig.java b/server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerResourceConfig.java
index e3fbc3a..a471efe 100644
--- a/server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerResourceConfig.java
+++ b/server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerResourceConfig.java
@@ -25,7 +25,7 @@
     @Override
     public List<SwaggerResource> get() {
         List<SwaggerResource> resources = new ArrayList<>();
-        resources.add(swaggerResource("gatewayService",  "v2/api-docs?group=default"));
+        resources.add(swaggerResource("缃戠鏈嶅姟鎺ュ彛",  "v2/api-docs?group=default"));
         List<String> routes = new ArrayList<>();
         routeLocator.getRoutes().subscribe(route -> routes.add(route.getId()));
         gatewayProperties.getRoutes().stream().filter(routeDefinition -> routes.contains(routeDefinition.getId())).forEach(route -> {
@@ -35,7 +35,6 @@
                             predicateDefinition.getArgs().get(NameUtils.GENERATED_NAME_PREFIX + "0")
                                     .replace("**", "v2/api-docs?group=default"))));
         });
-
         return resources;
     }
 
diff --git a/server/system_gateway/src/main/resources/application.yml b/server/system_gateway/src/main/resources/application.yml
index a02acc1..9be4661 100644
--- a/server/system_gateway/src/main/resources/application.yml
+++ b/server/system_gateway/src/main/resources/application.yml
@@ -1,6 +1,6 @@
 # 椤圭洰淇℃伅閰嶇疆
 project:
-  name: 璁垮绯荤粺
+  name: 瀹夋嘲鐗╂祦璁垮绯荤粺
   version: 1.0.0
   env: development
 #  env: production
diff --git a/server/system_gateway/src/main/resources/bootstrap.yml b/server/system_gateway/src/main/resources/bootstrap.yml
index 59e04cc..69895a9 100644
--- a/server/system_gateway/src/main/resources/bootstrap.yml
+++ b/server/system_gateway/src/main/resources/bootstrap.yml
@@ -28,24 +28,30 @@
         - id: meetingAdmin
           name: 浼氳瀹ゅ井鏈嶅姟
           uri: lb://meetingAdmin
-#          uri: http://localhost:10013
           # 鏂█,璺緞鐩稿尮閰嶇殑杩涜璺敱
           predicates:
             - Path=/meetingAdmin/**
           filters:
             - SwaggerHeaderFilter
             - StripPrefix=1
-
         - id: visitsAdmin
           uri: lb://visitsAdmin
           name: 璁垮绯荤粺寰湇鍔�
-#          uri: http://localhost:10028
           # 鏂█,璺緞鐩稿尮閰嶇殑杩涜璺敱
           predicates:
             - Path=/visitsAdmin/**
           filters:
             - SwaggerHeaderFilter
             - StripPrefix=1
+        - id: systemTimer
+          uri: lb://systemTimer
+          name: 瀹氭椂浠诲姟寰湇鍔�
+          # 鏂█,璺緞鐩稿尮閰嶇殑杩涜璺敱
+          predicates:
+            - Path=/systemTimer/**
+          filters:
+            - SwaggerHeaderFilter
+            - StripPrefix=1
 management:
   endpoints:
     web:
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/timer/QuartzController.java b/server/system_timer/src/main/java/com/doumee/api/timer/QuartzController.java
similarity index 94%
rename from server/visits/dmvisit_admin/src/main/java/com/doumee/api/timer/QuartzController.java
rename to server/system_timer/src/main/java/com/doumee/api/timer/QuartzController.java
index 50b80fb..d6a488a 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/timer/QuartzController.java
+++ b/server/system_timer/src/main/java/com/doumee/api/timer/QuartzController.java
@@ -9,7 +9,7 @@
 import javax.annotation.Resource;
 
 @RestController
-@RequestMapping("/business/quartz")
+@RequestMapping("/cloudService/quartz")
 @Api(tags = "瀹氭椂浠诲姟鎺ュ彛")
 public class QuartzController {
 
@@ -40,7 +40,7 @@
         quartzJobService.pause(id);
     }
 
-   @ApiOperation( "鎭㈠浠诲姟")
+    @ApiOperation( "鎭㈠浠诲姟")
     @PostMapping("/job/resume/{id}")
     public void resume(@PathVariable("id") Integer id) {
         quartzJobService.resume(id) ;
diff --git a/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerConfig.java b/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
new file mode 100644
index 0000000..c2c35b0
--- /dev/null
+++ b/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
@@ -0,0 +1,88 @@
+package com.doumee.config.swagger;
+
+import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
+import com.google.common.base.Function;
+import com.google.common.base.Optional;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.RequestHandler;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.oas.annotations.EnableOpenApi;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+
+import java.util.function.Predicate;
+
+/**
+ * Swagger閰嶇疆
+ * @author Eva.Caesar Liu
+ * @date 2022/03/11 10:24
+ */
+@Configuration
+@EnableOpenApi
+@EnableKnife4j
+public class SwaggerConfig {
+
+    @Value("${swagger.host:}")
+    private String host;
+
+    @Value("${swagger.title:鎺ュ彛鏂囨。}")
+    private String title;
+
+    @Value("${swagger.description:}")
+    private String description;
+
+    @Value("${project.version:}")
+    private String version;
+
+    @Bean
+    public ApiInfo getApiInfo() {
+        return new ApiInfoBuilder()
+                .title(title)
+                .description(description)
+                .version(version)
+                .build();
+    }
+    @Bean
+    public Docket getDocket2() {
+        return new Docket(DocumentationType.SWAGGER_2)
+                .apiInfo(this.getApiInfo()).groupName("default")
+                .host(host)
+                .select()
+                .apis( basePackage("com.doumee.api.timer;"))
+                // 璁剧疆闇�瑕佽鎵弿鐨勭被锛岃繖閲岃缃负娣诲姞浜咢Api娉ㄨВ鐨勭被
+//                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
+                .paths(PathSelectors.any())
+                .build();
+    }
+
+    /**
+     * 閲嶅啓basePackage鏂规硶锛屼娇鑳藉瀹炵幇澶氬寘璁块棶锛屽鍒惰创涓婂幓
+     * @author  teavamc
+     * @date 2019/1/26
+     * @return com.google.common.base.Predicate<springfox.documentation.RequestHandler>
+     */
+    public static Predicate<RequestHandler> basePackage(String basePackage) {
+        return input -> declaringClass(input).transform(handlerPackage(basePackage)).or(true);
+    }
+
+    private static Function<Class<?>, Boolean> handlerPackage(String basePackage)     {
+        return input -> {
+            // 寰幆鍒ゆ柇鍖归厤
+            for (String strPackage : basePackage.split(";")) {
+                boolean isMatch = input.getPackage().getName().startsWith(strPackage);
+                if (isMatch) {
+                    return true;
+                }
+            }
+            return false;
+        };
+    }
+
+    private static Optional<? extends Class<?>> declaringClass(RequestHandler input) {
+        return Optional.fromNullable(input.declaringClass());
+    }
+}
diff --git a/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptor.java b/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptor.java
new file mode 100644
index 0000000..8fd55c6
--- /dev/null
+++ b/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptor.java
@@ -0,0 +1,45 @@
+package com.doumee.config.swagger;
+
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * Swagger鎷︽埅鍣�
+ * @author Eva.Caesar Liu
+ * @date 2022/04/18 18:12
+ */
+@Slf4j
+@Component
+public class SwaggerInterceptor implements HandlerInterceptor {
+
+    @Value("${swagger.enabled:false}")
+    private Boolean enabledSwagger;
+
+    @Value("${swagger.redirect-uri:/}")
+    private String redirectUri;
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
+        if (!enabledSwagger) {
+            String uri = request.getContextPath();
+            if (StringUtils.isNotBlank(redirectUri))
+                uri = request.getContextPath() + redirectUri;
+            if (StringUtils.isBlank(uri))
+                uri = "/";
+            try {
+                response.sendRedirect(uri);
+            } catch (IOException e) {
+                log.error(String.format("Redirect to '%s' for swagger throw an exception : %s", uri, e.getMessage()), e);
+            }
+            return Boolean.FALSE;
+        }
+        return Boolean.TRUE;
+    }
+}
diff --git a/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptorConfig.java b/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptorConfig.java
new file mode 100644
index 0000000..f67e9a8
--- /dev/null
+++ b/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptorConfig.java
@@ -0,0 +1,23 @@
+package com.doumee.config.swagger;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * Swagger鎷︽埅鍣ㄩ厤缃�
+ * @author Eva.Caesar Liu
+ * @date 2022/04/18 18:12
+ */
+@Configuration
+public class SwaggerInterceptorConfig implements WebMvcConfigurer {
+
+    @Autowired
+    private SwaggerInterceptor swaggerInterceptor;
+
+    @Override
+    public void addInterceptors(InterceptorRegistry registry) {
+        registry.addInterceptor(swaggerInterceptor).addPathPatterns("/swagger-ui.html", "/doc.html");
+    }
+}
diff --git a/server/system_timer/src/main/resources/application-dev.yml b/server/system_timer/src/main/resources/application-dev.yml
index fcf49af..648aa21 100644
--- a/server/system_timer/src/main/resources/application-dev.yml
+++ b/server/system_timer/src/main/resources/application-dev.yml
@@ -23,10 +23,10 @@
 #  username: 4derRb4Sw5EkqUMI
 #  password: v50N97wf4av8Q8I4
 
-#knife4j:
-#  enable: true
-#  basic:
-#    enable: true
+knife4j:
+  enable: true
+  basic:
+    enable: true
 #    username: admin
 #    password: 111111
 
diff --git a/server/system_timer/src/main/resources/application.yml b/server/system_timer/src/main/resources/application.yml
index fac150d..b08486e 100644
--- a/server/system_timer/src/main/resources/application.yml
+++ b/server/system_timer/src/main/resources/application.yml
@@ -8,7 +8,7 @@
 
 spring:
   application:
-    name: system_timer
+    name: systemTimer
   profiles:
     active: dev
 
@@ -64,7 +64,7 @@
   compression:
     enabled: true
     mime-types: application/json
-  port: 10010
+  port: 10011
   tomcat:
     max-swallow-size: -1
   servlet:
diff --git a/server/system_timer/src/main/resources/bootstrap.yml b/server/system_timer/src/main/resources/bootstrap.yml
index c75d94f..632116c 100644
--- a/server/system_timer/src/main/resources/bootstrap.yml
+++ b/server/system_timer/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   application:
-    name: system-timer
+    name: systemTimer
     # 瀹夊叏閰嶇疆
   security:
     # 楠岀鍏挜鍦板潃

--
Gitblit v1.9.3