feat: 增加 aggr 聚合服务层,并将 bff 中的 聚合API 迁移到 aggr
diff --git a/aggr/admin/.gitignore b/aggr/admin/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/aggr/admin/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/aggr/admin/Dockerfile b/aggr/admin/Dockerfile
new file mode 100644
index 0000000..b91c9f4
--- /dev/null
+++ b/aggr/admin/Dockerfile
@@ -0,0 +1,21 @@
+FROM harbor.supwisdom.com/institute/openjdk:8-jre-alpine
+
+ENV ENABLE_JMX_SSL=false
+ENV JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=docker
+ENV SPRING_PROFILES_ACTIVE=docker
+
+ARG NAME
+ARG VERSION
+ARG JAR_FILE
+
+LABEL name=$NAME \
+ version=$VERSION
+
+EXPOSE 8080
+
+EXPOSE 8443
+
+COPY --chown=java-app:java-app target/${JAR_FILE} /home/java-app/lib/app.jar
+
+# COPY --chown=java-app:java-app target/doc /home/java-app/doc
+# COPY --chown=java-app:java-app target/api-docs /home/java-app/api-docs
diff --git a/aggr/admin/pom.xml b/aggr/admin/pom.xml
new file mode 100644
index 0000000..38a14f1
--- /dev/null
+++ b/aggr/admin/pom.xml
@@ -0,0 +1,210 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>com.supwisdom.institute</groupId>
+ <artifactId>sw-backend-parent</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <relativePath>../../</relativePath>
+ </parent>
+
+ <groupId>com.supwisdom.institute</groupId>
+ <artifactId>sw-backend-admin-aggr</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <name>Supwisdom Backend Framework Admin Aggregator API</name>
+ <description>Supwisdom Backend Framework Admin Aggregator API project</description>
+
+ <properties>
+ <start-class>com.supwisdom.institute.backend.admin.aggr.Application</start-class>
+ </properties>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter</artifactId>
+ </dependency>
+
+ <!-- 微服务 健康监控 -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-actuator</artifactId>
+ </dependency>
+
+
+ <dependency>
+ <groupId>org.springframework.cloud</groupId>
+ <artifactId>spring-cloud-starter-openfeign</artifactId>
+ </dependency>
+
+
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-web</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>com.supwisdom.infras</groupId>
+ <artifactId>infras-online-doc</artifactId>
+ </dependency>
+
+
+ <!-- <dependency>
+ <groupId>com.supwisdom.infras</groupId>
+ <artifactId>infras-mvc</artifactId>
+ </dependency> -->
+
+ <dependency>
+ <groupId>com.supwisdom.infras</groupId>
+ <artifactId>infras-object-mapper</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>com.supwisdom.infras</groupId>
+ <artifactId>infras-i18n</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>com.supwisdom.infras</groupId>
+ <artifactId>infras-lang</artifactId>
+ </dependency>
+
+
+ <dependency>
+ <groupId>com.supwisdom.institute</groupId>
+ <artifactId>sw-backend-common-framework</artifactId>
+ </dependency>
+
+
+ <dependency>
+ <groupId>io.springfox</groupId>
+ <artifactId>springfox-swagger2</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.springfox</groupId>
+ <artifactId>springfox-swagger-ui</artifactId>
+ </dependency>
+
+
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-java</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+
+ <!-- 热部署,无需重启项目 -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-devtools</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+
+
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-test</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>${project.artifactId}</finalName>
+
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-release-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ </plugin>
+
+
+ <!-- <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.4.3</version>
+ <configuration>
+ <encoding>${project.build.sourceEncoding}</encoding>
+ </configuration>
+ <executions>
+ <execution>
+ <id>copy-doc-resources</id>
+ <phase>package</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <encoding>utf-8</encoding>
+ <outputDirectory>${basedir}/target/doc</outputDirectory>
+ <overwrite>true</overwrite>
+ <resources>
+ <resource>
+ <directory>${basedir}/../doc</directory>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-api-docs-resources</id>
+ <phase>package</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <encoding>utf-8</encoding>
+ <outputDirectory>${basedir}/target/api-docs</outputDirectory>
+ <overwrite>true</overwrite>
+ <resources>
+ <resource>
+ <directory>${basedir}/../api-docs</directory>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin> -->
+
+
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ </plugin>
+
+ <plugin>
+ <groupId>com.spotify</groupId>
+ <artifactId>dockerfile-maven-plugin</artifactId>
+ <configuration>
+ <skip>false</skip>
+ </configuration>
+ </plugin>
+
+ </plugins>
+
+ </build>
+
+</project>
diff --git a/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/Application.java b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/Application.java
new file mode 100644
index 0000000..f3762ce
--- /dev/null
+++ b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/Application.java
@@ -0,0 +1,42 @@
+package com.supwisdom.institute.backend.admin.aggr;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.Bean;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
+
+import com.supwisdom.infras.online.doc.configuration.EnableInfrasOnlineDoc;
+import com.supwisdom.institute.backend.common.core.transmit.annotation.EnableSimpleUserTransmit;
+import com.supwisdom.institute.backend.common.framework.exception.EnableCustomExceptionHandler;
+
+@SpringBootApplication
+@EnableFeignClients
+
+@EnableSimpleUserTransmit
+@EnableCustomExceptionHandler
+
+@EnableInfrasOnlineDoc
+public class Application {
+
+ public static void main(String[] args) {
+ SpringApplication.run(Application.class, args);
+ }
+
+ @Bean
+ public CorsFilter corsFilter() {
+ final CorsConfiguration config = new CorsConfiguration();
+ // config.setAllowCredentials(true);
+ config.addAllowedOrigin("*");
+ config.addAllowedHeader("*");
+ config.addAllowedMethod("*");
+
+ final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+ source.registerCorsConfiguration("/v2/api-docs", config);
+
+ return new CorsFilter(source);
+ }
+
+}
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/controller/.gitkeep b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/controller/.gitkeep
similarity index 100%
rename from bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/controller/.gitkeep
rename to aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/controller/.gitkeep
diff --git a/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/controller/base/AdminBaseController.java b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/controller/base/AdminBaseController.java
new file mode 100644
index 0000000..2411d5e
--- /dev/null
+++ b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/controller/base/AdminBaseController.java
@@ -0,0 +1,19 @@
+package com.supwisdom.institute.backend.admin.aggr.apis.controller.base;
+
+import org.springframework.util.MimeTypeUtils;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.supwisdom.institute.backend.common.core.transmit.user.UserContext;
+
+@RestController
+@RequestMapping(value = "/v1/admin/base")
+public class AdminBaseController {
+
+ @RequestMapping(method = RequestMethod.GET, produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+ public String hello() {
+ return "hello, " + UserContext.getUsername();
+ }
+
+}
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/controller/biz/AdminBizController.java b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/controller/biz/AdminBizController.java
similarity index 61%
rename from bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/controller/biz/AdminBizController.java
rename to aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/controller/biz/AdminBizController.java
index 68bd37a..30dfbcd 100644
--- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/controller/biz/AdminBizController.java
+++ b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/controller/biz/AdminBizController.java
@@ -1,16 +1,25 @@
-package com.supwisdom.institute.backend.admin.bff.apis.controller.biz;
+package com.supwisdom.institute.backend.admin.aggr.apis.controller.biz;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.MimeTypeUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
+import com.supwisdom.institute.backend.admin.aggr.apis.service.biz.BizService;
+
@RestController
@RequestMapping(value = "/api/bff/v1/admin/biz")
public class AdminBizController {
+
+ @Autowired
+ BizService bizService;
@RequestMapping(method = RequestMethod.GET, produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
public String biz() {
+
+ bizService.query(true, -1, -1);
+
return "biz";
}
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/.gitkeep b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/model/.gitkeep
similarity index 100%
rename from bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/.gitkeep
rename to aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/model/.gitkeep
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/biz/Biz.java b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/model/biz/Biz.java
similarity index 87%
rename from bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/biz/Biz.java
rename to aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/model/biz/Biz.java
index f1d904e..b36e117 100644
--- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/biz/Biz.java
+++ b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/model/biz/Biz.java
@@ -1,4 +1,4 @@
-package com.supwisdom.institute.backend.admin.bff.apis.model.biz;
+package com.supwisdom.institute.backend.admin.aggr.apis.model.biz;
import java.util.Date;
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/.gitkeep b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/.gitkeep
similarity index 100%
rename from bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/.gitkeep
rename to aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/.gitkeep
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/biz/BizRemoteFallbackFactory.java b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/biz/BizRemoteFallbackFactory.java
similarity index 85%
rename from bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/biz/BizRemoteFallbackFactory.java
rename to aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/biz/BizRemoteFallbackFactory.java
index 30d312d..22447f0 100644
--- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/biz/BizRemoteFallbackFactory.java
+++ b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/biz/BizRemoteFallbackFactory.java
@@ -1,10 +1,10 @@
-package com.supwisdom.institute.backend.admin.bff.apis.remote.biz;
+package com.supwisdom.institute.backend.admin.aggr.apis.remote.biz;
import org.springframework.stereotype.Component;
import com.alibaba.fastjson.JSONObject;
-import com.supwisdom.institute.backend.admin.bff.apis.model.biz.Biz;
-import com.supwisdom.institute.backend.admin.bff.remote.FallbackError;
+import com.supwisdom.institute.backend.admin.aggr.apis.model.biz.Biz;
+import com.supwisdom.institute.backend.admin.aggr.apis.remote.exception.FallbackError;
import feign.hystrix.FallbackFactory;
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/biz/BizRemoteFeignClient.java b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/biz/BizRemoteFeignClient.java
similarity index 90%
rename from bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/biz/BizRemoteFeignClient.java
rename to aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/biz/BizRemoteFeignClient.java
index cccdd8a..9361f45 100644
--- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/biz/BizRemoteFeignClient.java
+++ b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/biz/BizRemoteFeignClient.java
@@ -1,4 +1,4 @@
-package com.supwisdom.institute.backend.admin.bff.apis.remote.biz;
+package com.supwisdom.institute.backend.admin.aggr.apis.remote.biz;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
@@ -8,7 +8,7 @@
import org.springframework.web.bind.annotation.RequestParam;
import com.alibaba.fastjson.JSONObject;
-import com.supwisdom.institute.backend.admin.bff.apis.model.biz.Biz;
+import com.supwisdom.institute.backend.admin.aggr.apis.model.biz.Biz;
@FeignClient(
name = "biz-biz-remote-feign-client",
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/remote/FallbackError.java b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/exception/FallbackError.java
similarity index 82%
rename from bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/remote/FallbackError.java
rename to aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/exception/FallbackError.java
index d46aa8d..51ae782 100644
--- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/remote/FallbackError.java
+++ b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/exception/FallbackError.java
@@ -1,4 +1,4 @@
-package com.supwisdom.institute.backend.admin.bff.remote;
+package com.supwisdom.institute.backend.admin.aggr.apis.remote.exception;
import com.alibaba.fastjson.JSONObject;
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/service/.gitkeep b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/service/.gitkeep
similarity index 100%
rename from bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/service/.gitkeep
rename to aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/service/.gitkeep
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/service/biz/BizService.java b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/service/biz/BizService.java
similarity index 66%
rename from bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/service/biz/BizService.java
rename to aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/service/biz/BizService.java
index 7c6b8a7..49baee2 100644
--- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/service/biz/BizService.java
+++ b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/service/biz/BizService.java
@@ -1,11 +1,13 @@
-package com.supwisdom.institute.backend.admin.bff.apis.service.biz;
+package com.supwisdom.institute.backend.admin.aggr.apis.service.biz;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSONObject;
-import com.supwisdom.institute.backend.admin.bff.apis.remote.biz.BizRemoteFeignClient;
-import com.supwisdom.institute.backend.admin.bff.apis.vo.response.biz.data.BizQueryResponseData;
+import com.supwisdom.institute.backend.admin.aggr.apis.remote.biz.BizRemoteFeignClient;
+import com.supwisdom.institute.backend.admin.aggr.apis.vo.biz.response.data.BizQueryResponseData;
+@Service
public class BizService {
@Autowired
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/vo/.gitkeep b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/vo/.gitkeep
similarity index 100%
rename from bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/vo/.gitkeep
rename to aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/vo/.gitkeep
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/vo/response/biz/data/BizQueryResponseData.java b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/vo/biz/response/data/BizQueryResponseData.java
similarity index 83%
rename from bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/vo/response/biz/data/BizQueryResponseData.java
rename to aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/vo/biz/response/data/BizQueryResponseData.java
index 3699ff7..815cc6a 100644
--- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/vo/response/biz/data/BizQueryResponseData.java
+++ b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/vo/biz/response/data/BizQueryResponseData.java
@@ -1,4 +1,4 @@
-package com.supwisdom.institute.backend.admin.bff.apis.vo.response.biz.data;
+package com.supwisdom.institute.backend.admin.aggr.apis.vo.biz.response.data;
import java.util.List;
import java.util.Map;
@@ -6,7 +6,7 @@
import lombok.Getter;
import lombok.Setter;
-import com.supwisdom.institute.backend.admin.bff.apis.model.biz.Biz;
+import com.supwisdom.institute.backend.admin.aggr.apis.model.biz.Biz;
import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiQueryResponseData;
public class BizQueryResponseData implements IApiQueryResponseData<Biz> {
diff --git a/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/configuration/FeignClientConfiguration.java b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/configuration/FeignClientConfiguration.java
new file mode 100644
index 0000000..6bcf4c1
--- /dev/null
+++ b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/configuration/FeignClientConfiguration.java
@@ -0,0 +1,70 @@
+package com.supwisdom.institute.backend.admin.aggr.configuration;
+
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSocketFactory;
+
+import org.apache.http.conn.ssl.NoopHostnameVerifier;
+import org.apache.http.ssl.SSLContextBuilder;
+import org.apache.http.ssl.SSLContexts;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.util.ResourceUtils;
+
+import feign.Client;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@Configuration
+public class FeignClientConfiguration {
+
+ @Bean
+ public Client feignClient(
+ @Value("${cas-server-sa-api.client-auth.enabled:false}") boolean enabled,
+ @Value("${cas-server-sa-api.client-auth.key-password:}") String keyPassword,
+ @Value("${cas-server-sa-api.client-auth.key-store:}") String keyStore,
+ @Value("${cas-server-sa-api.client-auth.key-store-password:}") String keyStorePassword,
+ @Value("${cas-server-sa-api.client-auth.trust-store:}") String trustStore,
+ @Value("${cas-server-sa-api.client-auth.trust-store-password:}") String trustStorePassword) {
+
+ if (!enabled) {
+ return new Client.Default(null, null);
+ }
+
+ if (keyStore == null || keyStore.isEmpty()) {
+ return new Client.Default(null, null);
+ } else {
+ try {
+ SSLContextBuilder sslContextBuilder = SSLContexts.custom();
+ if (trustStore == null || trustStore.isEmpty()) {
+ } else {
+ sslContextBuilder
+// .loadTrustMaterial(TrustAllStrategy.INSTANCE)
+ .loadTrustMaterial(
+ ResourceUtils.getFile(trustStore),
+ trustStorePassword.toCharArray()
+ );
+ }
+
+ sslContextBuilder
+ .loadKeyMaterial(
+ ResourceUtils.getFile(keyStore),
+ keyStorePassword.toCharArray(),
+ keyPassword.toCharArray());
+
+ SSLContext sslContext = sslContextBuilder.build();
+
+ SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
+
+ Client trustSSLSockets = new Client.Default(sslSocketFactory, new NoopHostnameVerifier());
+ log.info("feignClient load with ssl.");
+ return trustSSLSockets;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ return new Client.Default(null, null);
+ }
+
+}
diff --git a/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/configuration/Swagger2Config.java b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/configuration/Swagger2Config.java
new file mode 100644
index 0000000..d6311e2
--- /dev/null
+++ b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/configuration/Swagger2Config.java
@@ -0,0 +1,63 @@
+package com.supwisdom.institute.backend.admin.aggr.configuration;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger.web.UiConfiguration;
+import springfox.documentation.swagger.web.UiConfigurationBuilder;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+@Configuration
+@EnableSwagger2
+public class Swagger2Config {
+
+ @Value("${swagger2.apis.basePackage:com.supwisdom.institute}")
+ private String basePackage;
+
+ @Bean
+ public Docket createRestApi() {
+ return new Docket(DocumentationType.SWAGGER_2)
+ .apiInfo(apiInfo())
+ .select()
+ .apis(RequestHandlerSelectors.basePackage(basePackage))
+ .paths(PathSelectors.any())
+ .build()
+ ;
+ }
+
+ private ApiInfo apiInfo() {
+ Contact contact = new Contact("Backend Admin Aggregator API", "https://sw-backend-aggr.supwisdom.com/swagger-ui.html", ""); // name, url, email
+ return new ApiInfoBuilder()
+ .title("Backend Admin Aggregator APIs")
+ .description("管理后台 - 聚合接口")
+ .termsOfServiceUrl("http://www.supwisdom.com/")
+ .contact(contact)
+ .version("1.0")
+ .build();
+ }
+
+ @Bean
+ UiConfiguration uiConfig() {
+
+ return UiConfigurationBuilder.builder().build();
+
+// return new UiConfiguration(null, // url
+// "none", // docExpansion => none | list
+// "alpha", // apiSorter => alpha
+// "schema", // defaultModelRendering => schema
+// UiConfiguration.Constants.DEFAULT_SUBMIT_METHODS,
+// false, // enableJsonEditor => true || false
+// true, // showRequestHeaders => true | false
+// 60000L); // requestTimeout => in milliseconds, defaults to null
+// // (uses jquery xh timeout)
+ }
+
+}
diff --git a/aggr/admin/src/main/resources/application-docker.yml b/aggr/admin/src/main/resources/application-docker.yml
new file mode 100644
index 0000000..a46fee8
--- /dev/null
+++ b/aggr/admin/src/main/resources/application-docker.yml
@@ -0,0 +1,68 @@
+server:
+ port: ${SERVER_PORT:8443}
+ ssl:
+ enabled: ${SSL_ENABLED:true}
+ clientAuth: NEED
+ key-store: ${SSL_KEYSTORE_FILE:file:/certs/server/server.keystore}
+ key-store-password: ${SSL_KEYSTORE_PASSWORD:}
+ trust-store: ${SSL_TRUSTSTORE_FILE:file:/certs/server/server.truststore}
+ trust-store-password: ${SSL_TRUSTSTORE_PASSWORD:}
+ tomcat:
+ accesslog:
+ enabled: ${TOMCAT_ACCESSLOG_ENABLED:false}
+ buffered: ${TOMCAT_ACCESSLOG_BUFFERED:true}
+ directory: ${TOMCAT_ACCESSLOG_DIR:log}
+ prefix: ${TOMCAT_ACCESSLOG_PREFIX:sa-api-accesslog}
+ suffix: ${TOMCAT_ACCESSLOG_SUFFIX:.log}
+ file-date-format: ${TOMCAT_ACCESSLOG_FILE_DATE_FORMAT:.yyyy-MM-dd}
+ rotate: ${TOMCAT_ACCESSLOG_ROTATE:true}
+
+
+##
+# logging
+#
+logging:
+ level:
+ root: INFO
+ com.supwisdom: INFO
+
+
+spring:
+ jackson:
+ time-zone: ${JACKSON_TIME_ZONE:Asia/Shanghai}
+
+
+##
+# online-doc
+#
+infras.online-doc.enabled: ${INFRAS_ONLINE_DOC_ENABLED:false}
+infras.online-doc.md-docs.staitc.path: ${INFRAS_ONLINE_DOC_MD_DOCS_STATIC_PATH:/doc/}
+infras.online-doc.api-docs.staitc.path: ${INFRAS_ONLINE_DOC_API_DOCS_STATIC_PATH:/api-docs/}
+
+
+##
+# server url for feign
+#
+sw-backend-base-api:
+ uri: ${SW_BACKEND_BASE_API_URI:https://sw-backend-admin-sa}
+ client-auth:
+ enabled: ${CASSERVER_SA_API_CLIENT_AUTH_ENABLED:true}
+ key-password: ${CASSERVER_SA_API_CLIENT_AUTH_KEY_PASSWORD:}
+ key-store: ${CASSERVER_SA_API_CLIENT_AUTH_KEYSTORE_FILE:file:/certs/common/common.keystore}
+ key-store-password: ${CASSERVER_SA_API_CLIENT_AUTH_KEYSTORE_PASSWORD:}
+ trust-store: ${CASSERVER_SA_API_CLIENT_AUTH_TRUSTSTORE_FILE:file:/certs/common/common.truststore}
+ trust-store-password: ${CASSERVER_SA_API_CLIENT_AUTH_TRUSTSTORE_PASSWORD:}
+
+sw-backend-system-api.uri: http://localhost:8081
+sw-backend-biz-api.uri: http://localhost:8081
+
+sw-backend-api-admin:
+ server:
+ url: ${CASSERVER_SA_API_SERVER_URL:https://sw-backend}
+ client-auth:
+ enabled: ${CASSERVER_SA_API_CLIENT_AUTH_ENABLED:true}
+ key-password: ${CASSERVER_SA_API_CLIENT_AUTH_KEY_PASSWORD:}
+ key-store: ${CASSERVER_SA_API_CLIENT_AUTH_KEYSTORE_FILE:file:/certs/common/common.keystore}
+ key-store-password: ${CASSERVER_SA_API_CLIENT_AUTH_KEYSTORE_PASSWORD:}
+ trust-store: ${CASSERVER_SA_API_CLIENT_AUTH_TRUSTSTORE_FILE:file:/certs/common/common.truststore}
+ trust-store-password: ${CASSERVER_SA_API_CLIENT_AUTH_TRUSTSTORE_PASSWORD:}
diff --git a/aggr/admin/src/main/resources/application.yml b/aggr/admin/src/main/resources/application.yml
new file mode 100644
index 0000000..e0683b0
--- /dev/null
+++ b/aggr/admin/src/main/resources/application.yml
@@ -0,0 +1,39 @@
+server:
+ port: 8082
+ ssl:
+ enabled: false
+
+
+##
+# logging
+#
+logging:
+ level:
+ root: INFO
+ com.supwisdom: DEBUG
+# org.springframework.web: INFO
+# org.springframework.cloud.openfeign: INFO
+
+
+swagger2.apis.basePackage: com.supwisdom.institute
+
+
+spring:
+ jackson:
+ time-zone: Asia/Shanghai
+
+
+##
+# infras.online-doc
+#
+infras.online-doc.enabled: true
+infras.online-doc.md-docs.staitc.path: /Users/loie/c/work/git/institute/sw-backend/doc/
+infras.online-doc.api-docs.staitc.path: /Users/loie/c/work/git/institute/sw-backend/api-docs/
+
+
+##
+# server url for feign
+#
+sw-backend-base-api.uri: http://localhost:8081
+sw-backend-system-api.uri: http://localhost:8081
+sw-backend-biz-api.uri: http://localhost:8081
diff --git a/aggr/admin/src/main/resources/bootstrap.yml b/aggr/admin/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..b2a926b
--- /dev/null
+++ b/aggr/admin/src/main/resources/bootstrap.yml
@@ -0,0 +1,3 @@
+spring:
+ application:
+ name: sw-backend-admin-aggr
diff --git a/aggr/pom.xml b/aggr/pom.xml
new file mode 100644
index 0000000..1ec35e6
--- /dev/null
+++ b/aggr/pom.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>com.supwisdom.institute</groupId>
+ <artifactId>sw-backend-parent</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+
+ <groupId>com.supwisdom.institute</groupId>
+ <artifactId>sw-backend-aggr-parent</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <name>Supwisdom Backend Framework Aggregator API</name>
+ <description>Supwisdom Backend Framework Aggregator API project</description>
+
+ <modules>
+ <module>admin</module>
+ </modules>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/bff/admin/Dockerfile b/bff/admin/Dockerfile
index 4810f6b..372661c 100644
--- a/bff/admin/Dockerfile
+++ b/bff/admin/Dockerfile
@@ -17,5 +17,5 @@
COPY --chown=java-app:java-app target/${JAR_FILE} /home/java-app/lib/app.jar
-COPY --chown=java-app:java-app target/doc /home/java-app/doc
-COPY --chown=java-app:java-app target/api-docs /home/java-app/api-docs
+# COPY --chown=java-app:java-app target/doc /home/java-app/doc
+# COPY --chown=java-app:java-app target/api-docs /home/java-app/api-docs
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/Application.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/Application.java
index bde129e..77beb84 100644
--- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/Application.java
+++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/Application.java
@@ -2,8 +2,6 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.openfeign.EnableFeignClients;
-//import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
@@ -24,7 +22,6 @@
import static org.springframework.web.cors.CorsConfiguration.ALL;
@SpringBootApplication
-@EnableFeignClients
@EnableSimpleUserTransmit
@EnableCustomExceptionHandler
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/controller/system/AdminSystemController.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/controller/system/AdminSystemController.java
deleted file mode 100644
index 84d0f3a..0000000
--- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/controller/system/AdminSystemController.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.supwisdom.institute.backend.admin.bff.apis.controller.system;
-
-import org.springframework.util.MimeTypeUtils;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-
-@RestController
-@RequestMapping(value = "/api/bff/v1/admin/system")
-public class AdminSystemController {
-
- @RequestMapping(method = RequestMethod.GET, produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
- public String hello() {
- return "hello";
- }
-
-}
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/configuration/GatewayFilterConfig.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/configuration/GatewayFilterConfig.java
index f475158..5084419 100644
--- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/configuration/GatewayFilterConfig.java
+++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/configuration/GatewayFilterConfig.java
@@ -5,7 +5,8 @@
import com.supwisdom.institute.backend.admin.bff.gateway.filter.factory.SimpleUserTransmitGatewayFilterFactory;
-@Configuration
+@Deprecated
+//@Configuration
public class GatewayFilterConfig {
@Bean
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/gateway/filter/factory/SimpleUserTransmitGatewayFilterFactory.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/gateway/filter/factory/SimpleUserTransmitGatewayFilterFactory.java
index 6d0d981..68b6ad3 100644
--- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/gateway/filter/factory/SimpleUserTransmitGatewayFilterFactory.java
+++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/gateway/filter/factory/SimpleUserTransmitGatewayFilterFactory.java
@@ -18,6 +18,7 @@
import com.supwisdom.institute.backend.common.core.transmit.user.User;
import com.supwisdom.institute.backend.common.core.transmit.user.UserContext;
+@Deprecated
@Slf4j
public class SimpleUserTransmitGatewayFilterFactory extends AbstractGatewayFilterFactory<SimpleUserTransmitGatewayFilterFactory.Config> {
diff --git a/bff/admin/src/main/resources/application-docker.yml b/bff/admin/src/main/resources/application-docker.yml
index cc5555e..394e329 100644
--- a/bff/admin/src/main/resources/application-docker.yml
+++ b/bff/admin/src/main/resources/application-docker.yml
@@ -64,18 +64,3 @@
#CAS服务地址
cas.server.host.url: ${CAS_SERVER_HOST_URL:https://cas-server/cas}
-
-
-##
-# server url for feign
-#
-sw-backend-api-admin:
- server:
- url: ${CASSERVER_SA_API_SERVER_URL:https://sw-backend/sa-api}
- client-auth:
- enabled: ${CASSERVER_SA_API_CLIENT_AUTH_ENABLED:true}
- key-password: ${CASSERVER_SA_API_CLIENT_AUTH_KEY_PASSWORD:}
- key-store: ${CASSERVER_SA_API_CLIENT_AUTH_KEYSTORE_FILE:file:/certs/common/common.keystore}
- key-store-password: ${CASSERVER_SA_API_CLIENT_AUTH_KEYSTORE_PASSWORD:}
- trust-store: ${CASSERVER_SA_API_CLIENT_AUTH_TRUSTSTORE_FILE:file:/certs/common/common.truststore}
- trust-store-password: ${CASSERVER_SA_API_CLIENT_AUTH_TRUSTSTORE_PASSWORD:}
diff --git a/bff/admin/src/main/resources/application.yml b/bff/admin/src/main/resources/application.yml
index a77dc9a..77789ac 100644
--- a/bff/admin/src/main/resources/application.yml
+++ b/bff/admin/src/main/resources/application.yml
@@ -25,6 +25,12 @@
metrics:
enabled: true
routes:
+ - id: aggr-api
+ uri: http://localhost:8082
+ predicates:
+ - Path=/api/aggr/**
+ filters:
+ - RewritePath=/api/aggr/(?<suffix>.*), /$\{suffix}
- id: base-api
uri: http://localhost:8081
predicates:
@@ -106,10 +112,3 @@
#CAS服务地址
cas.server.host.url: https://cas.supwisdom.com/cas
-
-
-##
-# server url for feign
-#
-sw-backend-system-api.uri: http://localhost:8081
-sw-backend-biz-api.uri: http://localhost:8081
diff --git a/bff/pom.xml b/bff/pom.xml
index 8685014..37e624e 100644
--- a/bff/pom.xml
+++ b/bff/pom.xml
@@ -10,12 +10,12 @@
</parent>
<groupId>com.supwisdom.institute</groupId>
- <artifactId>sw-backend-bff-aggregator</artifactId>
+ <artifactId>sw-backend-bff-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
- <name>Supwisdom Backend Framework Backend for Frontend Aggregator</name>
- <description>Supwisdom Backend Framework Backend for Frontend Aggregator project</description>
+ <name>Supwisdom Backend Framework Backend for Frontend</name>
+ <description>Supwisdom Backend Framework Backend for Frontend project</description>
<modules>
<module>admin</module>
diff --git a/pom.xml b/pom.xml
index d101757..babdfb8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,6 +24,7 @@
<module>biz</module>
<module>sa</module>
+ <module>aggr</module>
<module>bff</module>
</modules>
diff --git a/sa/admin/Dockerfile b/sa/admin/Dockerfile
index 4dc87c6..b91c9f4 100644
--- a/sa/admin/Dockerfile
+++ b/sa/admin/Dockerfile
@@ -17,5 +17,5 @@
COPY --chown=java-app:java-app target/${JAR_FILE} /home/java-app/lib/app.jar
-COPY --chown=java-app:java-app target/doc /home/java-app/doc
-COPY --chown=java-app:java-app target/api-docs /home/java-app/api-docs
+# COPY --chown=java-app:java-app target/doc /home/java-app/doc
+# COPY --chown=java-app:java-app target/api-docs /home/java-app/api-docs
diff --git a/sa/admin/src/main/resources/application.yml b/sa/admin/src/main/resources/application.yml
index 571cbd7..0ffd54f 100644
--- a/sa/admin/src/main/resources/application.yml
+++ b/sa/admin/src/main/resources/application.yml
@@ -15,6 +15,9 @@
# org.springframework.cloud.openfeign: INFO
+swagger2.apis.basePackage: com.supwisdom.institute
+
+
spring:
jackson:
time-zone: Asia/Shanghai
@@ -40,9 +43,6 @@
##
# infras.online-doc
#
-infras.online-doc.enabled: false
+infras.online-doc.enabled: true
infras.online-doc.md-docs.staitc.path: /Users/loie/c/work/git/institute/sw-backend/doc/
infras.online-doc.api-docs.staitc.path: /Users/loie/c/work/git/institute/sw-backend/api-docs/
-
-
-swagger2.apis.basePackage: com.supwisdom.institute
diff --git a/sa/pom.xml b/sa/pom.xml
index e4c2665..6aafbda 100644
--- a/sa/pom.xml
+++ b/sa/pom.xml
@@ -10,12 +10,12 @@
</parent>
<groupId>com.supwisdom.institute</groupId>
- <artifactId>sw-backend-sa-aggregator</artifactId>
+ <artifactId>sw-backend-sa-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
- <name>Supwisdom Backend Framework Super Admin Aggregator</name>
- <description>Supwisdom Backend Framework Super Admin Aggregator project</description>
+ <name>Supwisdom Backend Framework Super Admin</name>
+ <description>Supwisdom Backend Framework Super Admin project</description>
<modules>
<module>admin</module>