Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Pig
提交
c2980771
P
Pig
项目概览
int
/
Pig
上一次同步 大约 1 年
通知
8
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Pig
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c2980771
编写于
12月 23, 2020
作者:
L
lbw
提交者:
Gitee
12月 23, 2020
浏览文件
操作
浏览文件
下载
差异文件
!95 spring cloud 2020
Merge pull request !95 from lbw/master
上级
e80b06be
295d571d
变更
38
隐藏空白更改
内联
并排
Showing
38 changed file
with
109 addition
and
90 deletion
+109
-90
README.md
README.md
+7
-7
db/pig_config.sql
db/pig_config.sql
+1
-1
pig-auth/pom.xml
pig-auth/pom.xml
+5
-5
pig-auth/src/main/java/com/pig4cloud/pig/auth/PigAuthApplication.java
.../main/java/com/pig4cloud/pig/auth/PigAuthApplication.java
+2
-2
pig-common/pig-common-core/pom.xml
pig-common/pig-common-core/pom.xml
+1
-1
pig-common/pig-common-datasource/pom.xml
pig-common/pig-common-datasource/pom.xml
+1
-1
pig-common/pig-common-feign/pom.xml
pig-common/pig-common-feign/pom.xml
+15
-4
pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeignAutoConfiguration.java
...pig4cloud/pig/common/feign/PigFeignAutoConfiguration.java
+5
-5
pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/annotation/EnablePigFeignClients.java
...ud/pig/common/feign/annotation/EnablePigFeignClients.java
+3
-1
pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/ext/PigSentinelFeign.java
.../com/pig4cloud/pig/common/feign/ext/PigSentinelFeign.java
+2
-2
pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/ext/PigSentinelInvocationHandler.java
...ud/pig/common/feign/ext/PigSentinelInvocationHandler.java
+2
-2
pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/handle/GlobalBizExceptionHandler.java
...ud/pig/common/feign/handle/GlobalBizExceptionHandler.java
+1
-1
pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/handle/PigUrlBlockHandler.java
...pig4cloud/pig/common/feign/handle/PigUrlBlockHandler.java
+1
-1
pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/parser/PigHeaderRequestOriginParser.java
...pig/common/feign/parser/PigHeaderRequestOriginParser.java
+1
-1
pig-common/pig-common-feign/src/main/resources/META-INF/spring.factories
...common-feign/src/main/resources/META-INF/spring.factories
+3
-0
pig-common/pig-common-job/pom.xml
pig-common/pig-common-job/pom.xml
+1
-1
pig-common/pig-common-log/pom.xml
pig-common/pig-common-log/pom.xml
+3
-3
pig-common/pig-common-mybatis/pom.xml
pig-common/pig-common-mybatis/pom.xml
+1
-1
pig-common/pig-common-security/pom.xml
pig-common/pig-common-security/pom.xml
+3
-3
pig-common/pig-common-swagger/pom.xml
pig-common/pig-common-swagger/pom.xml
+2
-2
pig-common/pig-common-test/pom.xml
pig-common/pig-common-test/pom.xml
+2
-2
pig-common/pom.xml
pig-common/pom.xml
+2
-2
pig-gateway/pom.xml
pig-gateway/pom.xml
+13
-3
pig-register/pom.xml
pig-register/pom.xml
+1
-1
pig-upms/pig-upms-api/pom.xml
pig-upms/pig-upms-api/pom.xml
+6
-1
pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/feign/factory/RemoteLogServiceFallbackFactory.java
...in/api/feign/factory/RemoteLogServiceFallbackFactory.java
+1
-1
pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/feign/factory/RemoteTokenServiceFallbackFactory.java
.../api/feign/factory/RemoteTokenServiceFallbackFactory.java
+1
-1
pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/feign/factory/RemoteUserServiceFallbackFactory.java
...n/api/feign/factory/RemoteUserServiceFallbackFactory.java
+1
-1
pig-upms/pig-upms-biz/pom.xml
pig-upms/pig-upms-biz/pom.xml
+1
-6
pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/PigAdminApplication.java
...ain/java/com/pig4cloud/pig/admin/PigAdminApplication.java
+1
-1
pig-upms/pom.xml
pig-upms/pom.xml
+1
-1
pig-visual/pig-codegen/pom.xml
pig-visual/pig-codegen/pom.xml
+2
-2
pig-visual/pig-codegen/src/main/java/com/pig4cloud/pig/codegen/PigCodeGenApplication.java
...java/com/pig4cloud/pig/codegen/PigCodeGenApplication.java
+1
-1
pig-visual/pig-monitor/pom.xml
pig-visual/pig-monitor/pom.xml
+2
-2
pig-visual/pig-sentinel-dashboard/pom.xml
pig-visual/pig-sentinel-dashboard/pom.xml
+1
-1
pig-visual/pig-xxl-job-admin/pom.xml
pig-visual/pig-xxl-job-admin/pom.xml
+1
-1
pig-visual/pom.xml
pig-visual/pom.xml
+1
-1
pom.xml
pom.xml
+11
-18
未找到文件。
README.md
浏览文件 @
c2980771
<p
align=
"center"
>
<img
src=
"https://img.shields.io/badge/Pig-
2.1
0-success.svg"
alt=
"Build Status"
>
<img
src=
"https://img.shields.io/badge/Spring%20Cloud-
Hoxto.SR9
-blue.svg"
alt=
"Coverage Status"
>
<img
src=
"https://img.shields.io/badge/Spring%20Boot-2.
3
-blue.svg"
alt=
"Downloads"
>
<img
src=
"https://img.shields.io/badge/Pig-
3.0.
0-success.svg"
alt=
"Build Status"
>
<img
src=
"https://img.shields.io/badge/Spring%20Cloud-
2020
-blue.svg"
alt=
"Coverage Status"
>
<img
src=
"https://img.shields.io/badge/Spring%20Boot-2.
4
-blue.svg"
alt=
"Downloads"
>
<img
src=
"https://img.shields.io/github/license/pig-mesh/pig"
/>
</p>
## 系统说明
-
基于 Spring Cloud Hoxton 、Spring Boot 2.
3
、 OAuth2 的 RBAC
**权限管理系统**
-
基于 Spring Cloud Hoxton 、Spring Boot 2.
4
、 OAuth2 的 RBAC
**权限管理系统**
-
基于数据驱动视图的理念封装 element-ui,即使没有 vue 的使用经验也能快速上手
-
提供对常见容器化支持 Docker、Kubernetes、Rancher2 支持
-
提供 lambda 、stream api 、webflux 的生产实践
...
...
@@ -17,8 +17,8 @@
| 依赖 | 版本 |
| ---------------------- | ------------- |
| Spring Boot | 2.
3.7.RELEASE
|
| Spring Cloud |
Hoxton.SR9
|
| Spring Boot | 2.
4.1
|
| Spring Cloud |
2020
|
| Spring Cloud Alibaba | 2.2.3.RELEASE |
| Spring Security OAuth2 | 2.3.6 |
| Mybatis Plus | 3.4.1 |
...
...
@@ -40,7 +40,7 @@ pig
├──
pig
-
common
-
mybatis
-- mybatis 扩展封装
├──
pig
-
common
-
security
-- 安全工具类
├──
pig
-
common
-
swagger
-- 接口文档
├──
pig
-
common
-
sentinel
-- sentinel
扩展封装
├──
pig
-
common
-
feign
-- feign
扩展封装
└──
pig
-
common
-
test
-- oauth2.0 单元测试扩展封装
├──
pig
-
register
-- Nacos Server[8848]
├──
pig
-
gateway
-- Spring Cloud Gateway网关[9999]
...
...
db/pig_config.sql
浏览文件 @
c2980771
...
...
@@ -36,7 +36,7 @@ CREATE TABLE `config_info` (
-- Records of config_info
-- ----------------------------
BEGIN
;
INSERT
INTO
`config_info`
VALUES
(
1
,
'application-dev.yml'
,
'DEFAULT_GROUP'
,
'# 加解密根密码
\n
jasypt:
\n
encryptor:
\n
password: pig #根密码
\n\n
# Spring 相关
\n
spring:
\n
redis:
\n
password:
\n
host: pig-redis
\n
cloud:
\n
sentinel:
\n
eager: true
\n
transport:
\n
dashboard: pig-sentinel:5003
\n\n
# 暴露监控端点
\n
management:
\n
endpoints:
\n
web:
\n
exposure:
\n
include:
\'
*
\'\n\n
# feign 配置
\n
feign:
\n
sentinel:
\n
enabled: true
\n
okhttp:
\n
enabled: true
\n
httpclient:
\n
enabled: false
\n
client:
\n
config:
\n
default:
\n
connectTimeout: 10000
\n
readTimeout: 10000
\n
compression:
\n
request:
\n
enabled: true
\n
response:
\n
enabled: true
\n\n
#
请求处理的超时时间
\n
ribbon:
\n
ReadTimeout: 10000
\n
ConnectTimeout: 10000
\n\n
# mybaits-plus配置
\n
mybatis-plus:
\n
mapper-locations: classpath:/mapper/*Mapper.xml
\n
global-config:
\n
banner: false
\n
db-config:
\n
id-type: auto
\n
table-underline: true
\n
logic-delete-value: 1
\n
logic-not-delete-value: 0
\n
configuration:
\n
map-underscore-to-camel-case: true
\n\n
# spring security 配置
\n
security:
\n
oauth2:
\n
resource:
\n
loadBalanced: true
\n
token-info-uri: http://pig-auth/oauth/check_token
\n
# 通用放行URL,服务个性化,请在对应配置文件覆盖
\n
ignore:
\n
urls:
\n
- /v2/api-docs
\n
- /actuator/**
\n
# swagger 配置
\n
swagger:
\n
title: Pig Swagger API
\n
license: Powered By pig4cloud
\n
licenseUrl: https://pig4cloud.com
\n
terms-of-service-url: https://pig4cloud.com
\n
contact:
\n
email: wangiegie@gmail.com
\n
url: https://pig4cloud.com
\n
authorization:
\n
name: pig4cloud OAuth
\n
auth-regex: ^.*$
\n
authorization-scope-list:
\n
- scope: server
\n
description: server all
\n
token-url-list:
\n
- http://${GATEWAY_HOST:pig-gateway}:${GATEWAY-PORT:9999}/auth/oauth/token'
,
'841de89cde20a1a045f46001f9a89266'
,
'2019-11-29 16:31:20'
,
'2020-06-11 16:28:09'
,
NULL
,
'127.0.0.
1'
,
''
,
''
,
'通用配置'
,
'null'
,
'null'
,
'yaml'
,
'null'
);
INSERT
INTO
`config_info`
VALUES
(
1
,
'application-dev.yml'
,
'DEFAULT_GROUP'
,
'# 加解密根密码
\n
jasypt:
\n
encryptor:
\n
password: pig #根密码
\n\n
# Spring 相关
\n
spring:
\n
redis:
\n
password:
\n
host: pig-redis
\n
cloud:
\n
sentinel:
\n
eager: true
\n
transport:
\n
dashboard: pig-sentinel:5003
\n\n
# 暴露监控端点
\n
management:
\n
endpoints:
\n
web:
\n
exposure:
\n
include:
\'
*
\'\n\n
# feign 配置
\n
feign:
\n
sentinel:
\n
enabled: true
\n
okhttp:
\n
enabled: true
\n
httpclient:
\n
enabled: false
\n
client:
\n
config:
\n
default:
\n
connectTimeout: 10000
\n
readTimeout: 10000
\n
compression:
\n
request:
\n
enabled: true
\n
response:
\n
enabled: true
\n\n
#
mybaits-plus配置
\n
mybatis-plus:
\n
mapper-locations: classpath:/mapper/*Mapper.xml
\n
global-config:
\n
banner: false
\n
db-config:
\n
id-type: auto
\n
table-underline: true
\n
logic-delete-value: 1
\n
logic-not-delete-value: 0
\n
configuration:
\n
map-underscore-to-camel-case: true
\n\n
# spring security 配置
\n
security:
\n
oauth2:
\n
resource:
\n
loadBalanced: true
\n
token-info-uri: http://pig-auth/oauth/check_token
\n
# 通用放行URL,服务个性化,请在对应配置文件覆盖
\n
ignore:
\n
urls:
\n
- /v2/api-docs
\n
- /actuator/**
\n
# swagger 配置
\n
swagger:
\n
title: Pig Swagger API
\n
license: Powered By pig4cloud
\n
licenseUrl: https://pig4cloud.com
\n
terms-of-service-url: https://pig4cloud.com
\n
contact:
\n
email: wangiegie@gmail.com
\n
url: https://pig4cloud.com
\n
authorization:
\n
name: pig4cloud OAuth
\n
auth-regex: ^.*$
\n
authorization-scope-list:
\n
- scope: server
\n
description: server all
\n
token-url-list:
\n
- http://${GATEWAY_HOST:pig-gateway}:${GATEWAY-PORT:9999}/auth/oauth/token'
,
'9a17f1e09f13f48de43977954dc2bd66'
,
'2019-11-29 16:31:20'
,
'2020-12-23 11:35:46'
,
NULL
,
'0:0:0:0:0:0:0:
1'
,
''
,
''
,
'通用配置'
,
'null'
,
'null'
,
'yaml'
,
'null'
);
INSERT
INTO
`config_info`
VALUES
(
2
,
'pig-auth-dev.yml'
,
'DEFAULT_GROUP'
,
'# 数据源
\n
spring:
\n
datasource:
\n
type: com.zaxxer.hikari.HikariDataSource
\n
driver-class-name: com.mysql.cj.jdbc.Driver
\n
username: root
\n
password: root
\n
url: jdbc:mysql://pig-mysql:3306/pig?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
\n
freemarker:
\n
allow-request-override: false
\n
allow-session-override: false
\n
cache: true
\n
charset: UTF-8
\n
check-template-location: true
\n
content-type: text/html
\n
enabled: true
\n
expose-request-attributes: false
\n
expose-session-attributes: false
\n
expose-spring-macro-helpers: true
\n
prefer-file-system-access: true
\n
suffix: .ftl
\n
template-loader-path: classpath:/templates/'
,
'58b1b48a2888f49e667864be32edf9c1'
,
'2019-11-29 16:31:48'
,
'2020-01-01 18:30:58'
,
NULL
,
'127.0.0.1'
,
''
,
''
,
'认证中心配置'
,
'null'
,
'null'
,
'yaml'
,
'null'
);
INSERT
INTO
`config_info`
VALUES
(
3
,
'pig-codegen-dev.yml'
,
'DEFAULT_GROUP'
,
'## spring security 配置
\n
security:
\n
oauth2:
\n
client:
\n
client-id: ENC(27v1agvAug87ANOVnbKdsw==)
\n
client-secret: ENC(VbnkopxrwgbFVKp+UxJ2pg==)
\n
scope: server
\n\n
# 数据源配置
\n
spring:
\n
datasource:
\n
type: com.zaxxer.hikari.HikariDataSource
\n
driver-class-name: com.mysql.cj.jdbc.Driver
\n
username: root
\n
password: root
\n
url: jdbc:mysql://pig-mysql:3306/pig_codegen?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
\n
resources:
\n
static-locations: classpath:/static/,classpath:/views/
\n\n
# 直接放行URL
\n
ignore:
\n
urls:
\n
- /v2/api-docs
\n
- /actuator/**
\n
'
,
'abc702838b34d11b46e96143ccd9f367'
,
'2019-11-29 16:32:12'
,
'2019-11-29 16:32:12'
,
NULL
,
'127.0.0.1'
,
''
,
''
,
'代码生成配置'
,
NULL
,
NULL
,
'yaml'
,
NULL
);
INSERT
INTO
`config_info`
VALUES
(
4
,
'pig-gateway-dev.yml'
,
'DEFAULT_GROUP'
,
'spring:
\n
cloud:
\n
gateway:
\n
locator:
\n
enabled: true
\n
routes:
\n
# 认证中心
\n
- id: pig-auth
\n
uri: lb://pig-auth
\n
predicates:
\n
- Path=/auth/**
\n
filters:
\n
# 验证码处理
\n
- ValidateCodeGatewayFilter
\n
# 前端密码解密
\n
- PasswordDecoderFilter
\n
#UPMS 模块
\n
- id: pig-upms-biz
\n
uri: lb://pig-upms-biz
\n
predicates:
\n
- Path=/admin/**
\n
filters:
\n
# 限流配置
\n
- name: RequestRateLimiter
\n
args:
\n
key-resolver:
\'
#{@remoteAddrKeyResolver}
\'\n
redis-rate-limiter.replenishRate: 100
\n
redis-rate-limiter.burstCapacity: 200
\n
# 代码生成模块
\n
- id: pig-codegen
\n
uri: lb://pig-codegen
\n
predicates:
\n
- Path=/gen/**
\n\n\n
gateway:
\n
encode-key:
\'
thanks,pig4cloud
\'\n
ignore-clients:
\n
- test
\n\n
swagger:
\n
ignore-providers:
\n
- pig-auth
\n
- pig-codegen
\n
'
,
'5cd71b235930c78e700819b944a14446'
,
'2019-11-29 16:32:42'
,
'2020-10-09 17:10:45'
,
NULL
,
'0:0:0:0:0:0:0:1'
,
''
,
''
,
'网关配置'
,
''
,
''
,
'yaml'
,
''
);
...
...
pig-auth/pom.xml
浏览文件 @
c2980771
...
...
@@ -21,7 +21,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-auth
</artifactId>
...
...
@@ -43,20 +43,20 @@
<!--断路器依赖-->
<dependency>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common-
sentinel
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<artifactId>
pig-common-
feign
</artifactId>
<version>
3.0.0
</version>
</dependency>
<!--upms api、model 模块-->
<dependency>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-upms-api
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</dependency>
<!--security-->
<dependency>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common-security
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</dependency>
<!--JDBC相关-->
<dependency>
...
...
pig-auth/src/main/java/com/pig4cloud/pig/auth/PigAuthApplication.java
浏览文件 @
c2980771
...
...
@@ -16,7 +16,7 @@
package
com.pig4cloud.pig.auth
;
import
com.pig4cloud.pig.common.
security
.annotation.EnablePigFeignClients
;
import
com.pig4cloud.pig.common.
feign
.annotation.EnablePigFeignClients
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.cloud.client.SpringCloudApplication
;
...
...
@@ -24,8 +24,8 @@ import org.springframework.cloud.client.SpringCloudApplication;
* @author lengleng
* @date 2018年06月21日 认证授权中心
*/
@SpringCloudApplication
@EnablePigFeignClients
@SpringCloudApplication
public
class
PigAuthApplication
{
public
static
void
main
(
String
[]
args
)
{
...
...
pig-common/pig-common-core/pom.xml
浏览文件 @
c2980771
...
...
@@ -21,7 +21,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-common-core
</artifactId>
...
...
pig-common/pig-common-datasource/pom.xml
浏览文件 @
c2980771
...
...
@@ -21,7 +21,7 @@
<parent>
<artifactId>
pig-common
</artifactId>
<groupId>
com.pig4cloud
</groupId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
pig-common/pig-common-
sentinel
/pom.xml
→
pig-common/pig-common-
feign
/pom.xml
浏览文件 @
c2980771
...
...
@@ -21,18 +21,19 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<packaging>
jar
</packaging>
<artifactId>
pig-common-sentinel
</artifactId>
<description>
sentinel服务降级熔断、限流组件
</description>
<artifactId>
pig-common-feign
</artifactId>
<description>
feign-sentinel服务降级熔断、限流组件
</description>
<dependencies>
<dependency>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common-core
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
...
...
@@ -43,6 +44,16 @@
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-openfeign
</artifactId>
</dependency>
<!-- okhttp 扩展 -->
<dependency>
<groupId>
io.github.openfeign
</groupId>
<artifactId>
feign-okhttp
</artifactId>
</dependency>
<!-- LB 扩展 -->
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-loadbalancer
</artifactId>
</dependency>
<!--oauth server 依赖-->
<dependency>
<groupId>
org.springframework.security
</groupId>
...
...
pig-common/pig-common-
sentinel/src/main/java/com/pig4cloud/pig/common/sentinel/Sentinel
AutoConfiguration.java
→
pig-common/pig-common-
feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeign
AutoConfiguration.java
浏览文件 @
c2980771
...
...
@@ -14,14 +14,14 @@
* limitations under the License.
*/
package
com.pig4cloud.pig.common.
sentinel
;
package
com.pig4cloud.pig.common.
feign
;
import
com.alibaba.cloud.sentinel.feign.SentinelFeignAutoConfiguration
;
import
com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.BlockExceptionHandler
;
import
com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser
;
import
com.pig4cloud.pig.common.
sentinel.feign
.PigSentinelFeign
;
import
com.pig4cloud.pig.common.
sentinel
.handle.PigUrlBlockHandler
;
import
com.pig4cloud.pig.common.
sentinel
.parser.PigHeaderRequestOriginParser
;
import
com.pig4cloud.pig.common.
feign.ext
.PigSentinelFeign
;
import
com.pig4cloud.pig.common.
feign
.handle.PigUrlBlockHandler
;
import
com.pig4cloud.pig.common.
feign
.parser.PigHeaderRequestOriginParser
;
import
feign.Feign
;
import
org.springframework.boot.autoconfigure.AutoConfigureBefore
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
...
...
@@ -38,7 +38,7 @@ import org.springframework.context.annotation.Scope;
*/
@Configuration
(
proxyBeanMethods
=
false
)
@AutoConfigureBefore
(
SentinelFeignAutoConfiguration
.
class
)
public
class
Sentinel
AutoConfiguration
{
public
class
PigFeign
AutoConfiguration
{
@Bean
@Scope
(
"prototype"
)
...
...
pig-common/pig-common-
security/src/main/java/com/pig4cloud/pig/common/security
/annotation/EnablePigFeignClients.java
→
pig-common/pig-common-
feign/src/main/java/com/pig4cloud/pig/common/feign
/annotation/EnablePigFeignClients.java
浏览文件 @
c2980771
...
...
@@ -14,8 +14,9 @@
* limitations under the License.
*/
package
com.pig4cloud.pig.common.
security
.annotation
;
package
com.pig4cloud.pig.common.
feign
.annotation
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
java.lang.annotation.*
;
...
...
@@ -28,6 +29,7 @@ import java.lang.annotation.*;
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Documented
@EnableFeignClients
@EnableAutoConfiguration
(
excludeName
=
"org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration"
)
public
@interface
EnablePigFeignClients
{
/**
...
...
pig-common/pig-common-
sentinel/src/main/java/com/pig4cloud/pig/common/sentinel/feign
/PigSentinelFeign.java
→
pig-common/pig-common-
feign/src/main/java/com/pig4cloud/pig/common/feign/ext
/PigSentinelFeign.java
浏览文件 @
c2980771
...
...
@@ -14,15 +14,15 @@
* limitations under the License.
*/
package
com.pig4cloud.pig.common.
sentinel.feign
;
package
com.pig4cloud.pig.common.
feign.ext
;
import
com.alibaba.cloud.sentinel.feign.SentinelContractHolder
;
import
feign.Contract
;
import
feign.Feign
;
import
feign.InvocationHandlerFactory
;
import
feign.Target
;
import
feign.hystrix.FallbackFactory
;
import
org.springframework.beans.BeansException
;
import
org.springframework.cloud.openfeign.FallbackFactory
;
import
org.springframework.cloud.openfeign.FeignContext
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContextAware
;
...
...
pig-common/pig-common-
sentinel/src/main/java/com/pig4cloud/pig/common/sentinel/feign
/PigSentinelInvocationHandler.java
→
pig-common/pig-common-
feign/src/main/java/com/pig4cloud/pig/common/feign/ext
/PigSentinelInvocationHandler.java
浏览文件 @
c2980771
...
...
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package
com.pig4cloud.pig.common.
sentinel.feign
;
package
com.pig4cloud.pig.common.
feign.ext
;
import
com.alibaba.cloud.sentinel.feign.SentinelContractHolder
;
import
com.alibaba.cloud.sentinel.feign.SentinelInvocationHandler
;
...
...
@@ -29,8 +29,8 @@ import feign.Feign;
import
feign.InvocationHandlerFactory
;
import
feign.MethodMetadata
;
import
feign.Target
;
import
feign.hystrix.FallbackFactory
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.cloud.openfeign.FallbackFactory
;
import
java.lang.reflect.InvocationHandler
;
import
java.lang.reflect.InvocationTargetException
;
...
...
pig-common/pig-common-
sentinel/src/main/java/com/pig4cloud/pig/common/sentinel
/handle/GlobalBizExceptionHandler.java
→
pig-common/pig-common-
feign/src/main/java/com/pig4cloud/pig/common/feign
/handle/GlobalBizExceptionHandler.java
浏览文件 @
c2980771
...
...
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package
com.pig4cloud.pig.common.
sentinel
.handle
;
package
com.pig4cloud.pig.common.
feign
.handle
;
import
com.alibaba.csp.sentinel.Tracer
;
import
com.pig4cloud.pig.common.core.util.R
;
...
...
pig-common/pig-common-
sentinel/src/main/java/com/pig4cloud/pig/common/sentinel
/handle/PigUrlBlockHandler.java
→
pig-common/pig-common-
feign/src/main/java/com/pig4cloud/pig/common/feign
/handle/PigUrlBlockHandler.java
浏览文件 @
c2980771
...
...
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package
com.pig4cloud.pig.common.
sentinel
.handle
;
package
com.pig4cloud.pig.common.
feign
.handle
;
import
cn.hutool.http.ContentType
;
import
cn.hutool.json.JSONUtil
;
...
...
pig-common/pig-common-
sentinel/src/main/java/com/pig4cloud/pig/common/sentinel
/parser/PigHeaderRequestOriginParser.java
→
pig-common/pig-common-
feign/src/main/java/com/pig4cloud/pig/common/feign
/parser/PigHeaderRequestOriginParser.java
浏览文件 @
c2980771
...
...
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package
com.pig4cloud.pig.common.
sentinel
.parser
;
package
com.pig4cloud.pig.common.
feign
.parser
;
import
com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser
;
...
...
pig-common/pig-common-
sentinel
/src/main/resources/META-INF/spring.factories
→
pig-common/pig-common-
feign
/src/main/resources/META-INF/spring.factories
浏览文件 @
c2980771
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.pig4cloud.pig.common.
sentinel.Sentinel
AutoConfiguration,\
com.pig4cloud.pig.common.
sentinel
.handle.GlobalBizExceptionHandler
com.pig4cloud.pig.common.
feign.PigFeign
AutoConfiguration,\
com.pig4cloud.pig.common.
feign
.handle.GlobalBizExceptionHandler
pig-common/pig-common-job/pom.xml
浏览文件 @
c2980771
...
...
@@ -23,7 +23,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-common-job
</artifactId>
...
...
pig-common/pig-common-log/pom.xml
浏览文件 @
c2980771
...
...
@@ -21,7 +21,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-common-log
</artifactId>
...
...
@@ -35,13 +35,13 @@
<dependency>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common-core
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</dependency>
<!--UPMS接口模块-->
<dependency>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-upms-api
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</dependency>
<!--安全依赖获取上下文信息-->
<dependency>
...
...
pig-common/pig-common-mybatis/pom.xml
浏览文件 @
c2980771
...
...
@@ -21,7 +21,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-common-mybatis
</artifactId>
...
...
pig-common/pig-common-security/pom.xml
浏览文件 @
c2980771
...
...
@@ -21,7 +21,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-common-security
</artifactId>
...
...
@@ -35,7 +35,7 @@
<dependency>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common-core
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</dependency>
<!--安全模块-->
<dependency>
...
...
@@ -50,7 +50,7 @@
<dependency>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-upms-api
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</dependency>
</dependencies>
</project>
pig-common/pig-common-swagger/pom.xml
浏览文件 @
c2980771
...
...
@@ -24,7 +24,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-common-swagger
</artifactId>
...
...
@@ -59,7 +59,7 @@
<!--网关 swagger 聚合依赖-->
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-gateway-
core
</artifactId>
<artifactId>
spring-cloud-gateway-
server
</artifactId>
<scope>
provided
</scope>
</dependency>
<dependency>
...
...
pig-common/pig-common-test/pom.xml
浏览文件 @
c2980771
...
...
@@ -6,7 +6,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-common-test
</artifactId>
...
...
@@ -18,7 +18,7 @@
<dependency>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common-security
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</dependency>
<dependency>
<groupId>
org.springframework.security
</groupId>
...
...
pig-common/pom.xml
浏览文件 @
c2980771
...
...
@@ -21,7 +21,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-common
</artifactId>
...
...
@@ -36,7 +36,7 @@
<module>
pig-common-log
</module>
<module>
pig-common-mybatis
</module>
<module>
pig-common-security
</module>
<module>
pig-common-
sentinel
</module>
<module>
pig-common-
feign
</module>
<module>
pig-common-swagger
</module>
<module>
pig-common-test
</module>
</modules>
...
...
pig-gateway/pom.xml
浏览文件 @
c2980771
...
...
@@ -21,7 +21,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-gateway
</artifactId>
...
...
@@ -55,8 +55,13 @@
<artifactId>
spring-cloud-alibaba-sentinel-gateway
</artifactId>
</dependency>
<dependency>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common-sentinel
</artifactId>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-alibaba-sentinel
</artifactId>
</dependency>
<!-- LB 扩展 -->
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-loadbalancer
</artifactId>
</dependency>
<!--验证码 源码: https://github.com/pig-mesh/easy-captcha -->
<dependency>
...
...
@@ -64,6 +69,11 @@
<artifactId>
captcha-spring-boot-starter
</artifactId>
<version>
${captcha.version}
</version>
</dependency>
<!-- 工具包依赖 -->
<dependency>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common-core
</artifactId>
</dependency>
<!--接口文档-->
<dependency>
<groupId>
com.pig4cloud
</groupId>
...
...
pig-register/pom.xml
浏览文件 @
c2980771
...
...
@@ -18,7 +18,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-register
</artifactId>
...
...
pig-upms/pig-upms-api/pom.xml
浏览文件 @
c2980771
...
...
@@ -21,7 +21,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-upms
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-upms-api
</artifactId>
...
...
@@ -41,5 +41,10 @@
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-openfeign
</artifactId>
</dependency>
<!--断路器依赖-->
<dependency>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common-feign
</artifactId>
</dependency>
</dependencies>
</project>
pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/feign/factory/RemoteLogServiceFallbackFactory.java
浏览文件 @
c2980771
...
...
@@ -18,7 +18,7 @@ package com.pig4cloud.pig.admin.api.feign.factory;
import
com.pig4cloud.pig.admin.api.feign.RemoteLogService
;
import
com.pig4cloud.pig.admin.api.feign.fallback.RemoteLogServiceFallbackImpl
;
import
feign.hystrix
.FallbackFactory
;
import
org.springframework.cloud.openfeign
.FallbackFactory
;
import
org.springframework.stereotype.Component
;
/**
...
...
pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/feign/factory/RemoteTokenServiceFallbackFactory.java
浏览文件 @
c2980771
...
...
@@ -18,7 +18,7 @@ package com.pig4cloud.pig.admin.api.feign.factory;
import
com.pig4cloud.pig.admin.api.feign.RemoteTokenService
;
import
com.pig4cloud.pig.admin.api.feign.fallback.RemoteTokenServiceFallbackImpl
;
import
feign.hystrix
.FallbackFactory
;
import
org.springframework.cloud.openfeign
.FallbackFactory
;
import
org.springframework.stereotype.Component
;
/**
...
...
pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/feign/factory/RemoteUserServiceFallbackFactory.java
浏览文件 @
c2980771
...
...
@@ -18,7 +18,7 @@ package com.pig4cloud.pig.admin.api.feign.factory;
import
com.pig4cloud.pig.admin.api.feign.RemoteUserService
;
import
com.pig4cloud.pig.admin.api.feign.fallback.RemoteUserServiceFallbackImpl
;
import
feign.hystrix
.FallbackFactory
;
import
org.springframework.cloud.openfeign
.FallbackFactory
;
import
org.springframework.stereotype.Component
;
/**
...
...
pig-upms/pig-upms-biz/pom.xml
浏览文件 @
c2980771
...
...
@@ -21,7 +21,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-upms
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-upms-biz
</artifactId>
...
...
@@ -65,11 +65,6 @@
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-alibaba-nacos-config
</artifactId>
</dependency>
<!--断路器依赖-->
<dependency>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common-sentinel
</artifactId>
</dependency>
<!--undertow容器-->
<dependency>
<groupId>
org.springframework.boot
</groupId>
...
...
pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/PigAdminApplication.java
浏览文件 @
c2980771
...
...
@@ -16,7 +16,7 @@
package
com.pig4cloud.pig.admin
;
import
com.pig4cloud.pig.common.
security
.annotation.EnablePigFeignClients
;
import
com.pig4cloud.pig.common.
feign
.annotation.EnablePigFeignClients
;
import
com.pig4cloud.pig.common.security.annotation.EnablePigResourceServer
;
import
com.pig4cloud.pig.common.swagger.annotation.EnablePigSwagger2
;
import
org.springframework.boot.SpringApplication
;
...
...
pig-upms/pom.xml
浏览文件 @
c2980771
...
...
@@ -21,7 +21,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-upms
</artifactId>
...
...
pig-visual/pig-codegen/pom.xml
浏览文件 @
c2980771
...
...
@@ -22,7 +22,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-visual
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-codegen
</artifactId>
...
...
@@ -49,7 +49,7 @@
<!--断路器依赖-->
<dependency>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common-
sentinel
</artifactId>
<artifactId>
pig-common-
feign
</artifactId>
</dependency>
<!--数据源-->
<dependency>
...
...
pig-visual/pig-codegen/src/main/java/com/pig4cloud/pig/codegen/PigCodeGenApplication.java
浏览文件 @
c2980771
...
...
@@ -17,7 +17,7 @@
package
com.pig4cloud.pig.codegen
;
import
com.pig4cloud.pig.common.datasource.annotation.EnableDynamicDataSource
;
import
com.pig4cloud.pig.common.
security
.annotation.EnablePigFeignClients
;
import
com.pig4cloud.pig.common.
feign
.annotation.EnablePigFeignClients
;
import
com.pig4cloud.pig.common.security.annotation.EnablePigResourceServer
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.cloud.client.SpringCloudApplication
;
...
...
pig-visual/pig-monitor/pom.xml
浏览文件 @
c2980771
...
...
@@ -21,7 +21,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-visual
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-monitor
</artifactId>
...
...
@@ -49,7 +49,7 @@
<!--断路器依赖-->
<dependency>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-common-
sentinel
</artifactId>
<artifactId>
pig-common-
feign
</artifactId>
</dependency>
<!--undertow容器-->
<dependency>
...
...
pig-visual/pig-sentinel-dashboard/pom.xml
浏览文件 @
c2980771
...
...
@@ -6,7 +6,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-visual
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-sentinel-dashboard
</artifactId>
...
...
pig-visual/pig-xxl-job-admin/pom.xml
浏览文件 @
c2980771
...
...
@@ -4,7 +4,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-visual
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-xxl-job-admin
</artifactId>
...
...
pig-visual/pom.xml
浏览文件 @
c2980771
...
...
@@ -21,7 +21,7 @@
<parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
</parent>
<artifactId>
pig-visual
</artifactId>
...
...
pom.xml
浏览文件 @
c2980771
...
...
@@ -23,20 +23,19 @@
<!-- 源码: https://gitee.com/log4j/pig-cloud-dependencies-parent -->
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig-cloud-dependencies-parent
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<relativePath/>
<!-- lookup parent from repository -->
<version>
3.0.0
</version>
</parent>
<groupId>
com.pig4cloud
</groupId>
<artifactId>
pig
</artifactId>
<version>
2.10.4-SNAPSHOT
</version>
<version>
3.0.0
</version>
<name>
${project.artifactId}
</name>
<packaging>
pom
</packaging>
<url>
https://www.pig4cloud.com
</url>
<properties>
<spring-boot.version>
2.
3.7.RELEASE
</spring-boot.version>
<spring-cloud.version>
Hoxton.SR9
</spring-cloud.version>
<spring-boot.version>
2.
4.1
</spring-boot.version>
<spring-cloud.version>
2020.0.0
</spring-cloud.version>
<spring-cloud-alibaba.version>
2.2.3.RELEASE
</spring-cloud-alibaba.version>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<maven.compiler.source>
1.8
</maven.compiler.source>
...
...
@@ -44,7 +43,7 @@
<spring-boot-admin.version>
2.3.1
</spring-boot-admin.version>
<hutool.version>
5.5.3
</hutool.version>
<mybatis-plus.version>
3.4.1
</mybatis-plus.version>
<dynamic-ds.version>
3.2.
1
</dynamic-ds.version>
<dynamic-ds.version>
3.2.
0
</dynamic-ds.version>
<captcha.version>
2.2.0
</captcha.version>
<velocity.version>
1.7
</velocity.version>
<jasypt.version>
2.1.0
</jasypt.version>
...
...
@@ -59,6 +58,11 @@
</properties>
<dependencies>
<!--bootstrap 启动器-->
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-bootstrap
</artifactId>
</dependency>
<!--配置文件处理器-->
<dependency>
<groupId>
org.springframework.boot
</groupId>
...
...
@@ -193,18 +197,6 @@
</pluginManagement>
</build>
<repositories>
<!-- 快照包下载, 正式版本全部源码在中央仓库-->
<repository>
<id>
nexus-snapshots
</id>
<name>
nexus Snapshots
</name>
<url>
https://nexus.pigx.vip/repository/maven-public/
</url>
<snapshots>
<enabled>
true
</enabled>
</snapshots>
</repository>
</repositories>
<profiles>
<profile>
<id>
dev
</id>
...
...
@@ -218,4 +210,5 @@
</activation>
</profile>
</profiles>
</project>
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录