feat: 线程池扩容、会员注册和过期逻辑优化、API管理页面显示当前配置

- 线程池扩容:TaskQueueService 10->20, AsyncConfig 核心5->10/最大20->40/队列50->100
- 新用户注册自动创建免费会员记录(永久有效到2099年)
- 付费会员过期自动降级为免费会员并清零积分
- API管理页面显示当前API密钥(脱敏)和端点
- 修复StoryboardVideoCreate.vue语法错误
This commit is contained in:
AIGC Developer
2026-01-11 21:32:33 +08:00
parent a66bd806b2
commit 8404cb2b7a
50 changed files with 2635 additions and 971 deletions

View File

@@ -62,3 +62,12 @@ tencent.ses.region=ap-hongkong
tencent.ses.secret-id=AKIDoaEjFbqxxqZAcv8EE6oZCg2IQPG1fCxm
tencent.ses.secret-key=nR83I79FOSpGcqNo7JXkqnU8g7SjsxuG
tencent.ses.template-id=154360
# 噜噜支付(彩虹易支付)配置
lulupay.api-url=https://api.dulupay.com/
lulupay.pid=1516
lulupay.merchant-key=lqzsNGKPxNssG1Dxa19GgPsPSpxGKXg9
lulupay.platform-public-key=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsNrpsDeXhrPC+h3Y9FEUilZjhMI9MPOEcFvJgy4PGCEMoxCpQHps3F2sGf7MBuz4zbTYDY1tMFIQHDWRnE5I+JLttA3k5GXcXMysbcbnXcXrlMQ4h5yJOs8n73Q+K9vYLgBxjp+7MWzcwAANyZoE2mdw3ihRs8Rwz3ErcCjVdFePwLNQ2K9YXREOo/+QDh6wDyq3u7pU62Ja3dAWfEwj1LCibhRqGcQui7PBseokieL6X3++nKgrzI+C5uxgUlAr7uRwDqBWUEY0zveQMVT8o37zKH0BWumW7H5iZFAZ/OAYjH8zljR6AxFATtg2GdVRUsyhr2IBqBfXVN1Pmpjv9wIDAQAB
lulupay.notify-url=https://vionow.com/api/payments/lulupay/notify
lulupay.return-url=https://vionow.com/api/payments/lulupay/return

View File

@@ -104,8 +104,14 @@ spring.servlet.multipart.max-file-size=500MB
spring.servlet.multipart.max-request-size=600MB
# 生产环境日志配置
# 日志文件路径 - 使用绝对路径确保日志目录正确
logging.file.path=/www/wwwroot/logs
logging.level.root=INFO
logging.level.com.example.demo=INFO
logging.level.com.example.demo.service.OrderService=DEBUG
logging.level.com.example.demo.service.PaymentService=DEBUG
logging.level.com.example.demo.service.LuluPayService=DEBUG
logging.level.com.example.demo.controller.LuluPayCallbackController=DEBUG
logging.level.com.example.demo.scheduler=WARN
logging.level.com.example.demo.scheduler.OrderScheduler=WARN
logging.level.org.springframework.security=WARN
@@ -115,7 +121,8 @@ logging.level.org.hibernate.SQL=WARN
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=WARN
logging.level.org.hibernate.orm.jdbc.bind=WARN
logging.file.name=${LOG_FILE_PATH:./logs/application.log}
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
# 视频处理配置
# 临时文件目录(相对路径:基于应用运行目录,或绝对路径)
@@ -170,3 +177,16 @@ tencent.cos.prefix=aigc
# ============================================
# 噜噜支付(彩虹易支付)配置 (生产环境)
# ============================================
lulupay.api-url=https://api.dulupay.com/
lulupay.pid=1516
lulupay.merchant-key=lqzsNGKPxNssG1Dxa19GgPsPSpxGKXg9
lulupay.platform-public-key=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsNrpsDeXhrPC+h3Y9FEUilZjhMI9MPOEcFvJgy4PGCEMoxCpQHps3F2sGf7MBuz4zbTYDY1tMFIQHDWRnE5I+JLttA3k5GXcXMysbcbnXcXrlMQ4h5yJOs8n73Q+K9vYLgBxjp+7MWzcwAANyZoE2mdw3ihRs8Rwz3ErcCjVdFePwLNQ2K9YXREOo/+QDh6wDyq3u7pU62Ja3dAWfEwj1LCibhRqGcQui7PBseokieL6X3++nKgrzI+C5uxgUlAr7uRwDqBWUEY0zveQMVT8o37zKH0BWumW7H5iZFAZ/OAYjH8zljR6AxFATtg2GdVRUsyhr2IBqBfXVN1Pmpjv9wIDAQAB
lulupay.notify-url=https://www.vionow.com/api/payments/lulupay/notify
lulupay.return-url=https://www.vionow.com/api/payments/lulupay/return
# 前端URL配置支付成功后跳转
app.frontend-url=https://www.vionow.com

View File

@@ -7,7 +7,7 @@
-- ============================================
-- 超级管理员权限自动设置
-- ============================================
-- 应用启动时自动将 984523799@qq.com 设置为超级管理员
-- 应用启动时自动将 shanghairuiyi2026@163.com 设置为超级管理员
-- 如果该用户存在,则更新其角色为超级管理员
UPDATE users
SET role = 'ROLE_SUPER_ADMIN',

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志目录从环境变量或属性读取默认为当前目录下的logs -->
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="./logs"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/application.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/application.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/error.log</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="PAYMENT_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/payment.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/payment.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<logger name="com.example.demo.service.OrderService" level="DEBUG" additivity="true">
<appender-ref ref="PAYMENT_FILE"/>
</logger>
<logger name="com.example.demo.service.PaymentService" level="DEBUG" additivity="true">
<appender-ref ref="PAYMENT_FILE"/>
</logger>
<logger name="com.example.demo.service.LuluPayService" level="DEBUG" additivity="true">
<appender-ref ref="PAYMENT_FILE"/>
</logger>
<logger name="com.example.demo.controller.LuluPayCallbackController" level="DEBUG" additivity="true">
<appender-ref ref="PAYMENT_FILE"/>
</logger>
<logger name="com.example.demo" level="INFO"/>
<logger name="org.hibernate.SQL" level="WARN"/>
<logger name="org.springframework.security" level="WARN"/>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ERROR_FILE"/>
</root>
</configuration>