配置修改,同步修护线上不能启动的问题

dev
huwei 2026-07-03 10:30:31 +08:00
parent 2dfd012aa1
commit 84aa2177ad
65 changed files with 392 additions and 718 deletions

6
META-INF/MANIFEST.MF Normal file
View File

@ -0,0 +1,6 @@
Manifest-Version: 1.0
Implementation-Title: jjb-saas-gateway-starter
Implementation-Version: 2.2.0-SNAPSHOT
Build-Jdk-Spec: 1.8
Created-By: Maven Jar Plugin 3.2.0

View File

@ -0,0 +1,3 @@
artifactId=jjb-saas-gateway-starter
groupId=com.jjb.saas
version=2.2.0-SNAPSHOT

View File

@ -0,0 +1,45 @@
<?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">
<parent>
<artifactId>jjb-saas-gateway</artifactId>
<groupId>com.jjb.saas</groupId>
<version>2.2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>jjb-saas-gateway-starter</artifactId>
<version>2.2.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.19</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<dependency>
<groupId>com.jjb.saas</groupId>
<artifactId>jjb-saas-framework-secure</artifactId>
</dependency>
<dependency>
<groupId>com.jjb.saas</groupId>
<artifactId>jjb-saas-framework-cola-dto</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,49 @@
{
"groups": [
{
"name": "sdk.client.gateway",
"type": "com.jjb.saas.gateway.starter.properties.GatewayStarterProperties",
"sourceType": "com.jjb.saas.gateway.starter.properties.GatewayStarterProperties"
},
{
"name": "sdk.client.gateway.application",
"type": "com.jjb.saas.gateway.starter.properties.GatewayStarterProperties$Application",
"sourceType": "com.jjb.saas.gateway.starter.properties.GatewayStarterProperties"
}
],
"properties": [
{
"name": "sdk.client.gateway.application.gateway",
"type": "java.lang.String",
"sourceType": "com.jjb.saas.gateway.starter.properties.GatewayStarterProperties$Application"
},
{
"name": "sdk.client.gateway.application.name",
"type": "java.lang.String",
"sourceType": "com.jjb.saas.gateway.starter.properties.GatewayStarterProperties$Application"
},
{
"name": "sdk.client.gateway.application.version",
"type": "java.lang.String",
"sourceType": "com.jjb.saas.gateway.starter.properties.GatewayStarterProperties$Application"
},
{
"name": "sdk.client.gateway.ignore-urls",
"type": "java.util.List<java.lang.String>",
"description": "无需认证的url",
"sourceType": "com.jjb.saas.gateway.starter.properties.GatewayStarterProperties"
},
{
"name": "sdk.client.gateway.route",
"type": "java.util.List<com.jjb.saas.gateway.starter.properties.GatewayStarterProperties$Route>",
"description": "网关服务",
"sourceType": "com.jjb.saas.gateway.starter.properties.GatewayStarterProperties"
},
{
"name": "sdk.client.gateway.url",
"type": "java.lang.String",
"sourceType": "com.jjb.saas.gateway.starter.properties.GatewayStarterProperties"
}
],
"hints": []
}

View File

@ -0,0 +1,2 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration = \
com.jjb.saas.gateway.starter.GatewayStarterConfiguration

22
pom.xml
View File

@ -14,7 +14,7 @@
<packaging>pom</packaging>
<name>safety-eval-service</name>
<description>安全评价业务服务 - 基于GBS底座DDD分层架构</description>
<description>Safety eval service</description>
<modules>
<module>safety-eval-start</module>
@ -47,9 +47,9 @@
<!-- Lombok -->
<lombok.version>1.18.30</lombok.version>
<jjb-saas-system-client.version>1.7.1.1-SNAPSHOT</jjb-saas-system-client.version>
<jjb-saas-system-client.version>1.7.0-SNAPSHOT</jjb-saas-system-client.version>
<!-- X File Storage多OSS统一文件存储 -->
<!-- X File Storage闂佹寧绋戦悧鍡浰囩缓濂缂傚倷鑳堕崰宥囩博閹绢喖妫橀柛銉檮椤愪粙鎮楀☉娅亪宕戝澶嬫櫖?-->
<x-file-storage.version>2.2.0</x-file-storage.version>
<!-- Aliyun OSS SDK -->
@ -60,7 +60,13 @@
<dependency>
<groupId>com.jjb.saas</groupId>
<artifactId>jjb-saas-system-client</artifactId>
<version>1.7.1.1-SNAPSHOT</version>
<version>1.7.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.zcloud.gbscommon</groupId>
<artifactId>zcloud_gbscommon</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
@ -75,7 +81,7 @@
<scope>import</scope>
</dependency>
<!-- 本项目内部模块 -->
<!-- 闂佸搫鐗滈崜鐔煎Υ瀹ュ鍎庢い鏃傚帶閺佸爼姊洪鍝勫閼垛晠鏌?-->
<dependency>
<groupId>org.qinan</groupId>
<artifactId>safety-eval-start</artifactId>
@ -119,7 +125,7 @@
<version>${dubbo.version}</version>
</dependency>
<!-- Jackson 统一版本 2.13.5显式声明覆盖父POM老版本 2.11.1,解决 NoSuchFieldError: ALWAYS -->
<!-- Jackson 缂傚倷鑳堕崰宥囩博閹绢喗鍋嬮柛顐ゅ枑閹?2.13.5闂佹寧绋戦悧濠偽熸径濠庡殨闊洦鎼槐锝夋煛閸曨偅鍞夋い鈺婂亰閹嫰寮介銏㈠幀POM闂佸ジ顣﹂懗鑸垫櫠濡ゅ懎瀚?2.11.1闂佹寧绋戦惌浣筋暰闂?NoSuchFieldError: ALWAYS闂?-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
@ -187,7 +193,7 @@
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!-- 强制对齐 mybatis-plus-annotation 版本,避免 mybatis-plus:3.5.5 传递引入 3.5.3.1 导致 NoSuchFieldError: ALWAYS -->
<!-- 閻庢鍠栭幖顐﹀春濡ゅ啠鍋撻棃娑氱Ш缂?mybatis-plus-annotation 闂佺粯顨呴悧濠傦耿娴煎瓨鏅€光偓閸曨亞绱氶梺?mybatis-plus:3.5.5 婵炵鍋愭繛鈧柍褜鍓氱敮鎺旀閳哄懎绀?3.5.3.1 闁诲簼绲绘竟鍫ュ吹?NoSuchFieldError: ALWAYS -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-annotation</artifactId>
@ -208,7 +214,7 @@
<version>${lombok.version}</version>
</dependency>
<!-- X File Storage多OSS统一文件存储 -->
<!-- X File Storage闂佹寧绋戦悧鍡浰囩缓濂缂傚倷鑳堕崰宥囩博閹绢喖妫橀柛銉檮椤愪粙鎮楀☉娅亪宕戝澶嬫櫖?-->
<dependency>
<groupId>org.dromara.x-file-storage</groupId>
<artifactId>x-file-storage-spring</artifactId>

View File

@ -13,16 +13,24 @@
<artifactId>safety-eval-adapter</artifactId>
<packaging>jar</packaging>
<name>safety-eval-adapter</name>
<description>适配层 - 负责对前端展示的路由和适配相当于MVC的Controller</description>
<description>Safety eval adapter module</description>
<dependencies>
<!-- Client层 -->
<dependency>
<groupId>com.jjb.saas</groupId>
<artifactId>jjb-saas-framework-adapter</artifactId>
</dependency>
<dependency>
<groupId>com.jjb.saas</groupId>
<artifactId>jjb-saas-framework-job</artifactId>
</dependency>
<!-- Client閻?-->
<dependency>
<groupId>org.qinan</groupId>
<artifactId>safety-eval-client</artifactId>
</dependency>
<!-- App层 -->
<!-- App閻?-->
<dependency>
<groupId>org.qinan</groupId>
<artifactId>safety-eval-app</artifactId>
@ -44,7 +52,7 @@
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!-- DubboAdapter层可能引用其他服务 facade -->
<!-- Dubbo闁挎稑婀廳apter閻忕偛鍊歌ぐ鏌ユ嚄閽樺绌块柣顫妼閸欑偓绂掗弽銊︾疀闁?facade闁?-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>

View File

@ -1,19 +1,16 @@
package org.qinan.safetyeval.adapter.config;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver;
import java.util.Arrays;
import java.util.Locale;
@Configuration
public class I18nConfig {
@Bean
@ConditionalOnMissingBean(MessageSource.class)
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource source = new ReloadableResourceBundleMessageSource();
source.setBasename("classpath:i18n/messages");
@ -21,12 +18,4 @@ public class I18nConfig {
source.setUseCodeAsDefaultMessage(true);
return source;
}
@Bean
public LocaleResolver localeResolver() {
AcceptHeaderLocaleResolver resolver = new AcceptHeaderLocaleResolver();
resolver.setDefaultLocale(Locale.SIMPLIFIED_CHINESE);
resolver.setSupportedLocales(Arrays.asList(Locale.SIMPLIFIED_CHINESE, Locale.ENGLISH));
return resolver;
}
}

View File

@ -27,7 +27,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "用户管理")
@RestController
@RequestMapping("/account")
@RequestMapping("/safetyEval/account")
public class AccountController {
@Resource

View File

@ -26,7 +26,7 @@ import java.util.List;
*/
@Api(tags = "文件存储管理")
@RestController
@RequestMapping("/file-storage")
@RequestMapping("/safetyEval/file-storage")
public class FileStorageController {
@Resource

View File

@ -23,7 +23,7 @@ import java.util.List;
*/
@Api(tags = "文件上传")
@RestController
@RequestMapping("/file")
@RequestMapping("/safetyEval/file")
public class FileUploadController {
@Resource

View File

@ -23,7 +23,7 @@ import java.util.List;
*/
@Api(tags = "文件上传")
@RestController
@RequestMapping("/test/file")
@RequestMapping("/safetyEval/test/file")
public class FileUploadPublicController {
@Resource

View File

@ -25,7 +25,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "部门管理")
@RestController
@RequestMapping("/org-department")
@RequestMapping("/safetyEval/org-department")
public class OrgDepartmentController {

View File

@ -22,7 +22,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "装备信息管理")
@RestController
@RequestMapping("/org-equipment")
@RequestMapping("/safetyEval/org-equipment")
public class OrgEquipmentController {
@Resource

View File

@ -23,7 +23,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "机构信息管理")
@RestController
@RequestMapping("/org-info")
@RequestMapping("/safetyEval/org-info")
public class OrgInfoController {
@Resource

View File

@ -22,7 +22,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "人员证书管理")
@RestController
@RequestMapping("/org-personnel-cert")
@RequestMapping("/safetyEval/org-personnel-cert")
public class OrgPersonnelCertController {
@Resource

View File

@ -22,7 +22,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "人员变更记录管理")
@RestController
@RequestMapping("/org-personnel-change")
@RequestMapping("/safetyEval/org-personnel-change")
public class OrgPersonnelChangeController {
@Resource

View File

@ -22,7 +22,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "人员信息管理")
@RestController
@RequestMapping("/org-personnel")
@RequestMapping("/safetyEval/org-personnel")
public class OrgPersonnelController {
@Resource

View File

@ -22,7 +22,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "岗位管理")
@RestController
@RequestMapping("/org-position")
@RequestMapping("/safetyEval/org-position")
public class OrgPositionController {
@Resource

View File

@ -24,7 +24,7 @@ import java.util.Map;
*/
@Api(tags = "机构资质证书管理")
@RestController
@RequestMapping("/org-qualification")
@RequestMapping("/safetyEval/org-qualification")
public class OrgQualificationController {
@Resource

View File

@ -22,7 +22,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "人员离职申请管理")
@RestController
@RequestMapping("/org-resign-apply")
@RequestMapping("/safetyEval/org-resign-apply")
public class OrgResignApplyController {
@Resource

View File

@ -20,7 +20,7 @@ import java.util.List;
*/
@Api(tags = "备案变更管理")
@RestController
@RequestMapping("/qual-filing-change")
@RequestMapping("/safetyEval/qual-filing-change")
public class QualFilingChangeController {
@Resource

View File

@ -22,7 +22,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "备案变更明细管理")
@RestController
@RequestMapping("/qual-filing-change-detail")
@RequestMapping("/safetyEval/qual-filing-change-detail")
public class QualFilingChangeDetailController {
@Resource

View File

@ -25,7 +25,7 @@ import java.io.Serializable;
@RestController
@AllArgsConstructor
@Api(tags = "法定代人承诺书-变更")
@RequestMapping("/qual-filing-commitment-change")
@RequestMapping("/safetyEval/qual-filing-commitment-change")
public class QualFilingCommitmentChangeController implements Serializable {
private static final long serialVersionUID = 1L;

View File

@ -22,7 +22,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "法定代表人承诺书管理")
@RestController
@RequestMapping("/qual-filing-commitment")
@RequestMapping("/safetyEval/qual-filing-commitment")
public class QualFilingCommitmentController {
@Resource

View File

@ -22,7 +22,7 @@ import java.util.List;
*/
@Api(tags = "资质备案申请管理")
@RestController
@RequestMapping("/qual-filing")
@RequestMapping("/safetyEval/qual-filing")
public class QualFilingController {
@Resource

View File

@ -25,7 +25,7 @@ import java.io.Serializable;
@RestController
@AllArgsConstructor
@Api(tags = "备案申请装备-变更")
@RequestMapping("/qual-filing-equipment-change")
@RequestMapping("/safetyEval/qual-filing-equipment-change")
public class QualFilingEquipmentChangeController implements Serializable {
private static final long serialVersionUID = 1L;

View File

@ -22,7 +22,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "备案申请装备管理")
@RestController
@RequestMapping("/qual-filing-equipment")
@RequestMapping("/safetyEval/qual-filing-equipment")
public class QualFilingEquipmentController {
@Resource

View File

@ -27,7 +27,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "审核专家管理")
@RestController
@RequestMapping("/qual-filing-expert")
@RequestMapping("/safetyEval/qual-filing-expert")
public class QualFilingExpertController {
@Resource

View File

@ -25,7 +25,7 @@ import java.io.Serializable;
@RestController
@AllArgsConstructor
@Api(tags = "备案申请材料-变更")
@RequestMapping("/qual-filing-material-change")
@RequestMapping("/safetyEval/qual-filing-material-change")
public class QualFilingMaterialChangeController implements Serializable {
private static final long serialVersionUID = 1L;

View File

@ -22,7 +22,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "备案申请材料管理")
@RestController
@RequestMapping("/qual-filing-material")
@RequestMapping("/safetyEval/qual-filing-material")
public class QualFilingMaterialController {
@Resource

View File

@ -25,7 +25,7 @@ import java.io.Serializable;
@RestController
@AllArgsConstructor
@Api(tags = "备案申请人员证书")
@RequestMapping("/qual-filing-personnel-cert-change")
@RequestMapping("/safetyEval/qual-filing-personnel-cert-change")
public class QualFilingPersonnelCertChangeController implements Serializable {
private static final long serialVersionUID = 1L;

View File

@ -22,7 +22,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "备案申请人员证书管理")
@RestController
@RequestMapping("/qual-filing-personnel-cert")
@RequestMapping("/safetyEval/qual-filing-personnel-cert")
public class QualFilingPersonnelCertController {
@Resource

View File

@ -25,7 +25,7 @@ import java.io.Serializable;
@RestController
@AllArgsConstructor
@Api(tags = "备案申请人员-变更")
@RequestMapping("/qual-filing-personnel-change")
@RequestMapping("/safetyEval/qual-filing-personnel-change")
public class QualFilingPersonnelChangeController implements Serializable {
private static final long serialVersionUID = 1L;

View File

@ -22,7 +22,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "备案申请人员管理")
@RestController
@RequestMapping("/qual-filing-personnel")
@RequestMapping("/safetyEval/qual-filing-personnel")
public class QualFilingPersonnelController {
@Resource

View File

@ -27,7 +27,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "资质审核记录管理")
@RestController
@RequestMapping("/qual-filing-review")
@RequestMapping("/safetyEval/qual-filing-review")
public class QualFilingReviewController {
@Resource

View File

@ -13,22 +13,22 @@
<artifactId>safety-eval-app</artifactId>
<packaging>jar</packaging>
<name>safety-eval-app</name>
<description>应用层 - 获取输入、组装上下文、参数校验、调用领域层做业务处理</description>
<description>Safety eval app module</description>
<dependencies>
<!-- Client-->
<!-- Client灞?-->
<dependency>
<groupId>org.qinan</groupId>
<artifactId>safety-eval-client</artifactId>
</dependency>
<!-- Domain-->
<!-- Domain灞?-->
<dependency>
<groupId>org.qinan</groupId>
<artifactId>safety-eval-domain</artifactId>
</dependency>
<!-- Infrastructure层(应用层可直接调用基础设施层) -->
<!-- Infrastructure灞傦紙搴旂敤灞傚彲鐩存帴璋冪敤鍩虹璁炬柦灞傦級 -->
<dependency>
<groupId>org.qinan</groupId>
<artifactId>safety-eval-infrastructure</artifactId>

View File

@ -13,10 +13,30 @@
<artifactId>safety-eval-client</artifactId>
<packaging>jar</packaging>
<name>safety-eval-client</name>
<description>Client层 - 对外暴露的接口定义、DTO、CO对象供其他服务Dubbo调用</description>
<description>Safety eval client module</description>
<dependencies>
<!-- Domain层 -->
<dependency>
<groupId>com.jjb.saas</groupId>
<artifactId>jjb-saas-application-client</artifactId>
</dependency>
<dependency>
<groupId>com.jjb.saas</groupId>
<artifactId>jjb-saas-system-client</artifactId>
</dependency>
<dependency>
<groupId>com.jjb.saas</groupId>
<artifactId>jjb-saas-framework-enums</artifactId>
</dependency>
<dependency>
<groupId>com.jjb.saas</groupId>
<artifactId>jjb-saas-open-platform-sdk</artifactId>
</dependency>
<dependency>
<groupId>com.jjb.saas</groupId>
<artifactId>jjb-saas-framework-client</artifactId>
</dependency>
<!-- Domain閻?-->
<dependency>
<groupId>org.qinan</groupId>
<artifactId>safety-eval-domain</artifactId>

View File

@ -13,11 +13,11 @@
<artifactId>safety-eval-domain</artifactId>
<packaging>jar</packaging>
<name>safety-eval-domain</name>
<description>领域层 - 核心业务逻辑,不依赖任何其他层次</description>
<description>Safety eval domain module</description>
<dependencies>
<!-- Spring Context@Service 注解编译需要,版本由 Spring Boot BOM 管理) -->
<!-- Spring Context闁挎稑婀孲ervice 婵炲鍔忚缂傚倹鐗為惁褔妫侀埀顒傛啺娓氬﹦绀夐柣妤€鐗婂﹢浼存偨?Spring Boot BOM 缂佺媴绱曢幃濠囨晬?-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
@ -27,6 +27,10 @@
<groupId>com.jjb.saas</groupId>
<artifactId>jjb-saas-framework-domain</artifactId>
</dependency>
<dependency>
<groupId>com.jjb.saas</groupId>
<artifactId>jjb-saas-base-starter</artifactId>
</dependency>
<!-- Lombok -->
<dependency>

View File

@ -13,16 +13,16 @@
<artifactId>safety-eval-infrastructure</artifactId>
<packaging>jar</packaging>
<name>safety-eval-infrastructure</name>
<description>基础设施层 - 数据库CRUD、搜索引擎、分布式服务RPC等领域防腐重任</description>
<description>Safety eval infrastructure module</description>
<dependencies>
<!-- Domain实现domain层定义的gateway接口 -->
<!-- Domain灞傦紙瀹炵幇domain灞傚畾涔夌殑gateway鎺ュ彛锛?-->
<dependency>
<groupId>org.qinan</groupId>
<artifactId>safety-eval-domain</artifactId>
</dependency>
<!-- MyBatis Plus(排除 Jackson 1.x 老依赖,避免类冲突) -->
<!-- MyBatis Plus锛堟帓闄?Jackson 1.x 鑰佷緷璧栵紝閬垮厤绫诲啿绐侊級 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
@ -34,14 +34,14 @@
</exclusions>
</dependency>
<!-- MySQL JDBC Driver运行时必需Spring Boot 2.7.x BOM管理版本 -->
<!-- MySQL JDBC Driver锛堣繍琛屾椂蹇呴渶锛孲pring Boot 2.7.x BOM绠悊鐗堟湰锛?-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Dubbo调用其他GBS服务 facade -->
<!-- Dubbo锛堣皟鐢ㄥ叾浠朑BS鏈嶅姟 facade锛?-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
@ -85,7 +85,7 @@
<version>1.0.0-SNAPSHOT</version>
</dependency>
<!-- X File Storage多OSS统一文件存储 -->
<!-- X File Storage锛堝OSS缁熶竴鏂囦欢瀛樺偍锛?-->
<dependency>
<groupId>org.dromara.x-file-storage</groupId>
<artifactId>x-file-storage-spring</artifactId>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<?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">
@ -13,14 +13,26 @@
<artifactId>safety-eval-start</artifactId>
<packaging>jar</packaging>
<name>safety-eval-start</name>
<description>启动模块 - Spring Boot启动类</description>
<description>Safety eval start module</description>
<dependencies>
<!-- Adapter-->
<!-- Adapter閻?-->
<dependency>
<groupId>org.qinan</groupId>
<artifactId>safety-eval-adapter</artifactId>
</dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-mysql</artifactId>
</dependency>
<dependency>
<groupId>com.jjb.saas</groupId>
<artifactId>jjb-saas-gateway-starter</artifactId>
</dependency>
<dependency>
<groupId>com.jjb.saas</groupId>
<artifactId>jjb-saas-framework-web</artifactId>
</dependency>
<!-- Spring Boot Starter -->
<dependency>
@ -39,14 +51,6 @@
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
</dependency>
<!-- Swagger 3 UI -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<!-- Nacos Discovery -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
@ -61,32 +65,32 @@
<version>2021.0.5.0</version>
</dependency>
<!-- Spring Cloud Bootstrap(加载 bootstrap.yml -->
<!-- Spring Cloud Bootstrap闁挎稑鐗嗘慨鐐存姜?bootstrap.yml闁?-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<!-- Spring Cloud LoadBalancerFeign 服务名调用需要) -->
<!-- Spring Cloud LoadBalancer闁挎稑婀梕ign 闁哄牆绉存慨鐔煎触瀹ュ牏娈堕柣顫姂濞撳墎鎲版笟濠勭 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
<!-- MySQL JDBC Driver(运行时必需) -->
<!-- MySQL JDBC Driver闁挎稑鐗愮换宥囨偘鐏炵偓顦ч煫鍥ф嚇濞撳爼鏁?-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.33</version>
<scope>runtime</scope>
</dependency>
<!-- ShardingSphere(适配线上 spring.shardingsphere.* 数据源配置) -->
<!-- ShardingSphere闁挎稑鐗撻埀顒€鍊块崢銈囩棯婢跺摜鐟?spring.shardingsphere.* 闁轰胶澧楀畵浣糕攦閹版澘甯崇紓鍐惧櫙缁?-->
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>4.1.1</version>
</dependency>
<!-- Druid(线上 shardingsphere datasource type 使用 DruidDataSource -->
<!-- Druid闁挎稑鐗忛崵搴㈢▔?shardingsphere datasource type 濞达綀娉曢弫?DruidDataSource闁?-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>

View File

@ -1,66 +1,25 @@
package org.qinan.safetyeval.start;
import com.jjb.saas.base.starter.bootstart.JJBSpringbootApplication;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.mybatis.spring.annotation.MapperScan;
import org.mybatis.spring.annotation.MapperScans;
import org.springframework.beans.factory.config.BeanPostProcessor;
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.util.ReflectionUtils;
import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping;
import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider;
import java.lang.reflect.Field;
import java.util.List;
/**
*
* <p>
* GBSGBS
* </p>
*
* @author safety-eval
* Safety eval service bootstrap.
*/
@SpringBootApplication(scanBasePackages = {"org.qinan.safetyeval", "com.jjb.saas"})
@EnableDubbo
@EnableFeignClients(basePackages = {"org.qinan.safetyeval", "com.jjb.saas"})
@JJBSpringbootApplication(
scanBasePackages = {"org.qinan.safetyeval", "com.jjb"},
mapperPackages = {
"org.qinan.safetyeval.infrastructure.mapper",
"org.qinan.safetyeval.infrastructure.persistence.mapper"
}
)
@Slf4j
//@MapperScan(value = {"org.qinan.safetyeval", "com.jjb.saas"})
public class SafetyEvalApplication {
public static void main(String[] args) {
long startTimeMillis = System.currentTimeMillis();
SpringApplication.run(SafetyEvalApplication.class, args);
log.info("SafetyEvalApplication-启动成功-耗时:{} min", (((float)(System.currentTimeMillis() - startTimeMillis))/60000L));
}
@Bean
public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() {
return new BeanPostProcessor() {
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) {
if (bean instanceof WebMvcRequestHandlerProvider) {
removePathPatternHandlerMappings(bean);
}
return bean;
}
};
}
@SuppressWarnings("unchecked")
private static void removePathPatternHandlerMappings(Object bean) {
Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings");
if (field == null) {
return;
}
field.setAccessible(true);
List<RequestMappingInfoHandlerMapping> mappings =
(List<RequestMappingInfoHandlerMapping>) ReflectionUtils.getField(field, bean);
if (mappings != null) {
mappings.removeIf(mapping -> mapping.getPatternParser() != null);
}
log.info("SafetyEvalApplication started in {} min", (((float) (System.currentTimeMillis() - startTimeMillis)) / 60000L));
}
}

View File

@ -0,0 +1,37 @@
package org.qinan.safetyeval.start.config;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
@Configuration
@Profile("local")
public class LocalJobAutoRegisterDisableConfig {
private static final String JOB_AUTO_REGISTER_CLASS = "com.jjb.saas.framework.job.core.JobAutoRegister";
@Bean
public static BeanDefinitionRegistryPostProcessor localJobAutoRegisterDisablePostProcessor() {
return new BeanDefinitionRegistryPostProcessor() {
@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
String[] names = registry.getBeanDefinitionNames();
for (String name : names) {
String beanClassName = registry.getBeanDefinition(name).getBeanClassName();
if (JOB_AUTO_REGISTER_CLASS.equals(beanClassName)) {
registry.removeBeanDefinition(name);
}
}
}
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
// No-op.
}
};
}
}

View File

@ -0,0 +1,37 @@
package org.qinan.safetyeval.start.config;
import com.jjb.saas.framework.auth.properties.ServerProperties;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ServerPropertiesPrimaryConfig {
@Bean
public static BeanFactoryPostProcessor serverPropertiesPrimaryPostProcessor() {
return new BeanFactoryPostProcessor() {
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
String[] names = beanFactory.getBeanNamesForType(ServerProperties.class, true, false);
if (names.length <= 1) {
return;
}
String primaryName = names[0];
for (String name : names) {
if (name.startsWith("sdk.server-")) {
primaryName = name;
break;
}
}
for (String name : names) {
BeanDefinition definition = beanFactory.getBeanDefinition(name);
definition.setPrimary(name.equals(primaryName));
}
}
};
}
}

View File

@ -0,0 +1,42 @@
package org.qinan.safetyeval.start.config;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.ReflectionUtils;
import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping;
import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider;
import java.lang.reflect.Field;
import java.util.List;
@Configuration
public class SpringfoxWebMvcCompatConfig {
@Bean
public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() {
return new BeanPostProcessor() {
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) {
if (bean instanceof WebMvcRequestHandlerProvider) {
removePathPatternHandlerMappings(bean);
}
return bean;
}
};
}
@SuppressWarnings("unchecked")
private static void removePathPatternHandlerMappings(Object bean) {
Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings");
if (field == null) {
return;
}
field.setAccessible(true);
List<RequestMappingInfoHandlerMapping> mappings =
(List<RequestMappingInfoHandlerMapping>) ReflectionUtils.getField(field, bean);
if (mappings != null) {
mappings.removeIf(mapping -> mapping.getPatternParser() != null);
}
}
}

View File

@ -0,0 +1,33 @@
package org.qinan.safetyeval.start.config;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SwaggerControllerDeduplicateConfig {
private static final String SPRINGFOX_SWAGGER_CONTROLLER = "swagger2ControllerWebMvc";
private static final String JJB_SWAGGER_CONTROLLER = "swagger2ControllerWebMvc1";
@Bean
public static BeanDefinitionRegistryPostProcessor swaggerControllerDeduplicatePostProcessor() {
return new BeanDefinitionRegistryPostProcessor() {
@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
if (registry.containsBeanDefinition(SPRINGFOX_SWAGGER_CONTROLLER)
&& registry.containsBeanDefinition(JJB_SWAGGER_CONTROLLER)) {
registry.removeBeanDefinition(SPRINGFOX_SWAGGER_CONTROLLER);
}
}
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
// No-op.
}
};
}
}

View File

@ -1,12 +1,14 @@
package org.qinan.safetyeval.start.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
@EnableWebSecurity
@Order(99)
@SuppressWarnings("deprecation")
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

View File

@ -1,4 +1,4 @@
nacos:
nacos:
url: prod-nacos:8848
namespace: jjb-dragon
application:
@ -6,9 +6,6 @@ application:
version:
gateway: safetyEval
cn-name: 重庆安全评价
server:
servlet:
context-path: /${application.gateway}
spring:
application:

View File

@ -1,13 +0,0 @@
management:
endpoints:
web:
exposure:
include: health,metrics
# base-path: /monitor
endpoint:
health:
show-details: always
shutdown:
enabled: true
env:
enabled: false

View File

@ -1,39 +0,0 @@
spring:
cache:
redis:
time-to-live: 1800s
# 二级缓存配置
# 注caffeine 不适用于数据量大,并且缓存命中率极低的业务场景,如用户维度的缓存。请慎重选择。
l2cache:
config:
# 是否存储空值默认true防止缓存穿透
allowNullValues: true
# 组合缓存配置
composite:
# 是否全部启用一级缓存默认false
l1AllOpen: false
# 一级缓存
caffeine:
# 是否自动刷新过期缓存 true 是 false 否
autoRefreshExpireCache: false
# 缓存刷新调度线程池的大小
refreshPoolSize: 2
# 缓存刷新的频率(秒)
refreshPeriod: 10
# 写入后过期时间(秒)
expireAfterWrite: 180
# 访问后过期时间(秒)
expireAfterAccess: 180
# 初始化大小
initialCapacity: 1
# 最大缓存对象个数,超过此数量时之前放入的缓存将失效
maximumSize: 3
# 二级缓存
redis:
# 全局过期时间,单位毫秒,默认不过期
defaultExpiration: 1800000
# 缓存更新时通知其他节点的topic名称 默认 cache:redis:caffeine:topic
topic: cache:redis:caffeine:topic

View File

@ -1,194 +0,0 @@
common:
dx:
url:
https:
url: https://gbs-gateway.qhdsafety.com
ota:
platform-attr-enum: SLAVE
server:
url: https://ota.cqjjb.cn
public-key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7jzwrM8q2DGkhQlN3rw80YZfdqwnSBw7/Ogz0ENGHOSuG8hQGgy/5v4zthV5tijdnhMf5Mrkle8syJLNyaNRqVEtOaJns3A8/kn8t9GDt7Fu62MaKZa7OPqKO6wobNMbvaYshAIiK8M+ljAbZC3Cjq3YsqzPh+dTJluKPtR/rOQIDAQAB
client:
plat-key: a9431176-f906-419e-af6c-a3898d96750f
private-key: MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJia4mwX87Ii3owQpavPQI/f+Tr9q1p95E5XYujawJKWG3fRj+xyhbXl0l/Zd/ZFEZqKXLrz8bUbWFixagQfm95IuvVJX0x1PkFKYDZKud+0zFP7Xw2NFyOLkjvFE8KWrLRPkNJkVH/kvGQjJwtVrsEoNPILl4EmhczsbBITA2dVAgMBAAECgYANY+XDM1TUSB/77UgEK9LP7Qiq5vA+p/Y884j/wpYMJrSxTkeRKTlXTRupAmV2y/ev9j0NwHLwf75ARgz14Kol88ytMiZGQIpSkxfpEzEe8aJkYrFqaFX/55P6uKNZaVvsH8AB6fk0Hl8xA59frNZZShdRvKd4IHC50MgH05wWkQJBAMpFjSFSQxwO1jkx61OcYURKRZM5UANEIo6QY+2J3dN66FOe3eIVFZT3eWaTXikdboTBCfBqZO83cKCWEMXledkCQQDBJAGSoMYAR5vLsGk7npb1HJ8WCwZyi6c8oN6xRbwKpzDxaSqqZckb6hJ6I5E1HTE7Ak4CPK3Q1SCCJ5RLAY/dAkEAto5RUuqY0SD+7X4FY1/3VZgm9To74cbD3aGp3sCYaX87YgU3Qw4+fUVh11dYG4mJrt0+6DJOSKzjxLvMBaAX+QJAEm5LMCDjhDdRKLjm8eeKZE2c6M+Yh+nHxcNcPPJ4pVObGg59IdGgxWcq6DjorHbisczggNolhB4ygfkg759wiQJBAJC3sXFjar9C5ydoCoy6AG1owANn0cRoFecBDQx3xadBE8kk39tIKp+OSWRf6xthyaDm+5DiF0JM8nD6d0nxIhU=
test-plat:
plat-id: 1846821090933841922
plat-appKey: 81eebce6c6084c928acfeb9a2c3d6dc2
mysql:
type: mysql
gateway:
network:
http:
#网关的外网访问地址 必须配置为HTTPS协议
#external: http://121.40.150.22:10062
external: https://gbs-gateway.qhdsafety.com
#网关的内网访问地址 固定配置为http://jjb-saas-gateway
intranet: http://jjb-saas-gateway
#http://jjb-saas-gateway
wx:
#webSocket外网地址
external: wss://gbs-gateway.qhdsafety.com
#webSocket内网地址
intranet: ws://192.168.67.192:80
swagger:
#是否打开swagger 测试及UAT配置为true,生产环境配置为false
enabled: true
base:
# base应用访问外网访问地址
host-url: https://gbs-gateway.qhdsafety.com
desk:
# desk工程的外网地址
host-url: https://gbs-gateway.qhdsafety.com/desk
login:
# login工程的外网访问地址
host-url: https://gbs-gateway.qhdsafety.com/login
# 阿里云
aliyun:
video:
callbackURL: /aliyun/callbackVideo/
userId: 1242180681728462
regionId: cn-shanghai
accessKeyId: LTAI5tDAMFkin5tavp4thfaG
accessKeySecret: XoBYTtIgeHOiz3udiP5gm0rcdRWp25
templateGroupId: 1a3c38cee4b8fa4be7459a17fe836559
twAppKey: czBapTtFBlkHCKSm
#accessKeyId: LTAI5tGQQibyiNbepTCjVuRB
#accessKeySecret: E0F6B6nxFiYjRhWGk4ZexifTGLcZNE
oss:
accessKeyId: LTAI5tP6UnjpDRBjsUaxbLz9
accessKeySecret: 9XCpOutOC1lTE7E4twbUOHGzaxoMRz
bucketName: cqqypx
endpoint: http://oss-cn-hangzhou.aliyuncs.com
bucket: https://${aliyun.oss.bucketName}.oss-cn-hangzhou.aliyuncs.com
apps:
basic-application: 976f689efcfd413981dfa1f2b814406d
apply-application: 586d4d3a2fbb4a669391335ae054479f
order-application: 15893f852a0d4eb3b2c968f0735cc9ed
cedu-application: 7c3cd4ae12534b7bbf0e1eddaa144341
train-application: d4cfbd62d9ec47c69697026be6430685
hour-application: 58e59ab7cfaa40df849e0480b88c4349
exam-application: 5b69745cadf84051beab2de3fb9fa6b2
evaluate-application: 93ec0094dd4e4be8afe8212e7c6b33e4
courseopenplatform-application: 60fa325b557c4113ad6510f62783a0a8
plan-approve-application: d1d0768f54cd4b2086c244a0dba0495e
industry-application: a1e1130e830347818455a6ff16ccf92a
scd-course-application: 6b1f3fed8e9140e984199e5ce9254374
qswj-customer-application: d3838b98d6f84ae48d3fe181074dcbd5
jjb-saas-official: 2bfa69cf673d487d89a1dd7348fa0bb4
cedu-customer-application: f1e16689eb914f009d0b461e818555b9
saas-customer-application: 2751e9bd060a4f659b7454dca4877c32
cert-application: 751d2135c48a4b18960c558b4143469b
jjb-saas-res: f18f760cc564441f8a90c6479152c115
declare-application: 7c6ab4793cb54d59a2319088110fd313
jjb-saas-exam-affairs: 2ea51819fc354088bf02d11effd1bd08
jjb-saas-punch-clock: c45d94add16a49e8bb66ba5e170b3439
jjb-apps-exam-manage: 2b00997376664a58b415391c02b7d9de
jjb-cedu-applet-v2: abcc08a98fba430dbd3f7dd08c6a98cd
review-application: 53a469ed0e19498fa8d43687d8ef2323
live-application: 5c75704416bc4a64a59729439116575a
jjb-apps-sign: 6b2f7ee0ed86423d8013268950b088d0
jjb-apps-customer-service: 9661da58847743c48bd1f7af39454ce5
signature-application: 0e65e899e0b04b7a82594de452850c6a
jjb-saas-course-open-platform: 16660510fe89413fbfac59e7b709f95f
jjb-apps-ocr: 18eb863aa7f64d08b980f9657b9c8c89
jjb-apps-archives: ecf369c676f24ea59aa671e4895d232d
jjb-apps-enterprisecenter: d51302107d144c4c8f45ba27c1e1170c
uris:
signature-application: http://business-signature-application
jjb-saas-archives: http://business-jjb-saas-archives
jjb-saas-base: http://jjb-saas-base
basic-application: http://business-jjb-apps-basic
apply-application: http://business-jjb-apps-apply
order-application: http://business-order-application
cedu-application: http://business-cedu-application
train-application: http://business-jjb-apps-train
hour-application: http://business-hour-application
exam-application: http://business-exam-application
evaluate-application: http://business-evaluate-application
courseopenplatform-application: http://courseopenplatform-application
plan-approve-application: http://business-jjb-apps-plan-approve
industry-application: http://business-jjb-apps-industry
scd-course-application: http://business-course-application
qswj-customer-application: http://business-jjb-apps-qswj-applet
jjb-saas-official: http://jjb-saas-official
cedu-customer-application: http://business-cedu-customer-application
saas-customer-application: http://business-saas-customer-application
cert-application: http://business-cert-application
jjb-saas-res: http://jjb-saas-res
declare-application: http://business-declare-application
jjb-saas-exam-affairs: http://business-exam-affairs
jjb-saas-punch-clock: http://jjb-saas-punch-clock
jjb-cedu-applet-v2: http://business-jjb-apps-cedu-applet-v2
jjb-apps-exam-manage: http://business-exam-manage
jjb-apps-sign: http://business-jjb-apps-sign
review-application: http://business-review-application
jjb-apps-customer-service: http://business-jjb-apps-customer-service
jjb-saas-course-open-platform: http://business-course-open-application
jjb-apps-ocr: http://business-jjb-saas-ocr
jjb-apps-enterprisecenter: http://business-jjb-apps-enterprisecenter
open:
sdk:
protocol: HTTP
url: 172.16.170.41
appPublicKey: 0490713158a22073896b9f3e79726eaac5e5a432cfc9c5512e86f856e307989625e29c6760462ed61c9328045e6d72223dfdc3dede5ae8ac44af3707c3d48ccb15
appPrivateKey: 308193020100301306072a8648ce3d020106082a811ccf5501822d047930770201010420079dce3b32004ec5694f096b431e1e41f17af8ec412ca81990169db195e9bb1ba00a06082a811ccf5501822da1440342000490713158a22073896b9f3e79726eaac5e5a432cfc9c5512e86f856e307989625e29c6760462ed61c9328045e6d72223dfdc3dede5ae8ac44af3707c3d48ccb15
#所有的前端域名配置 避免iframe跨域
x-frame-options: ${common.desk.host-url}/ ${common.login.host-url}/ ${common.base.host-url}/ ${common.gateway.network.http.external}/ http://10.43.250.65/ http://192.168.2.180:8085/ http://192.168.12.26:8085/ http://192.168.2.60:6030 http://192.168.3.105:8066 http://192.168.3.105:8085 http://10.43.145.16/ http://192.168.2.30:8080/ http://192.168.3.157:6011/ http://10.43.33.207/
openapi:
url: 10.43.82.219
db:
type: mysql
mysql:
host: 192.168.141.171
username: root
password: 5tS3owZ7w8Uk1egv
db: ${spring.application.name}
port: 3306
# host: nlb-kd2xz70qhllfet2koj.cn-beijing.nlb.aliyuncsslb.com
# username: root
# password: 5tS3owZ7w8Uk1egv
# db: ${spring.application.name}
# port: 33068
open:
sdk:
basic:
url: ${common.gateway.network.http.external}/basic/api/sdk/sets
k8s:
#配置生产环境的底座K8S
namespace: jjb-dragon
arch: x86
dragon:
perms:
api:
type: HTTP
gateway:
baseurl: ${common.gateway.network.http.intranet}
url-ip: 10.43.146.37
# ------------------基础配置-----------------
snail-job:
server:
# 服务端的地址,若服务端集群部署则此处配置域名
host: 192.168.88.26
port: 17888
port: 17889
# 名称空间ID若不填为默认空间(764d604ec6fc45f68cd92514c40e9e1a)
# namespace:
# 令牌,若不填则默认为(SJ_Wyz3dmsdbDOkDujOTSSoBjGQP1BMsVnj)
# token:
rpc-type: grpc
file:
url: https://jpfz.qhdsafety.com/gbsFileTest/
aqdUrl: https://jpfz.qhdsafety.com/aqdFileTest/
ai:
ali-openai-url: http://101.201.170.9:3000
base-url: https://api.moonshot.cn/v1/chat/completions

View File

@ -1,35 +0,0 @@
spring:
flyway:
#升级数据库的文件路径
locations:
- classpath:db/migration/${db.type}/
# 当迁移数据库存在但没有元数据的表时自动执行基准迁移新建flyway_schema_history表
baseline-on-migrate: true
#基准版本号
baseline-version: 2.0.0
#是否启动flyway
enabled: true
#是否校验已迁移过的脚步变更
validate-migration-naming: false
#用于存储迁移历史记录的表名默认为flyway_schema_history
table: new_flyway_schema_history
#定义SQL文件的编码格式
encoding: UTF-8
#定义SQL文件名的前缀
sql-migration-prefix: V
#SQL迁移脚本文件名后缀默认为.sql
sql-migration-suffixes: .sql
#是否在迁移时验证脚本默认为true
validate-on-migrate: false
#禁用清理功能
clean-disabled: true
#是否允许无序迁移
out-of-order: false
#SQL分隔符
sql-migration-separator: __
url: ${spring.shardingsphere.datasource.master.url}
user: ${spring.shardingsphere.datasource.master.username}
password: ${spring.shardingsphere.datasource.master.password}
driverClassName: ${spring.shardingsphere.datasource.master.driver-class-name}
#占位符校验
placeholderReplacement: false

View File

@ -1,9 +0,0 @@
# JOB 配置
xxl-job:
admin:
address: http://192.168.13.63:8080/xxl-job-admin
username: admin
password: u9Hc7tLFBY
executor:
app-name: ${spring.application.name}
accessToken: 90d9aa354ad6f8c64ec01176ed66e611

View File

@ -1,11 +0,0 @@
common:
log:
jjb-saas-system:
- com.jjb:info
jjb-saas-auth1:
- com.jjb:info
jjb-saas-user:
- com.jjb:info
gray:
log:
host: 192.168.1.1

View File

@ -1,22 +0,0 @@
mq:
topic: springcloudStream-jjb-dragon-test
#server: rmq-cn-7mz2wwso306-vpc.cn-hangzhou.rmq.aliyuncs.com:8080 #10.43.189.176:9876 172.16.244.187:9876
server: rocketmq:9876
spring:
cloud:
stream:
bindings:
input:
destination: springcloudStream-jjb-dragon-test
group: ${spring.application.name}-${spring.profiles.active}
output:
destination: springcloudStream-jjb-dragon-test
group: ${spring.application.name}-${spring.profiles.active}
rocketmq:
binder:
name-server: rocketmq:9876
group: ${spring.application.name}-${spring.profiles.active}
bindings:
input:
consumer:
tags: a

View File

@ -1,11 +0,0 @@
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml,classpath*:mapper/**/*Mapper.xml
type-handlers-package: com.jjb.saas.framework.datascope.handler
global-config:
banner: false
db-config:
id-type: assign_id
logic-delete-value: 1
logic-not-delete-value: 0
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

View File

@ -1,81 +0,0 @@
spring:
shardingsphere:
druid:
username: root
password: jjb123456
allows:
denys:
props:
sql:
show: true
enabled: true
masterslave:
name: ms # 名字,任意,需要保证唯一
master-data-source-name: master # 主库数据源
slave-data-source-names: slave-1 # 从库数据源
datasource:
names: master,slave-1
master:
#url: jdbc:mysql://10.43.123.226:3306/${spring.application.name}?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai
url: jdbc:mysql://${mysql.host}:${mysql.port}/${mysql.db}?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: ${mysql.username}
password: ${mysql.password}
type: com.alibaba.druid.pool.DruidDataSource
# 降级
# driver-class-name: com.mysql.cj.jdbc.Driver
driver-class-name: com.mysql.jdbc.Driver
initial-size: 6
min-idle: 1
maxActive: 100
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
#Oracle需要打开注释
#validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 配置监控统计拦截的filters去掉后监控界面sql无法统计'wall'用于防火墙
filters: stat,slf4j
# 通过connectProperties属性来打开mergeSql功能慢SQL记录
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
wall:
multi-statement-allow: true
slave-1:
# url: jdbc:mysql://10.43.123.226:3306/${spring.application.name}?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai
url: jdbc:mysql://${mysql.host}:3306/${mysql.db}?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: ${mysql.username}
password: ${mysql.password}
type: com.alibaba.druid.pool.DruidDataSource
# 降级
# driver-class-name: com.mysql.cj.jdbc.Driver
driver-class-name: com.mysql.jdbc.Driver
initial-size: 6
min-idle: 1
maxActive: 100
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
#Oracle需要打开注释
#validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 配置监控统计拦截的filters去掉后监控界面sql无法统计'wall'用于防火墙
filters: stat,slf4j
# 通过connectProperties属性来打开mergeSql功能慢SQL记录
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
wall:
multi-statement-allow: true

View File

@ -1,3 +0,0 @@
server:
port: 80
debug: false

View File

@ -1,16 +0,0 @@
spring:
redis:
#host: r-bp1j7heizb63kxg7b6.redis.rds.aliyuncs.com
host: 192.168.66.161
#Y53N4qNXuWXgHs$w
password: RS3owZ7w8Uk1e
port: 6379
timeout: 15000
database: 0
prefix: dragon
jedis:
pool:
max-active: 600
max-idle: 300
max-wait: 15000
min-idle: 10

View File

@ -1,22 +0,0 @@
sdk:
server:
symmetry-url: jjb-saas-application/application/applications/server/secure/
# app-key: jjb-saas-dragon
client:
security:
gateway: ${common.gateway.network.http.intranet}
appKey: ${sdk.server.app-key}
desensitization:
symmetric-key: 1234567887654321
enable: true
logging:
gateway: ${sdk.client.security.gateway}
appKey: ${sdk.client.security.app-key}
#不上报
clientLoggingEnable: true
level: debug
username: user
password: 123456
showConsoleLog: true
#不上报
formatConsoleLogJson: true

View File

@ -1,96 +0,0 @@
spring:
web:
resources:
cache:
cachecontrol:
no-store: false
max-age: 10000
no-cache: false
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
main:
allow-bean-definition-overriding: true
mvc:
pathmatch:
matching-strategy: ant_path_matcher
messages:
basename: i18n.message
encoding: UTF-8
server:
tomcat:
max-http-post-size: 100MB
connection-timeout: 180000
fastjson:
parser:
safeMode: true
mvc:
pathmatch:
matching-strategy: ANT_PATH_MATCHER
thymeleaf:
prefix: classpath:/templates/
cache: false
dubbo:
application:
name: ${spring.application.name}
registry:
timeout: 60000
address: nacos://${spring.cloud.nacos.config.server-addr}?namespace=${spring.cloud.nacos.config.namespace}-facade&username=${spring.cloud.nacos.config.username}&password=${spring.cloud.nacos.config.password}
check: false
filter: providerContextFilter
protocol:
port: -1
name: dubbo
consumer:
timeout: 60000
check: false
filter: consumerContextFilter
metadata:
report-definition: false
report-consumer-definition: false
metadata-report:
address: nacos://${spring.cloud.nacos.config.server-addr}
parameters:
namespace: ${spring.cloud.nacos.config.namespace}
username: ${spring.cloud.nacos.config.username}
password: ${spring.cloud.nacos.config.password}
# 关闭服务定义上报
report-definition: false
# 只上报必要元数据
report-metadata: true
# 重试次数
retry-times: 3
# 重试间隔(ms)
retry-period: 5000
timeout: 5000
# 压缩元数据内容
compress: true
# 元数据缓存本地
cache-metadata: true
# 同步转异步上报
sync-report: false
logging:
config: classpath:jjb-saas-logback-spring.xml
level:
com.alibaba.nacos.client.naming: OFF
com.alibaba.nacos.client.config.impl: OFF
com.alibaba.nacos.common.remote.client: OFF
datapermssion:
tenantcondition:
defaultversion: NEWVERSION
gateway:
url: ${common.gateway.network.http.external}
baseUrl: ${common.gateway.network.http.external}
easy-retry:
server:
#host: 10.43.73.61
#host: jjb-saas-config
host: 10.43.183.92
port: 1788
other:
platform:
cqyj:
openId: 1724256774550495232

View File

@ -1,16 +0,0 @@
sdk:
client:
app-key: e6ab3c9abda747b39d7cc12b6dc0f5a0
gateway:
url: ${common.gateway.network.http.intranet}
swagger:
enabled: ${common.swagger.enabled}
title: Demo
description: Safety Eval API Docs
version: ${application.version}
group-name: Demo
springfox:
documentation:
swagger:
v2:
path: /v2/api-docs

View File

@ -1,4 +1,4 @@
nacos:
nacos:
url: 192.168.20.100:30290
namespace: jjb-dragon
@ -8,9 +8,6 @@ application:
gateway: safetyEval
cn-name: 重庆安全评价
server:
servlet:
context-path: /${application.gateway}
spring:
application:

View File

@ -146,7 +146,7 @@ mysql:
port: ${common.mysql.port}
username: ${common.mysql.username}
password: ${common.mysql.password}
db: jjb_saas_safety_eval
db: ${application.name}
open:
sdk:

View File

@ -6,6 +6,8 @@ swagger:
group-name: ${application.cn-name}
springfox:
documentation:
swagger-ui:
base-url: ${application.gateway}
swagger:
v2:
path: /v2/api-docs
path: /${application.gateway}/v2/api-docs