123
This commit is contained in:
1
pom.xml
1
pom.xml
@@ -336,6 +336,7 @@
|
|||||||
<module>ruoyi-sms</module>
|
<module>ruoyi-sms</module>
|
||||||
<module>ruoyi-cai</module>
|
<module>ruoyi-cai</module>
|
||||||
<module>ruoyi-yunxin</module>
|
<module>ruoyi-yunxin</module>
|
||||||
|
<module>ruoyi-ad-websocket</module>
|
||||||
</modules>
|
</modules>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
|
|||||||
88
ruoyi-ad-websocket/pom.xml
Normal file
88
ruoyi-ad-websocket/pom.xml
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>com.ruoyi</groupId>
|
||||||
|
<artifactId>ruoyi-vue-plus</artifactId>
|
||||||
|
<version>4.8.2</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<artifactId>ruoyi-ad-websocket</artifactId>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>8</maven.compiler.source>
|
||||||
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<!-- spring-boot-devtools -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-devtools</artifactId>
|
||||||
|
<optional>true</optional> <!-- 表示依赖不会传递 -->
|
||||||
|
</dependency>
|
||||||
|
<!-- Mysql驱动包 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.mysql</groupId>
|
||||||
|
<artifactId>mysql-connector-j</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!-- 核心模块-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.ruoyi</groupId>
|
||||||
|
<artifactId>ruoyi-framework</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.ruoyi</groupId>
|
||||||
|
<artifactId>ruoyi-system</artifactId>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<artifactId>forest-core</artifactId>
|
||||||
|
<groupId>com.dtflys.forest</groupId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.ruoyi</groupId>
|
||||||
|
<artifactId>ruoyi-oss</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.ruoyi</groupId>
|
||||||
|
<artifactId>ruoyi-cai</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<finalName>websocket</finalName>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
<version>${spring-boot.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>repackage</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-war-plugin</artifactId>
|
||||||
|
<version>3.2.2</version>
|
||||||
|
<configuration>
|
||||||
|
<failOnMissingWebXml>false</failOnMissingWebXml>
|
||||||
|
<warName>${project.artifactId}</warName>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package com.ruoyi;
|
||||||
|
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
|
||||||
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启动程序
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
*/
|
||||||
|
|
||||||
|
@SpringBootApplication
|
||||||
|
@EnableScheduling
|
||||||
|
public class RuoYiWebSocketApplication {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.setProperty("spring.devtools.restart.enabled", "false");
|
||||||
|
SpringApplication application = new SpringApplication(RuoYiWebSocketApplication.class);
|
||||||
|
application.setApplicationStartup(new BufferingApplicationStartup(2048));
|
||||||
|
application.run(args);
|
||||||
|
System.out.println("(♥◠‿◠)ノ゙ Web Socket 服务启动成功 ლ(´ڡ`ლ)゙");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package com.ruoyi;
|
||||||
|
|
||||||
|
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||||
|
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web容器中进行部署
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
*/
|
||||||
|
public class RuoYiWebSocketServletInitializer extends SpringBootServletInitializer {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
|
||||||
|
return application.sources(RuoYiWebSocketApplication.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
178
ruoyi-ad-websocket/src/main/resources/application-dev.yml
Normal file
178
ruoyi-ad-websocket/src/main/resources/application-dev.yml
Normal file
@@ -0,0 +1,178 @@
|
|||||||
|
--- # 监控中心配置
|
||||||
|
#spring.boot.admin.client:
|
||||||
|
# # 增加客户端开关
|
||||||
|
# enabled: true
|
||||||
|
# url: http://localhost:9090/admin
|
||||||
|
# instance:
|
||||||
|
# service-host-type: IP
|
||||||
|
# username: ruoyi
|
||||||
|
# password: 123456
|
||||||
|
|
||||||
|
--- # xxl-job 配置
|
||||||
|
xxl.job:
|
||||||
|
# 执行器开关
|
||||||
|
enabled: false
|
||||||
|
# 调度中心地址:如调度中心集群部署存在多个地址则用逗号分隔。
|
||||||
|
admin-addresses: http://localhost:9100/xxl-job-admin
|
||||||
|
# 执行器通讯TOKEN:非空时启用
|
||||||
|
access-token: xxl-job
|
||||||
|
executor:
|
||||||
|
# 执行器AppName:执行器心跳注册分组依据;为空则关闭自动注册
|
||||||
|
appname: xxl-job-executor
|
||||||
|
# 28080 端口 随着主应用端口飘逸 避免集群冲突
|
||||||
|
port: 2${server.port}
|
||||||
|
# 执行器注册:默认IP:PORT
|
||||||
|
address:
|
||||||
|
# 执行器IP:默认自动获取IP
|
||||||
|
ip:
|
||||||
|
# 执行器运行日志文件存储磁盘路径
|
||||||
|
logpath: ./logs/xxl-job
|
||||||
|
# 执行器日志文件保存天数:大于3生效
|
||||||
|
logretentiondays: 30
|
||||||
|
|
||||||
|
--- # 数据源配置
|
||||||
|
spring:
|
||||||
|
datasource:
|
||||||
|
type: com.zaxxer.hikari.HikariDataSource
|
||||||
|
# 动态数据源文档 https://www.kancloud.cn/tracy5546/dynamic-datasource/content
|
||||||
|
dynamic:
|
||||||
|
# 性能分析插件(有性能损耗 不建议生产环境使用)
|
||||||
|
p6spy: true
|
||||||
|
# 设置默认的数据源或者数据源组,默认值即为 master
|
||||||
|
primary: master
|
||||||
|
# 严格模式 匹配不到数据源则报错
|
||||||
|
strict: true
|
||||||
|
datasource:
|
||||||
|
# 主库数据源
|
||||||
|
master:
|
||||||
|
type: ${spring.datasource.type}
|
||||||
|
driverClassName: com.mysql.cj.jdbc.Driver
|
||||||
|
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
|
||||||
|
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
|
||||||
|
url: jdbc:mysql://124.222.254.188:4306/cai-new?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
|
||||||
|
username: root
|
||||||
|
password: 383200134
|
||||||
|
# 从库数据源
|
||||||
|
slave:
|
||||||
|
lazy: true
|
||||||
|
type: ${spring.datasource.type}
|
||||||
|
driverClassName: com.mysql.cj.jdbc.Driver
|
||||||
|
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
|
||||||
|
username:
|
||||||
|
password:
|
||||||
|
hikari:
|
||||||
|
# 最大连接池数量
|
||||||
|
maxPoolSize: 20
|
||||||
|
# 最小空闲线程数量
|
||||||
|
minIdle: 10
|
||||||
|
# 配置获取连接等待超时的时间
|
||||||
|
connectionTimeout: 30000
|
||||||
|
# 校验超时时间
|
||||||
|
validationTimeout: 5000
|
||||||
|
# 空闲连接存活最大时间,默认10分钟
|
||||||
|
idleTimeout: 600000
|
||||||
|
# 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认30分钟
|
||||||
|
maxLifetime: 1800000
|
||||||
|
# 多久检查一次连接的活性
|
||||||
|
keepaliveTime: 30000
|
||||||
|
|
||||||
|
--- # redis 单机配置(单机与集群只能开启一个另一个需要注释掉)
|
||||||
|
spring:
|
||||||
|
redis:
|
||||||
|
# 地址
|
||||||
|
host: 124.222.254.188
|
||||||
|
# 端口,默认为6379
|
||||||
|
port: 9379
|
||||||
|
# 数据库索引
|
||||||
|
database: 15
|
||||||
|
# 密码(如没有密码请注释掉)
|
||||||
|
password: 383200134
|
||||||
|
# 连接超时时间
|
||||||
|
timeout: 15s
|
||||||
|
# 是否开启ssl
|
||||||
|
ssl: false
|
||||||
|
|
||||||
|
redisson:
|
||||||
|
# redis key前缀
|
||||||
|
keyPrefix:
|
||||||
|
# 线程池数量
|
||||||
|
threads: 4
|
||||||
|
# Netty线程池数量
|
||||||
|
nettyThreads: 8
|
||||||
|
# 单节点配置
|
||||||
|
singleServerConfig:
|
||||||
|
# 客户端名称
|
||||||
|
clientName: ${ruoyi.name}
|
||||||
|
# 最小空闲连接数
|
||||||
|
connectionMinimumIdleSize: 8
|
||||||
|
# 连接池大小
|
||||||
|
connectionPoolSize: 32
|
||||||
|
# 连接空闲超时,单位:毫秒
|
||||||
|
idleConnectionTimeout: 10000
|
||||||
|
# 命令等待超时,单位:毫秒
|
||||||
|
timeout: 3000
|
||||||
|
# 发布和订阅连接池大小
|
||||||
|
subscriptionConnectionPoolSize: 50
|
||||||
|
|
||||||
|
--- # mail 邮件发送
|
||||||
|
mail:
|
||||||
|
enabled: false
|
||||||
|
host: smtp.163.com
|
||||||
|
port: 465
|
||||||
|
# 是否需要用户名密码验证
|
||||||
|
auth: true
|
||||||
|
# 发送方,遵循RFC-822标准
|
||||||
|
from: xxx@163.com
|
||||||
|
# 用户名(注意:如果使用foxmail邮箱,此处user为qq号)
|
||||||
|
user: xxx@163.com
|
||||||
|
# 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助)
|
||||||
|
pass: xxxxxxxxxx
|
||||||
|
# 使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。
|
||||||
|
starttlsEnable: true
|
||||||
|
# 使用SSL安全连接
|
||||||
|
sslEnable: true
|
||||||
|
# SMTP超时时长,单位毫秒,缺省值不超时
|
||||||
|
timeout: 0
|
||||||
|
# Socket连接超时值,单位毫秒,缺省值不超时
|
||||||
|
connectionTimeout: 0
|
||||||
|
|
||||||
|
--- # sms 短信 支持 阿里云 腾讯云 云片 等等各式各样的短信服务商
|
||||||
|
# https://wind.kim/doc/start 文档地址 各个厂商可同时使用
|
||||||
|
sms:
|
||||||
|
# 阿里云 dysmsapi.aliyuncs.com
|
||||||
|
alibaba:
|
||||||
|
#请求地址 默认为 dysmsapi.aliyuncs.com 如无特殊改变可以不用设置
|
||||||
|
requestUrl: dysmsapi.aliyuncs.com
|
||||||
|
#阿里云的accessKey
|
||||||
|
accessKeyId: xxxxxxx
|
||||||
|
#阿里云的accessKeySecret
|
||||||
|
accessKeySecret: xxxxxxx
|
||||||
|
#短信签名
|
||||||
|
signature: 测试
|
||||||
|
tencent:
|
||||||
|
#请求地址默认为 sms.tencentcloudapi.com 如无特殊改变可不用设置
|
||||||
|
requestUrl: sms.tencentcloudapi.com
|
||||||
|
#腾讯云的accessKey
|
||||||
|
accessKeyId: xxxxxxx
|
||||||
|
#腾讯云的accessKeySecret
|
||||||
|
accessKeySecret: xxxxxxx
|
||||||
|
#短信签名
|
||||||
|
signature: 测试
|
||||||
|
#短信sdkAppId
|
||||||
|
sdkAppId: appid
|
||||||
|
#地域信息默认为 ap-guangzhou 如无特殊改变可不用设置
|
||||||
|
territory: ap-guangzhou
|
||||||
|
spring:
|
||||||
|
rabbitmq:
|
||||||
|
addresses: 124.222.254.188 #ip地址
|
||||||
|
username: admin # 账号
|
||||||
|
password: 383200134 # 密码
|
||||||
|
port: 5672
|
||||||
|
virtual-host: /cai-dev
|
||||||
|
agora:
|
||||||
|
app-id: app
|
||||||
|
key: 627b8e17b0c616c1346cba2d87e10251
|
||||||
|
secret: c47628fe2538
|
||||||
|
yunxin:
|
||||||
|
app-key: 748496374b04344194c68b53e411e09c
|
||||||
|
app-secret: 77c09917d2de
|
||||||
181
ruoyi-ad-websocket/src/main/resources/application-prod.yml
Normal file
181
ruoyi-ad-websocket/src/main/resources/application-prod.yml
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
--- # 临时文件存储位置 避免临时文件被系统清理报错
|
||||||
|
spring.servlet.multipart.location: /ruoyi/server/temp
|
||||||
|
|
||||||
|
--- # 监控中心配置
|
||||||
|
#spring.boot.admin.client:
|
||||||
|
# # 增加客户端开关
|
||||||
|
# enabled: false
|
||||||
|
# url: http://localhost:9090/admin
|
||||||
|
# instance:
|
||||||
|
# service-host-type: IP
|
||||||
|
# username: ruoyi
|
||||||
|
# password: 123456
|
||||||
|
|
||||||
|
--- # xxl-job 配置
|
||||||
|
xxl.job:
|
||||||
|
# 执行器开关
|
||||||
|
enabled: false
|
||||||
|
# 调度中心地址:如调度中心集群部署存在多个地址则用逗号分隔。
|
||||||
|
admin-addresses: http://localhost:9100/xxl-job-admin
|
||||||
|
# 执行器通讯TOKEN:非空时启用
|
||||||
|
access-token: xxl-job
|
||||||
|
executor:
|
||||||
|
# 执行器AppName:执行器心跳注册分组依据;为空则关闭自动注册
|
||||||
|
appname: xxl-job-executor
|
||||||
|
# 28080 端口 随着主应用端口飘逸 避免集群冲突
|
||||||
|
port: 2${server.port}
|
||||||
|
# 执行器注册:默认IP:PORT
|
||||||
|
address:
|
||||||
|
# 执行器IP:默认自动获取IP
|
||||||
|
ip:
|
||||||
|
# 执行器运行日志文件存储磁盘路径
|
||||||
|
logpath: ./logs/xxl-job
|
||||||
|
# 执行器日志文件保存天数:大于3生效
|
||||||
|
logretentiondays: 30
|
||||||
|
|
||||||
|
--- # 数据源配置
|
||||||
|
spring:
|
||||||
|
datasource:
|
||||||
|
type: com.zaxxer.hikari.HikariDataSource
|
||||||
|
# 动态数据源文档 https://www.kancloud.cn/tracy5546/dynamic-datasource/content
|
||||||
|
dynamic:
|
||||||
|
# 性能分析插件(有性能损耗 不建议生产环境使用)
|
||||||
|
p6spy: false
|
||||||
|
# 设置默认的数据源或者数据源组,默认值即为 master
|
||||||
|
primary: master
|
||||||
|
# 严格模式 匹配不到数据源则报错
|
||||||
|
strict: true
|
||||||
|
datasource:
|
||||||
|
# 主库数据源
|
||||||
|
master:
|
||||||
|
type: ${spring.datasource.type}
|
||||||
|
driverClassName: com.mysql.cj.jdbc.Driver
|
||||||
|
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
|
||||||
|
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
|
||||||
|
url: jdbc:mysql://localhost:4306/cai-new?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
|
||||||
|
username: root
|
||||||
|
password: 383200134
|
||||||
|
# 从库数据源
|
||||||
|
slave:
|
||||||
|
lazy: true
|
||||||
|
type: ${spring.datasource.type}
|
||||||
|
driverClassName: com.mysql.cj.jdbc.Driver
|
||||||
|
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
|
||||||
|
username:
|
||||||
|
password:
|
||||||
|
hikari:
|
||||||
|
# 最大连接池数量
|
||||||
|
maxPoolSize: 20
|
||||||
|
# 最小空闲线程数量
|
||||||
|
minIdle: 10
|
||||||
|
# 配置获取连接等待超时的时间
|
||||||
|
connectionTimeout: 30000
|
||||||
|
# 校验超时时间
|
||||||
|
validationTimeout: 5000
|
||||||
|
# 空闲连接存活最大时间,默认10分钟
|
||||||
|
idleTimeout: 600000
|
||||||
|
# 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认30分钟
|
||||||
|
maxLifetime: 1800000
|
||||||
|
# 多久检查一次连接的活性
|
||||||
|
keepaliveTime: 30000
|
||||||
|
|
||||||
|
--- # redis 单机配置(单机与集群只能开启一个另一个需要注释掉)
|
||||||
|
spring:
|
||||||
|
redis:
|
||||||
|
# 地址
|
||||||
|
host: localhost
|
||||||
|
# 端口,默认为6379
|
||||||
|
port: 9379
|
||||||
|
# 数据库索引
|
||||||
|
database: 15
|
||||||
|
# 密码(如没有密码请注释掉)
|
||||||
|
password: 383200134
|
||||||
|
# 连接超时时间
|
||||||
|
timeout: 10s
|
||||||
|
# 是否开启ssl
|
||||||
|
ssl: false
|
||||||
|
|
||||||
|
redisson:
|
||||||
|
# redis key前缀
|
||||||
|
keyPrefix:
|
||||||
|
# 线程池数量
|
||||||
|
threads: 16
|
||||||
|
# Netty线程池数量
|
||||||
|
nettyThreads: 32
|
||||||
|
# 单节点配置
|
||||||
|
singleServerConfig:
|
||||||
|
# 客户端名称
|
||||||
|
clientName: ${ruoyi.name}
|
||||||
|
# 最小空闲连接数
|
||||||
|
connectionMinimumIdleSize: 32
|
||||||
|
# 连接池大小
|
||||||
|
connectionPoolSize: 64
|
||||||
|
# 连接空闲超时,单位:毫秒
|
||||||
|
idleConnectionTimeout: 10000
|
||||||
|
# 命令等待超时,单位:毫秒
|
||||||
|
timeout: 3000
|
||||||
|
# 发布和订阅连接池大小
|
||||||
|
subscriptionConnectionPoolSize: 50
|
||||||
|
|
||||||
|
--- # mail 邮件发送
|
||||||
|
mail:
|
||||||
|
enabled: false
|
||||||
|
host: smtp.163.com
|
||||||
|
port: 465
|
||||||
|
# 是否需要用户名密码验证
|
||||||
|
auth: true
|
||||||
|
# 发送方,遵循RFC-822标准
|
||||||
|
from: xxx@163.com
|
||||||
|
# 用户名(注意:如果使用foxmail邮箱,此处user为qq号)
|
||||||
|
user: xxx@163.com
|
||||||
|
# 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助)
|
||||||
|
pass: xxxxxxxxxx
|
||||||
|
# 使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。
|
||||||
|
starttlsEnable: true
|
||||||
|
# 使用SSL安全连接
|
||||||
|
sslEnable: true
|
||||||
|
# SMTP超时时长,单位毫秒,缺省值不超时
|
||||||
|
timeout: 0
|
||||||
|
# Socket连接超时值,单位毫秒,缺省值不超时
|
||||||
|
connectionTimeout: 0
|
||||||
|
|
||||||
|
--- # sms 短信 支持 阿里云 腾讯云 云片 等等各式各样的短信服务商
|
||||||
|
# https://wind.kim/doc/start 文档地址 各个厂商可同时使用
|
||||||
|
sms:
|
||||||
|
# 阿里云 dysmsapi.aliyuncs.com
|
||||||
|
alibaba:
|
||||||
|
#请求地址 默认为 dysmsapi.aliyuncs.com 如无特殊改变可以不用设置
|
||||||
|
requestUrl: dysmsapi.aliyuncs.com
|
||||||
|
#阿里云的accessKey
|
||||||
|
accessKeyId: xxxxxxx
|
||||||
|
#阿里云的accessKeySecret
|
||||||
|
accessKeySecret: xxxxxxx
|
||||||
|
#短信签名
|
||||||
|
signature: 测试
|
||||||
|
tencent:
|
||||||
|
#请求地址默认为 sms.tencentcloudapi.com 如无特殊改变可不用设置
|
||||||
|
requestUrl: sms.tencentcloudapi.com
|
||||||
|
#腾讯云的accessKey
|
||||||
|
accessKeyId: xxxxxxx
|
||||||
|
#腾讯云的accessKeySecret
|
||||||
|
accessKeySecret: xxxxxxx
|
||||||
|
#短信签名
|
||||||
|
signature: 测试
|
||||||
|
#短信sdkAppId
|
||||||
|
sdkAppId: appid
|
||||||
|
#地域信息默认为 ap-guangzhou 如无特殊改变可不用设置
|
||||||
|
territory: ap-guangzhou
|
||||||
|
spring:
|
||||||
|
rabbitmq:
|
||||||
|
addresses: 127.0.0.1 #ip地址
|
||||||
|
username: admin # 账号
|
||||||
|
password: 383200134 # 密码
|
||||||
|
port: 5672
|
||||||
|
virtual-host: /cai
|
||||||
|
agora:
|
||||||
|
app-id: app
|
||||||
|
key: key
|
||||||
|
secret: secret
|
||||||
|
yunxin:
|
||||||
|
app-key: 748496374b04344194c68b53e411e09c
|
||||||
|
app-secret: 77c09917d2de
|
||||||
247
ruoyi-ad-websocket/src/main/resources/application.yml
Normal file
247
ruoyi-ad-websocket/src/main/resources/application.yml
Normal file
@@ -0,0 +1,247 @@
|
|||||||
|
# 项目相关配置
|
||||||
|
ruoyi:
|
||||||
|
# 名称
|
||||||
|
name: RuoYi-Vue-Plus
|
||||||
|
# 版本
|
||||||
|
version: ${ruoyi-vue-plus.version}
|
||||||
|
# 版权年份
|
||||||
|
copyrightYear: 2023
|
||||||
|
# 缓存懒加载
|
||||||
|
cacheLazy: false
|
||||||
|
ser
|
||||||
|
|
||||||
|
captcha:
|
||||||
|
# 页面 <参数设置> 可开启关闭 验证码校验
|
||||||
|
# 验证码类型 math 数组计算 char 字符验证
|
||||||
|
type: MATH
|
||||||
|
# line 线段干扰 circle 圆圈干扰 shear 扭曲干扰
|
||||||
|
category: CIRCLE
|
||||||
|
# 数字验证码位数
|
||||||
|
numberLength: 1
|
||||||
|
# 字符验证码长度
|
||||||
|
charLength: 4
|
||||||
|
# 开发环境配置
|
||||||
|
server:
|
||||||
|
# 服务器的HTTP端口,默认为8080
|
||||||
|
port: 8080
|
||||||
|
servlet:
|
||||||
|
# 应用的访问路径
|
||||||
|
context-path: /
|
||||||
|
# undertow 配置
|
||||||
|
undertow:
|
||||||
|
# HTTP post内容的最大大小。当值为-1时,默认值为大小是无限的
|
||||||
|
max-http-post-size: -1
|
||||||
|
# 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
|
||||||
|
# 每块buffer的空间大小,越小的空间被利用越充分
|
||||||
|
buffer-size: 512
|
||||||
|
# 是否分配的直接内存
|
||||||
|
direct-buffers: true
|
||||||
|
threads:
|
||||||
|
# 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
|
||||||
|
io: 8
|
||||||
|
# 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
|
||||||
|
worker: 256
|
||||||
|
|
||||||
|
# 日志配置
|
||||||
|
logging:
|
||||||
|
level:
|
||||||
|
com.ruoyi: @logging.level@
|
||||||
|
org.springframework: warn
|
||||||
|
config: classpath:logback-plus.xml
|
||||||
|
|
||||||
|
# 用户配置
|
||||||
|
user:
|
||||||
|
password:
|
||||||
|
# 密码最大错误次数
|
||||||
|
maxRetryCount: 5
|
||||||
|
# 密码锁定时间(默认10分钟)
|
||||||
|
lockTime: 10
|
||||||
|
|
||||||
|
# Spring配置
|
||||||
|
spring:
|
||||||
|
main:
|
||||||
|
allow-circular-references: true
|
||||||
|
application:
|
||||||
|
name: ${ruoyi.name}
|
||||||
|
# 资源信息
|
||||||
|
messages:
|
||||||
|
# 国际化资源文件路径
|
||||||
|
basename: i18n/messages
|
||||||
|
profiles:
|
||||||
|
active: @profiles.active@
|
||||||
|
# 文件上传
|
||||||
|
servlet:
|
||||||
|
multipart:
|
||||||
|
# 单个文件大小
|
||||||
|
max-file-size: 10MB
|
||||||
|
# 设置总上传的文件大小
|
||||||
|
max-request-size: 20MB
|
||||||
|
# 服务模块
|
||||||
|
devtools:
|
||||||
|
restart:
|
||||||
|
# 热部署开关
|
||||||
|
enabled: true
|
||||||
|
mvc:
|
||||||
|
format:
|
||||||
|
date-time: yyyy-MM-dd HH:mm:ss
|
||||||
|
jackson:
|
||||||
|
# 日期格式化
|
||||||
|
date-format: yyyy-MM-dd HH:mm:ss
|
||||||
|
serialization:
|
||||||
|
# 格式化输出
|
||||||
|
indent_output: false
|
||||||
|
# 忽略无法转换的对象
|
||||||
|
fail_on_empty_beans: false
|
||||||
|
deserialization:
|
||||||
|
# 允许对象忽略json中不存在的属性
|
||||||
|
fail_on_unknown_properties: false
|
||||||
|
|
||||||
|
# Sa-Token配置
|
||||||
|
sa-token:
|
||||||
|
# token名称 (同时也是cookie名称)
|
||||||
|
token-name: Authorization
|
||||||
|
# token有效期 设为30天 (必定过期) 单位: 秒
|
||||||
|
timeout: 2592000
|
||||||
|
# 多端不同 token 有效期 可查看 LoginHelper.loginByDevice 方法自定义
|
||||||
|
# token最低活跃时间 (指定时间无操作就过期) 单位: 秒 86400
|
||||||
|
active-timeout: 2592000
|
||||||
|
# 允许动态设置 token 有效期
|
||||||
|
dynamic-active-timeout: true
|
||||||
|
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
|
||||||
|
is-concurrent: true
|
||||||
|
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
|
||||||
|
is-share: false
|
||||||
|
# 是否尝试从header里读取token
|
||||||
|
is-read-header: true
|
||||||
|
# 是否尝试从cookie里读取token
|
||||||
|
is-read-cookie: false
|
||||||
|
# token前缀
|
||||||
|
token-prefix: "Bearer"
|
||||||
|
# jwt秘钥
|
||||||
|
jwt-secret-key: abcdefghijklmnopqrstuvwxyz
|
||||||
|
|
||||||
|
# security配置
|
||||||
|
security:
|
||||||
|
# 排除路径
|
||||||
|
excludes:
|
||||||
|
# 静态资源
|
||||||
|
# - /*.html
|
||||||
|
# - /**/*.html
|
||||||
|
# - /**/*.css
|
||||||
|
# - /**/*.js
|
||||||
|
# 公共路径
|
||||||
|
# - /favicon.ico
|
||||||
|
# - /error
|
||||||
|
# swagger 文档配置
|
||||||
|
# - /*/api-docs
|
||||||
|
# - /*/api-docs/**
|
||||||
|
# - /v3/api-docs/swagger-config
|
||||||
|
# - /doc.html
|
||||||
|
# - /doc.html#/
|
||||||
|
# - /swagger-resources/**
|
||||||
|
# - /webjars/**
|
||||||
|
# actuator 监控配置
|
||||||
|
# - /actuator
|
||||||
|
# - /actuator/**
|
||||||
|
|
||||||
|
# MyBatisPlus配置
|
||||||
|
# https://baomidou.com/config/
|
||||||
|
mybatis-plus:
|
||||||
|
# 不支持多包, 如有需要可在注解配置 或 提升扫包等级
|
||||||
|
# 例如 com.**.**.mapper
|
||||||
|
mapperPackage: com.ruoyi.**.mapper
|
||||||
|
# 对应的 XML 文件位置
|
||||||
|
mapperLocations: classpath*:mapper/**/*Mapper.xml
|
||||||
|
# 实体扫描,多个package用逗号或者分号分隔
|
||||||
|
typeAliasesPackage: com.ruoyi.**.domain
|
||||||
|
# 启动时是否检查 MyBatis XML 文件的存在,默认不检查
|
||||||
|
checkConfigLocation: false
|
||||||
|
configuration:
|
||||||
|
# 自动驼峰命名规则(camel case)映射
|
||||||
|
mapUnderscoreToCamelCase: true
|
||||||
|
# MyBatis 自动映射策略
|
||||||
|
# NONE:不启用 PARTIAL:只对非嵌套 resultMap 自动映射 FULL:对所有 resultMap 自动映射
|
||||||
|
autoMappingBehavior: PARTIAL
|
||||||
|
# MyBatis 自动映射时未知列或未知属性处理策
|
||||||
|
# NONE:不做处理 WARNING:打印相关警告 FAILING:抛出异常和详细信息
|
||||||
|
autoMappingUnknownColumnBehavior: NONE
|
||||||
|
# 更详细的日志输出 会有性能损耗 org.apache.ibatis.logging.stdout.StdOutImpl
|
||||||
|
# 关闭日志记录 (可单纯使用 p6spy 分析) org.apache.ibatis.logging.nologging.NoLoggingImpl
|
||||||
|
# 默认日志输出 org.apache.ibatis.logging.slf4j.Slf4jImpl
|
||||||
|
logImpl: org.apache.ibatis.logging.nologging.NoLoggingImpl
|
||||||
|
global-config:
|
||||||
|
# 是否打印 Logo banner
|
||||||
|
banner: true
|
||||||
|
dbConfig:
|
||||||
|
# 主键类型
|
||||||
|
# AUTO 自增 NONE 空 INPUT 用户输入 ASSIGN_ID 雪花 ASSIGN_UUID 唯一 UUID
|
||||||
|
idType: ASSIGN_ID
|
||||||
|
# 逻辑已删除值
|
||||||
|
logicDeleteValue: 2
|
||||||
|
# 逻辑未删除值
|
||||||
|
logicNotDeleteValue: 0
|
||||||
|
# 字段验证策略之 insert,在 insert 的时候的字段验证策略
|
||||||
|
# IGNORED 忽略 NOT_NULL 非NULL NOT_EMPTY 非空 DEFAULT 默认 NEVER 不加入 SQL
|
||||||
|
insertStrategy: NOT_NULL
|
||||||
|
# 字段验证策略之 update,在 update 的时候的字段验证策略
|
||||||
|
updateStrategy: NOT_NULL
|
||||||
|
# 字段验证策略之 select,在 select 的时候的字段验证策略既 wrapper 根据内部 entity 生成的 where 条件
|
||||||
|
where-strategy: NOT_NULL
|
||||||
|
# 数据加密
|
||||||
|
mybatis-encryptor:
|
||||||
|
# 是否开启加密
|
||||||
|
enable: false
|
||||||
|
# 默认加密算法
|
||||||
|
algorithm: BASE64
|
||||||
|
# 编码方式 BASE64/HEX。默认BASE64
|
||||||
|
encode: BASE64
|
||||||
|
# 安全秘钥 对称算法的秘钥 如:AES,SM4
|
||||||
|
password:
|
||||||
|
# 公私钥 非对称算法的公私钥 如:SM2,RSA
|
||||||
|
publicKey:
|
||||||
|
privateKey:
|
||||||
|
|
||||||
|
springdoc:
|
||||||
|
api-docs:
|
||||||
|
# 是否开启接口文档
|
||||||
|
enabled: true
|
||||||
|
swagger-ui:
|
||||||
|
path: /swagger-ui.html
|
||||||
|
tags-sorter: alpha
|
||||||
|
operations-sorter: alpha
|
||||||
|
#这里定义了两个分组,可定义多个,也可以不定义
|
||||||
|
group-configs:
|
||||||
|
- group: 'default'
|
||||||
|
paths-to-match: '/api/**'
|
||||||
|
packages-to-scan: com.ruoyi.cai
|
||||||
|
|
||||||
|
# 防止XSS攻击
|
||||||
|
xss:
|
||||||
|
# 过滤开关
|
||||||
|
enabled: true
|
||||||
|
# 排除链接(多个用逗号分隔)
|
||||||
|
excludes: /system/notice
|
||||||
|
# 匹配链接
|
||||||
|
urlPatterns: /system/*,/monitor/*,/tool/*
|
||||||
|
|
||||||
|
# 全局线程池相关配置
|
||||||
|
thread-pool:
|
||||||
|
# 是否开启线程池
|
||||||
|
enabled: false
|
||||||
|
# 队列最大长度
|
||||||
|
queueCapacity: 128
|
||||||
|
# 线程池维护线程所允许的空闲时间
|
||||||
|
keepAliveSeconds: 300
|
||||||
|
websocket:
|
||||||
|
enabled: true
|
||||||
|
--- # 分布式锁 lock4j 全局配置
|
||||||
|
lock4j:
|
||||||
|
# 获取分布式锁超时时间,默认为 3000 毫秒
|
||||||
|
acquire-timeout: 3000
|
||||||
|
# 分布式锁的超时时间,默认为 30 秒
|
||||||
|
expire: 30000
|
||||||
|
|
||||||
|
--- # Actuator 监控端点的配置项
|
||||||
|
management:
|
||||||
|
endpoints:
|
||||||
|
enabled-by-default: false
|
||||||
2
ruoyi-ad-websocket/src/main/resources/banner.txt
Normal file
2
ruoyi-ad-websocket/src/main/resources/banner.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Application Version: ${ruoyi-vue-plus.version}
|
||||||
|
Spring Boot Version: ${spring-boot.version}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
#错误消息
|
||||||
|
not.null=* 必须填写
|
||||||
|
user.jcaptcha.error=验证码错误
|
||||||
|
user.jcaptcha.expire=验证码已失效
|
||||||
|
user.not.exists=对不起, 您的账号:{0} 不存在.
|
||||||
|
user.password.not.match=用户不存在/密码错误
|
||||||
|
user.password.retry.limit.count=密码输入错误{0}次
|
||||||
|
user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定{1}分钟
|
||||||
|
user.password.delete=对不起,您的账号:{0} 已被删除
|
||||||
|
user.blocked=对不起,您的账号:{0} 已禁用,请联系管理员
|
||||||
|
role.blocked=角色已封禁,请联系管理员
|
||||||
|
user.logout.success=退出成功
|
||||||
|
length.not.valid=长度必须在{min}到{max}个字符之间
|
||||||
|
user.username.not.blank=用户名不能为空
|
||||||
|
user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头
|
||||||
|
user.username.length.valid=账户长度必须在{min}到{max}个字符之间
|
||||||
|
user.password.not.blank=用户密码不能为空
|
||||||
|
user.password.length.valid=用户密码长度必须在{min}到{max}个字符之间
|
||||||
|
user.password.not.valid=* 5-50个字符
|
||||||
|
user.email.not.valid=邮箱格式错误
|
||||||
|
user.email.not.blank=邮箱不能为空
|
||||||
|
user.phonenumber.not.blank=用户手机号不能为空
|
||||||
|
user.mobile.phone.number.not.valid=手机号格式错误
|
||||||
|
user.login.success=登录成功
|
||||||
|
user.register.success=注册成功
|
||||||
|
user.register.save.error=保存用户 {0} 失败,注册账号已存在
|
||||||
|
user.register.error=注册失败,请联系系统管理人员
|
||||||
|
user.notfound=请重新登录
|
||||||
|
user.forcelogout=管理员强制退出,请重新登录
|
||||||
|
user.unknown.error=未知错误,请重新登录
|
||||||
|
##文件上传消息
|
||||||
|
upload.exceed.maxSize=上传的文件大小超出限制的文件大小!<br/>允许的文件最大大小是:{0}MB!
|
||||||
|
upload.filename.exceed.length=上传的文件名最长{0}个字符
|
||||||
|
##权限
|
||||||
|
no.permission=您没有数据的权限,请联系管理员添加权限 [{0}]
|
||||||
|
no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}]
|
||||||
|
no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}]
|
||||||
|
no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
|
||||||
|
no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
|
||||||
|
no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
|
||||||
|
repeat.submit.message=不允许重复提交,请稍候再试
|
||||||
|
rate.limiter.message=访问过于频繁,请稍候再试
|
||||||
|
sms.code.not.blank=短信验证码不能为空
|
||||||
|
sms.code.retry.limit.count=短信验证码输入错误{0}次
|
||||||
|
sms.code.retry.limit.exceed=短信验证码输入错误{0}次,帐户锁定{1}分钟
|
||||||
|
email.code.not.blank=邮箱验证码不能为空
|
||||||
|
email.code.retry.limit.count=邮箱验证码输入错误{0}次
|
||||||
|
email.code.retry.limit.exceed=邮箱验证码输入错误{0}次,帐户锁定{1}分钟
|
||||||
|
xcx.code.not.blank=小程序code不能为空
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
#错误消息
|
||||||
|
not.null=* Required fill in
|
||||||
|
user.jcaptcha.error=Captcha error
|
||||||
|
user.jcaptcha.expire=Captcha invalid
|
||||||
|
user.not.exists=Sorry, your account: {0} does not exist
|
||||||
|
user.password.not.match=User does not exist/Password error
|
||||||
|
user.password.retry.limit.count=Password input error {0} times
|
||||||
|
user.password.retry.limit.exceed=Password input error {0} times, account locked for {1} minutes
|
||||||
|
user.password.delete=Sorry, your account:{0} has been deleted
|
||||||
|
user.blocked=Sorry, your account: {0} has been disabled. Please contact the administrator
|
||||||
|
role.blocked=Role disabled,please contact administrators
|
||||||
|
user.logout.success=Exit successful
|
||||||
|
length.not.valid=The length must be between {min} and {max} characters
|
||||||
|
user.username.not.blank=Username cannot be blank
|
||||||
|
user.username.not.valid=* 2 to 20 chinese characters, letters, numbers or underscores, and must start with a non number
|
||||||
|
user.username.length.valid=Account length must be between {min} and {max} characters
|
||||||
|
user.password.not.blank=Password cannot be empty
|
||||||
|
user.password.length.valid=Password length must be between {min} and {max} characters
|
||||||
|
user.password.not.valid=* 5-50 characters
|
||||||
|
user.email.not.valid=Mailbox format error
|
||||||
|
user.email.not.blank=Mailbox cannot be blank
|
||||||
|
user.phonenumber.not.blank=Phone number cannot be blank
|
||||||
|
user.mobile.phone.number.not.valid=Phone number format error
|
||||||
|
user.login.success=Login successful
|
||||||
|
user.register.success=Register successful
|
||||||
|
user.register.save.error=Failed to save user {0}, The registered account already exists
|
||||||
|
user.register.error=Register failed, please contact system administrator
|
||||||
|
user.notfound=Please login again
|
||||||
|
user.forcelogout=The administrator is forced to exit,please login again
|
||||||
|
user.unknown.error=Unknown error, please login again
|
||||||
|
##文件上传消息
|
||||||
|
upload.exceed.maxSize=The uploaded file size exceeds the limit file size!<br/>the maximum allowed file size is:{0}MB!
|
||||||
|
upload.filename.exceed.length=The maximum length of uploaded file name is {0} characters
|
||||||
|
##权限
|
||||||
|
no.permission=You do not have permission to the data,please contact your administrator to add permissions [{0}]
|
||||||
|
no.create.permission=You do not have permission to create data,please contact your administrator to add permissions [{0}]
|
||||||
|
no.update.permission=You do not have permission to modify data,please contact your administrator to add permissions [{0}]
|
||||||
|
no.delete.permission=You do not have permission to delete data,please contact your administrator to add permissions [{0}]
|
||||||
|
no.export.permission=You do not have permission to export data,please contact your administrator to add permissions [{0}]
|
||||||
|
no.view.permission=You do not have permission to view data,please contact your administrator to add permissions [{0}]
|
||||||
|
repeat.submit.message=Repeat submit is not allowed, please try again later
|
||||||
|
rate.limiter.message=Visit too frequently, please try again later
|
||||||
|
sms.code.not.blank=Sms code cannot be blank
|
||||||
|
sms.code.retry.limit.count=Sms code input error {0} times
|
||||||
|
sms.code.retry.limit.exceed=Sms code input error {0} times, account locked for {1} minutes
|
||||||
|
email.code.not.blank=Email code cannot be blank
|
||||||
|
email.code.retry.limit.count=Email code input error {0} times
|
||||||
|
email.code.retry.limit.exceed=Email code input error {0} times, account locked for {1} minutes
|
||||||
|
xcx.code.not.blank=Mini program code cannot be blank
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
#错误消息
|
||||||
|
not.null=* 必须填写
|
||||||
|
user.jcaptcha.error=验证码错误
|
||||||
|
user.jcaptcha.expire=验证码已失效
|
||||||
|
user.not.exists=对不起, 您的账号:{0} 不存在.
|
||||||
|
user.password.not.match=用户不存在/密码错误
|
||||||
|
user.password.retry.limit.count=密码输入错误{0}次
|
||||||
|
user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定{1}分钟
|
||||||
|
user.password.delete=对不起,您的账号:{0} 已被删除
|
||||||
|
user.blocked=对不起,您的账号:{0} 已禁用,请联系管理员
|
||||||
|
role.blocked=角色已封禁,请联系管理员
|
||||||
|
user.logout.success=退出成功
|
||||||
|
length.not.valid=长度必须在{min}到{max}个字符之间
|
||||||
|
user.username.not.blank=用户名不能为空
|
||||||
|
user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头
|
||||||
|
user.username.length.valid=账户长度必须在{min}到{max}个字符之间
|
||||||
|
user.password.not.blank=用户密码不能为空
|
||||||
|
user.password.length.valid=用户密码长度必须在{min}到{max}个字符之间
|
||||||
|
user.password.not.valid=* 5-50个字符
|
||||||
|
user.email.not.valid=邮箱格式错误
|
||||||
|
user.email.not.blank=邮箱不能为空
|
||||||
|
user.phonenumber.not.blank=用户手机号不能为空
|
||||||
|
user.mobile.phone.number.not.valid=手机号格式错误
|
||||||
|
user.login.success=登录成功
|
||||||
|
user.register.success=注册成功
|
||||||
|
user.register.save.error=保存用户 {0} 失败,注册账号已存在
|
||||||
|
user.register.error=注册失败,请联系系统管理人员
|
||||||
|
user.notfound=请重新登录
|
||||||
|
user.forcelogout=管理员强制退出,请重新登录
|
||||||
|
user.unknown.error=未知错误,请重新登录
|
||||||
|
##文件上传消息
|
||||||
|
upload.exceed.maxSize=上传的文件大小超出限制的文件大小!<br/>允许的文件最大大小是:{0}MB!
|
||||||
|
upload.filename.exceed.length=上传的文件名最长{0}个字符
|
||||||
|
##权限
|
||||||
|
no.permission=您没有数据的权限,请联系管理员添加权限 [{0}]
|
||||||
|
no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}]
|
||||||
|
no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}]
|
||||||
|
no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
|
||||||
|
no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
|
||||||
|
no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
|
||||||
|
repeat.submit.message=不允许重复提交,请稍候再试
|
||||||
|
rate.limiter.message=访问过于频繁,请稍候再试
|
||||||
|
sms.code.not.blank=短信验证码不能为空
|
||||||
|
sms.code.retry.limit.count=短信验证码输入错误{0}次
|
||||||
|
sms.code.retry.limit.exceed=短信验证码输入错误{0}次,帐户锁定{1}分钟
|
||||||
|
email.code.not.blank=邮箱验证码不能为空
|
||||||
|
email.code.retry.limit.count=邮箱验证码输入错误{0}次
|
||||||
|
email.code.retry.limit.exceed=邮箱验证码输入错误{0}次,帐户锁定{1}分钟
|
||||||
|
xcx.code.not.blank=小程序code不能为空
|
||||||
BIN
ruoyi-ad-websocket/src/main/resources/ip2region.xdb
Normal file
BIN
ruoyi-ad-websocket/src/main/resources/ip2region.xdb
Normal file
Binary file not shown.
109
ruoyi-ad-websocket/src/main/resources/logback-plus.xml
Normal file
109
ruoyi-ad-websocket/src/main/resources/logback-plus.xml
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<configuration>
|
||||||
|
<property name="log.path" value="./logs"/>
|
||||||
|
<property name="console.log.pattern"
|
||||||
|
value="%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}%n) - %msg%n"/>
|
||||||
|
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"/>
|
||||||
|
|
||||||
|
<!-- 控制台输出 -->
|
||||||
|
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
|
||||||
|
<encoder>
|
||||||
|
<pattern>${console.log.pattern}</pattern>
|
||||||
|
<charset>utf-8</charset>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<!-- 控制台输出 -->
|
||||||
|
<appender name="file_console" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
|
<file>${log.path}/sys-console.log</file>
|
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||||
|
<!-- 日志文件名格式 -->
|
||||||
|
<fileNamePattern>${log.path}/sys-console.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||||
|
<!-- 日志最大 1天 -->
|
||||||
|
<maxHistory>1</maxHistory>
|
||||||
|
</rollingPolicy>
|
||||||
|
<encoder>
|
||||||
|
<pattern>${log.pattern}</pattern>
|
||||||
|
<charset>utf-8</charset>
|
||||||
|
</encoder>
|
||||||
|
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||||
|
<!-- 过滤的级别 -->
|
||||||
|
<level>INFO</level>
|
||||||
|
</filter>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<!-- 系统日志输出 -->
|
||||||
|
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
|
<file>${log.path}/sys-info.log</file>
|
||||||
|
<!-- 循环政策:基于时间创建日志文件 -->
|
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||||
|
<!-- 日志文件名格式 -->
|
||||||
|
<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||||
|
<!-- 日志最大的历史 60天 -->
|
||||||
|
<maxHistory>60</maxHistory>
|
||||||
|
</rollingPolicy>
|
||||||
|
<encoder>
|
||||||
|
<pattern>${log.pattern}</pattern>
|
||||||
|
</encoder>
|
||||||
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||||
|
<!-- 过滤的级别 -->
|
||||||
|
<level>INFO</level>
|
||||||
|
<!-- 匹配时的操作:接收(记录) -->
|
||||||
|
<onMatch>ACCEPT</onMatch>
|
||||||
|
<!-- 不匹配时的操作:拒绝(不记录) -->
|
||||||
|
<onMismatch>DENY</onMismatch>
|
||||||
|
</filter>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
|
<file>${log.path}/sys-error.log</file>
|
||||||
|
<!-- 循环政策:基于时间创建日志文件 -->
|
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||||
|
<!-- 日志文件名格式 -->
|
||||||
|
<fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||||
|
<!-- 日志最大的历史 60天 -->
|
||||||
|
<maxHistory>60</maxHistory>
|
||||||
|
</rollingPolicy>
|
||||||
|
<encoder>
|
||||||
|
<pattern>${log.pattern}</pattern>
|
||||||
|
</encoder>
|
||||||
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||||
|
<!-- 过滤的级别 -->
|
||||||
|
<level>ERROR</level>
|
||||||
|
<!-- 匹配时的操作:接收(记录) -->
|
||||||
|
<onMatch>ACCEPT</onMatch>
|
||||||
|
<!-- 不匹配时的操作:拒绝(不记录) -->
|
||||||
|
<onMismatch>DENY</onMismatch>
|
||||||
|
</filter>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<!-- info异步输出 -->
|
||||||
|
<appender name="async_info" class="ch.qos.logback.classic.AsyncAppender">
|
||||||
|
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
|
||||||
|
<discardingThreshold>0</discardingThreshold>
|
||||||
|
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
|
||||||
|
<queueSize>512</queueSize>
|
||||||
|
<!-- 添加附加的appender,最多只能添加一个 -->
|
||||||
|
<appender-ref ref="file_info"/>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<!-- error异步输出 -->
|
||||||
|
<appender name="async_error" class="ch.qos.logback.classic.AsyncAppender">
|
||||||
|
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
|
||||||
|
<discardingThreshold>0</discardingThreshold>
|
||||||
|
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
|
||||||
|
<queueSize>512</queueSize>
|
||||||
|
<!-- 添加附加的appender,最多只能添加一个 -->
|
||||||
|
<appender-ref ref="file_error"/>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<!--系统操作日志-->
|
||||||
|
<root level="info">
|
||||||
|
<appender-ref ref="console" />
|
||||||
|
<appender-ref ref="async_info" />
|
||||||
|
<appender-ref ref="async_error" />
|
||||||
|
<appender-ref ref="file_console" />
|
||||||
|
<!-- <appender-ref ref="sky_log"/>-->
|
||||||
|
</root>
|
||||||
|
|
||||||
|
</configuration>
|
||||||
28
ruoyi-ad-websocket/src/main/resources/spy.properties
Normal file
28
ruoyi-ad-websocket/src/main/resources/spy.properties
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# p6spy 性能分析插件配置文件
|
||||||
|
modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory
|
||||||
|
# 自定义日志打印
|
||||||
|
logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger
|
||||||
|
#日志输出到控制台
|
||||||
|
appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger
|
||||||
|
# 使用日志系统记录 sql
|
||||||
|
#appender=com.p6spy.engine.spy.appender.Slf4JLogger
|
||||||
|
# 设置 p6spy driver 代理
|
||||||
|
#deregisterdrivers=true
|
||||||
|
# 取消JDBC URL前缀
|
||||||
|
useprefix=true
|
||||||
|
# 配置记录 Log 例外,可去掉的结果集有error,info,batch,debug,statement,commit,rollback,result,resultset.
|
||||||
|
excludecategories=info,debug,result,commit,resultset
|
||||||
|
# 日期格式
|
||||||
|
dateformat=yyyy-MM-dd HH:mm:ss
|
||||||
|
# SQL语句打印时间格式
|
||||||
|
databaseDialectTimestampFormat=yyyy-MM-dd HH:mm:ss
|
||||||
|
# 实际驱动可多个
|
||||||
|
#driverlist=org.h2.Driver
|
||||||
|
# 是否开启慢SQL记录
|
||||||
|
outagedetection=true
|
||||||
|
# 慢SQL记录标准 2 秒
|
||||||
|
outagedetectioninterval=2
|
||||||
|
# 是否过滤 Log
|
||||||
|
filter=true
|
||||||
|
# 过滤 Log 时所排除的 sql 关键字,以逗号分隔
|
||||||
|
exclude=SELECT 1
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
package com.ruoyi.cai.ws.config;
|
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
|
||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.web.socket.WebSocketHandler;
|
|
||||||
import org.springframework.web.socket.config.annotation.EnableWebSocket;
|
|
||||||
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
|
|
||||||
import org.springframework.web.socket.server.HandshakeInterceptor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* WebSocket 配置
|
|
||||||
*
|
|
||||||
* @author zendwang
|
|
||||||
*/
|
|
||||||
@Configuration
|
|
||||||
@ConditionalOnProperty(value = "websocket.enabled", havingValue = "true")
|
|
||||||
@EnableConfigurationProperties(WebSocketProperties.class)
|
|
||||||
@EnableWebSocket
|
|
||||||
public class WebSocketConfig {
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public WebSocketConfigurer webSocketConfigurer(HandshakeInterceptor handshakeInterceptor,
|
|
||||||
WebSocketHandler webSocketHandler,
|
|
||||||
WebSocketProperties webSocketProperties) {
|
|
||||||
if (StrUtil.isBlank(webSocketProperties.getPath())) {
|
|
||||||
webSocketProperties.setPath("/ws");
|
|
||||||
}
|
|
||||||
if (StrUtil.isBlank(webSocketProperties.getAllowedOrigins())) {
|
|
||||||
webSocketProperties.setAllowedOrigins("*");
|
|
||||||
}
|
|
||||||
return registry -> registry
|
|
||||||
.addHandler(webSocketHandler, webSocketProperties.getPath())
|
|
||||||
.addInterceptors(handshakeInterceptor)
|
|
||||||
.setAllowedOrigins(webSocketProperties.getAllowedOrigins());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user