nacos
All checks were successful
Gitea/FrameTour-BE/pipeline/head This commit looks good

This commit is contained in:
2025-08-24 23:18:08 +08:00
parent 7f2c2ef22e
commit 52649e4e77
8 changed files with 166 additions and 336 deletions

View File

@@ -3,8 +3,12 @@ package com.ycwl.basic;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@MapperScan(basePackages = "com.ycwl.basic.mapper")
@MapperScan(basePackages = "com.ycwl.basic.*.mapper")
public class Application {

View File

@@ -0,0 +1,63 @@
package com.ycwl.basic.config;
import feign.Logger;
import feign.RequestInterceptor;
import feign.codec.ErrorDecoder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import jakarta.servlet.http.HttpServletRequest;
@Slf4j
@Configuration
public class FeignConfig {
@Bean
public Logger.Level feignLoggerLevel() {
return Logger.Level.BASIC;
}
@Bean
public RequestInterceptor requestInterceptor() {
return requestTemplate -> {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (attributes != null) {
HttpServletRequest request = attributes.getRequest();
// 传递认证头
String authorization = request.getHeader("Authorization");
if (authorization != null) {
requestTemplate.header("Authorization", authorization);
}
}
};
}
@Bean
public ErrorDecoder errorDecoder() {
return new FeignErrorDecoder();
}
public static class FeignErrorDecoder implements ErrorDecoder {
private final ErrorDecoder defaultErrorDecoder = new Default();
@Override
public Exception decode(String methodKey, feign.Response response) {
log.error("Feign调用失败: method={}, status={}, reason={}",
methodKey, response.status(), response.reason());
if (response.status() >= 400 && response.status() < 500) {
// 4xx错误,客户端错误
return new RuntimeException("客户端请求错误: " + response.reason());
} else if (response.status() >= 500) {
// 5xx错误,服务器错误
return new RuntimeException("服务器内部错误: " + response.reason());
}
return defaultErrorDecoder.decode(methodKey, response);
}
}
}

View File

@@ -3,168 +3,4 @@ server:
spring:
application:
name: basic
main:
allow-bean-definition-overriding: true
mvc:
# 启用hiddenMethod过滤器(头像上传)
hiddenmethod:
filter:
enabled: true
datasource: # 数据源的相关配置
type: com.zaxxer.hikari.HikariDataSource # 数据源类型:HikariCP
driver-class-name: com.mysql.cj.jdbc.Driver # mysql驱动
url: jdbc:mysql://106.14.162.214:3306/zt?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: zt
password: ZhEnTuAi2024zHeNtUaI
hikari:
minimum-idle: 10 # 最小连接数
maximum-pool-size: 50 # 最大连接数
connection-timeout: 30000 # 连接超时30秒
idle-timeout: 600000 # 空闲超时10分钟
max-lifetime: 1800000 # 最大生命周期30分钟
leak-detection-threshold: 60000 # 连接泄漏检测60秒
auto-commit: true # 事务自动提交
pool-name: HikariCP # 连接池名字
jackson:
date-format: "yyyy-MM-dd HH:mm:ss"
time-zone: GMT+8
# 配置用户头像存放静态资源文件夹
# 配置请求文件大小
servlet:
multipart:
max-file-size: 500MB
max-request-size: 500MB
threads:
virtual:
enabled: true
web:
resources:
static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
data:
redis:
host: 10.59.3.218
port: 6379
password: ZhEnTuAi
timeout: 40000
# MyBatis
mybatis-plus:
configuration:
# 开启驼峰命名法
map-underscore-to-camel-case: true
use-generated-keys: true
# 指定使用的日志配置文件
logging:
config: classpath:logback-spring.xml
# 存储
storage:
defaultUse: "assets"
configs:
- name: "faces"
type: "ALI_OSS"
config:
endpoint: "https://oss-cn-shanghai.aliyuncs.com"
accessKeyId: "LTAI5tCa641QdNHH9Ybg9u7V"
accessKeySecret: "RRVIgekoqx96Fgm2Gs7eQshMShcEpk"
bucketName: "frametour-assets"
prefix: "user-faces/"
url: "https://frametour-assets.oss-cn-shanghai.aliyuncs.com/"
region: "cn-shanghai"
- name: "assets"
type: "ALI_OSS"
config:
endpoint: "https://oss-cn-shanghai.aliyuncs.com"
accessKeyId: "LTAI5tCa641QdNHH9Ybg9u7V"
accessKeySecret: "RRVIgekoqx96Fgm2Gs7eQshMShcEpk"
bucketName: "frametour-assets"
prefix: "user-assets/"
url: "https://oss.zhentuai.com"
region: "cn-shanghai"
- name: "assets-ext"
type: "ALI_OSS"
config:
endpoint: "https://oss-cn-shanghai.aliyuncs.com"
accessKeyId: "LTAI5tCa641QdNHH9Ybg9u7V"
accessKeySecret: "RRVIgekoqx96Fgm2Gs7eQshMShcEpk"
bucketName: "frametour-assets"
prefix: "user-assets/"
url: "https://oss.zhentuai.com"
region: "cn-shanghai"
- name: "video"
type: "ALI_OSS"
config:
endpoint: "https://oss-cn-shanghai.aliyuncs.com"
accessKeyId: "LTAI5tCa641QdNHH9Ybg9u7V"
accessKeySecret: "RRVIgekoqx96Fgm2Gs7eQshMShcEpk"
bucketName: "frametour-assets"
prefix: "user-video/"
url: "https://oss.zhentuai.com"
region: "cn-shanghai"
- name: "chaosheng"
type: "AWS_OSS"
config:
endpoint: "https://obs-cq.cucloud.cn"
accessKeyId: "5E628198FFEC47CEAFC211C341C60F767900"
accessKeySecret: "944346D1940E4AC6B5FCF981C7E589116498"
bucketName: "wsaiphoto"
prefix: "user-video/"
url: "https://wsaiphoto.obs-cq.cucloud.cn"
region: "obs-cq"
#人脸检测
facebody:
default-use: "zt"
configs:
- name: "zt"
type: ALI
config:
accessKeyId: "LTAI5tMwrmxVcUEKoH5QzLHx"
accessKeySecret: "ZCIP8aKx1jwX1wkeYIPQEDZ8fPtN1c"
region: "cn-shanghai"
#支付
pay:
default-use: zt
configs:
- name: zt
type: WX_MP_PAY
config:
merchantId: "1700540331"
appId: "wxe7ff26af70bfc37c"
privateKey: "-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDHwDoab8iRX4vn
Ta3a+gh5Z3wcyTM3VkWhkAPJGNJhaNgzOBI9b4v1x+uSZ4To2uXhQE5hvcxWSfNZ
F7H6yp+6estADeZLpdXLBDBvPDOjEGhG7YUHJjWnFh5eY2Rtnx4/7x+xCsRS+Mtq
Mx6KMrb4UZYNIq14peTQgfICkDBdqnUIkFjDmChUy0LlsSFW8AyJIqrBec5VZWf/
QqsIBf9vsTVxrqlX+5owYZuPYoFOIQJFUW8dfU20qk//BxiDjPFZBLNa02aIEbNF
SXZE2TlKD7zD0Qv/w95Hf1V+a/cxP2B6LNtqwioIdHbU6Axu7uHkr0RSPXPsvOWY
eUIpGP4bAgMBAAECggEBALm34w3TYtKu2D/tfDh9gkWGTuHgu6q2nrTxVmOxnWEN
/v3YIzVVsfaJs2ACuZNaeqNsi7PaqNKNnSD3o/X+UHYsVy8t/THWdSl1sqapfYUd
6yYPDkEwaG/6Y6/0j1pQt+pPpNKRpSlTwqTx9HIfZvkHuhBqbokfDNhECUQS1bUu
8pmyALIkuXu38B/xCs/EH+Lp1N69IA0mwalT/2zi9ZJhGNg5OWBzNbkMKf2Tck+9
SnS6s+pAT6YxB9qYhg645H3dRKXdeSYbjI+uiIe/7cJvTxfQDLD/oDap2TJQH3iM
SVbSfNFbR1tH6PiYx9eXeElEg2QXEPztbf8NcUlGOGkCgYEA8PewLVzUdHD20KkX
tZP+JCvSTy2f0kPHTc3+BU+MOlG8uZzsK06efo+X5BGkMRj8P+MPp9rJQr5IJqJl
GpeA1XpF54v2DIcNcjrQHIJ9XWoWirZjMWRVn4D5laQTI+FEV8pyFfJJOLIgBe9b
c6hBHNnAB4Y6JZ/s+US4ymK4wQ0CgYEA1DZMcuyiUgjnprUsOIokpg8RxGLIvB5+
2FyCffa/CikMRU8bRtHdpJLguArrR9rEILU6fICPARdlCg8r0XMrvniiAaS3YlDj
tSxbfrrS6xySvVFdNusv/j3i5/76IedsSArJLeQpIZMZ3n6q/dmq4kbWh+bT/5z+
MVpjWixpYccCgYBtaEh5kDh2VgP6YYv+SZ+OVMc8Y/64vUV0sh6v0ppcsFf7/p/M
WfnkhNX2G3xtPmbpqvKkx9WxlCu2Pu2g0UERrF6o7wdcUMVuI/3xs92v2Ec72+vV
tTSbIzgvFTwLgnBBXA3IoSVVtKqNh0wCi1Zk/wkNYYhtJNu3odg1K/Wu0QKBgBOv
IbI7TucrGkm1Xm+0KKgal7xOqW4BqiRpmFUU0S2hFxlKuC3+g3+jfCK2KJLWsQCT
ruQjjKA+Skn/lEHuW+1kBSr/217MQALrJWWA8NWMJfRXmrzgXehIV0bLuOnyLHIW
Rgjys/oAShMATt4TFa29gmLCv4FjT5TGXJbdrby7AoGBAOqER71Vi90UV84sYLWx
DSW/3q5/QrndmeeaQALslA6sidnTZWqlhMsNPl8dfBKl6xnrCdcaeY5xk/xmVOqP
0KedJgT+IjLwY1yJ9QOBd02ejAY3qNlKt2NiSWv2GBY1cZxqhkHNaI/UWI9CAyH5
YfkdFNxtYLdVAwuylMoV3fKI
-----END PRIVATE KEY-----"
serialNumber: "2AD248A1D15F0056D6AEC20B4EEF53F3C32CBFF0"
apiV3Key: ZHENTUAIzhentuaiZHENTUAIzhentuai
notify:
defaultUse: ""
configs:
- name: "developer"
type: "SERVER_CHAN"
config:
key: "sctp747ta-wkq4hlzb6e42t8d1sm8wbc9g"
name: zt

View File

@@ -3,170 +3,4 @@ server:
spring:
application:
name: basic
main:
allow-bean-definition-overriding: true
mvc:
# 启用hiddenMethod过滤器(头像上传)
hiddenmethod:
filter:
enabled: true
datasource: # 数据源的相关配置
type: com.zaxxer.hikari.HikariDataSource # 数据源类型:HikariCP
driver-class-name: com.mysql.cj.jdbc.Driver # mysql驱动
url: jdbc:mysql://127.0.0.1:3306/zt?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: zt
password: ZhEnTuAi2024zHeNtUaI
hikari:
connection-timeout: 10000 # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 默认:30秒
minimum-idle: 4 # 最小连接数
maximum-pool-size: 64 # 最大连接数
auto-commit: true # 事务自动提交
idle-timeout: 120000 # 连接超时的最大时长(毫秒)
pool-name: HikariCP # 连接池名字
max-lifetime: 300000 # 连接的生命时长(毫秒)
connection-test-query: SELECT 1 # 连接测试语句
jackson:
date-format: "yyyy-MM-dd HH:mm:ss"
time-zone: GMT+8
# 配置用户头像存放静态资源文件夹
# 配置请求文件大小
servlet:
multipart:
max-file-size: 500MB
max-request-size: 500MB
threads:
virtual:
enabled: true
web:
resources:
static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
data:
redis:
host: 127.0.0.1
port: 6379
password: ''
timeout: 5000
# MyBatis
mybatis-plus:
configuration:
# 开启驼峰命名法
map-underscore-to-camel-case: true
use-generated-keys: true
# 指定使用的日志配置文件
logging:
config: classpath:logback-spring-prod.xml
# 存储
storage:
defaultUse: "assets"
configs:
- name: "faces"
type: "ALI_OSS"
config:
endpoint: "https://oss-cn-shanghai-internal.aliyuncs.com"
accessKeyId: "LTAI5tCa641QdNHH9Ybg9u7V"
accessKeySecret: "RRVIgekoqx96Fgm2Gs7eQshMShcEpk"
bucketName: "frametour-assets"
prefix: "user-faces/"
url: "https://frametour-assets.oss-cn-shanghai.aliyuncs.com/"
region: "cn-shanghai"
- name: "assets"
type: "ALI_OSS"
config:
endpoint: "https://oss-cn-shanghai-internal.aliyuncs.com"
accessKeyId: "LTAI5tCa641QdNHH9Ybg9u7V"
accessKeySecret: "RRVIgekoqx96Fgm2Gs7eQshMShcEpk"
bucketName: "frametour-assets"
prefix: "user-assets/"
url: "https://oss.zhentuai.com"
region: "cn-shanghai"
- name: "assets-ext"
type: "ALI_OSS"
config:
endpoint: "https://oss-cn-shanghai.aliyuncs.com"
accessKeyId: "LTAI5tCa641QdNHH9Ybg9u7V"
accessKeySecret: "RRVIgekoqx96Fgm2Gs7eQshMShcEpk"
bucketName: "frametour-assets"
prefix: "user-assets/"
url: "https://oss.zhentuai.com"
region: "cn-shanghai"
- name: "video"
type: "ALI_OSS"
config:
endpoint: "https://oss-cn-shanghai.aliyuncs.com"
accessKeyId: "LTAI5tCa641QdNHH9Ybg9u7V"
accessKeySecret: "RRVIgekoqx96Fgm2Gs7eQshMShcEpk"
bucketName: "frametour-assets"
prefix: "user-video/"
url: "https://oss.zhentuai.com"
region: "cn-shanghai"
- name: "chaosheng"
type: "AWS_OSS"
config:
endpoint: "https://obs-cq.cucloud.cn"
accessKeyId: "5E628198FFEC47CEAFC211C341C60F767900"
accessKeySecret: "944346D1940E4AC6B5FCF981C7E589116498"
bucketName: "wsaiphoto"
prefix: "user-video/"
url: "https://wsaiphoto.obs-cq.cucloud.cn"
region: "obs-cq"
#人脸检测
facebody:
default-use: "zt"
configs:
- name: "zt"
type: ALI
config:
accessKeyId: "LTAI5tMwrmxVcUEKoH5QzLHx"
accessKeySecret: "ZCIP8aKx1jwX1wkeYIPQEDZ8fPtN1c"
region: "cn-shanghai"
#支付
pay:
default-use: zt
configs:
- name: zt
type: WX_MP_PAY
config:
merchantId: "1700540331"
appId: "wxe7ff26af70bfc37c"
privateKey: "-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDHwDoab8iRX4vn
Ta3a+gh5Z3wcyTM3VkWhkAPJGNJhaNgzOBI9b4v1x+uSZ4To2uXhQE5hvcxWSfNZ
F7H6yp+6estADeZLpdXLBDBvPDOjEGhG7YUHJjWnFh5eY2Rtnx4/7x+xCsRS+Mtq
Mx6KMrb4UZYNIq14peTQgfICkDBdqnUIkFjDmChUy0LlsSFW8AyJIqrBec5VZWf/
QqsIBf9vsTVxrqlX+5owYZuPYoFOIQJFUW8dfU20qk//BxiDjPFZBLNa02aIEbNF
SXZE2TlKD7zD0Qv/w95Hf1V+a/cxP2B6LNtqwioIdHbU6Axu7uHkr0RSPXPsvOWY
eUIpGP4bAgMBAAECggEBALm34w3TYtKu2D/tfDh9gkWGTuHgu6q2nrTxVmOxnWEN
/v3YIzVVsfaJs2ACuZNaeqNsi7PaqNKNnSD3o/X+UHYsVy8t/THWdSl1sqapfYUd
6yYPDkEwaG/6Y6/0j1pQt+pPpNKRpSlTwqTx9HIfZvkHuhBqbokfDNhECUQS1bUu
8pmyALIkuXu38B/xCs/EH+Lp1N69IA0mwalT/2zi9ZJhGNg5OWBzNbkMKf2Tck+9
SnS6s+pAT6YxB9qYhg645H3dRKXdeSYbjI+uiIe/7cJvTxfQDLD/oDap2TJQH3iM
SVbSfNFbR1tH6PiYx9eXeElEg2QXEPztbf8NcUlGOGkCgYEA8PewLVzUdHD20KkX
tZP+JCvSTy2f0kPHTc3+BU+MOlG8uZzsK06efo+X5BGkMRj8P+MPp9rJQr5IJqJl
GpeA1XpF54v2DIcNcjrQHIJ9XWoWirZjMWRVn4D5laQTI+FEV8pyFfJJOLIgBe9b
c6hBHNnAB4Y6JZ/s+US4ymK4wQ0CgYEA1DZMcuyiUgjnprUsOIokpg8RxGLIvB5+
2FyCffa/CikMRU8bRtHdpJLguArrR9rEILU6fICPARdlCg8r0XMrvniiAaS3YlDj
tSxbfrrS6xySvVFdNusv/j3i5/76IedsSArJLeQpIZMZ3n6q/dmq4kbWh+bT/5z+
MVpjWixpYccCgYBtaEh5kDh2VgP6YYv+SZ+OVMc8Y/64vUV0sh6v0ppcsFf7/p/M
WfnkhNX2G3xtPmbpqvKkx9WxlCu2Pu2g0UERrF6o7wdcUMVuI/3xs92v2Ec72+vV
tTSbIzgvFTwLgnBBXA3IoSVVtKqNh0wCi1Zk/wkNYYhtJNu3odg1K/Wu0QKBgBOv
IbI7TucrGkm1Xm+0KKgal7xOqW4BqiRpmFUU0S2hFxlKuC3+g3+jfCK2KJLWsQCT
ruQjjKA+Skn/lEHuW+1kBSr/217MQALrJWWA8NWMJfRXmrzgXehIV0bLuOnyLHIW
Rgjys/oAShMATt4TFa29gmLCv4FjT5TGXJbdrby7AoGBAOqER71Vi90UV84sYLWx
DSW/3q5/QrndmeeaQALslA6sidnTZWqlhMsNPl8dfBKl6xnrCdcaeY5xk/xmVOqP
0KedJgT+IjLwY1yJ9QOBd02ejAY3qNlKt2NiSWv2GBY1cZxqhkHNaI/UWI9CAyH5
YfkdFNxtYLdVAwuylMoV3fKI
-----END PRIVATE KEY-----"
serialNumber: "2AD248A1D15F0056D6AEC20B4EEF53F3C32CBFF0"
apiV3Key: ZHENTUAIzhentuaiZHENTUAIzhentuai
# 通知到人
notify:
defaultUse: "developer"
configs:
- name: "developer"
type: "SERVER_CHAN"
config:
key: "sctp747ta-wkq4hlzb6e42t8d1sm8wbc9g"
name: zt

View File

@@ -0,0 +1,22 @@
server:
port: 8030
spring:
application:
name: zt
cloud:
nacos:
server-addr: 100.64.0.12:30048
username: zt
password: ZhEnTuAi
discovery:
server-addr: 100.64.0.12:30048
namespace: ${spring.profiles.active}
username: zt
password: ZhEnTuAi
config:
server-addr: 100.64.0.12:30048
namespace: ${spring.profiles.active}
username: zt
password: ZhEnTuAi
file-extension: yml

View File

@@ -0,0 +1,22 @@
server:
port: 8031
spring:
application:
name: zt
cloud:
nacos:
server-addr: 127.0.0.1:30048
username: zt
password: ZhEnTuAi
discovery:
server-addr: 127.0.0.1:30048
namespace: ${spring.profiles.active}
username: zt
password: ZhEnTuAi
config:
server-addr: 127.0.0.1:30048
namespace: ${spring.profiles.active}
username: zt
password: ZhEnTuAi
file-extension: yml

View File

@@ -0,0 +1,3 @@
spring:
profiles:
active: dev