nidapeng
2024-04-29 d207d5c6aa460c118a503e8ab4ae1e85b2ddded0
最新版本
已添加4个文件
已删除1个文件
已修改6个文件
已重命名2个文件
302 ■■■■ 文件已修改
server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/java/com/doumee/api/meeting/CloudBookingsController.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerConfig.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerResourceConfig.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/resources/bootstrap.yml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/java/com/doumee/api/timer/QuartzController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerConfig.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptor.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptorConfig.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/application-dev.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/bootstrap.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java
ÎļþÃû´Ó server/system_gateway/src/main/java/com/doumee/api/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;
server/system_gateway/src/main/java/com/doumee/api/meeting/CloudBookingsController.java
ÎļþÒÑɾ³ý
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());
    }
}
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;
    }
server/system_gateway/src/main/resources/application.yml
@@ -1,6 +1,6 @@
# é¡¹ç›®ä¿¡æ¯é…ç½®
project:
  name: è®¿å®¢ç³»ç»Ÿ
  name: å®‰æ³°ç‰©æµè®¿å®¢ç³»ç»Ÿ
  version: 1.0.0
  env: development
#  env: production
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:
server/system_timer/src/main/java/com/doumee/api/timer/QuartzController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/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 {
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());
    }
}
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;
    }
}
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");
    }
}
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
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:
server/system_timer/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
spring:
  application:
    name: system-timer
    name: systemTimer
    # å®‰å…¨é…ç½®
  security:
    # éªŒç­¾å…¬é’¥åœ°å€