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