From ccc81389483920bcf0407d7ece1361e739fa7882 Mon Sep 17 00:00:00 2001
From: XinWei <2718030729@qq.com>
Date: Mon, 22 Jul 2024 10:48:35 +0800
Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=AD=E5=BF=83=EF=BC=88?=
=?UTF-8?q?=E5=A4=A7=E5=B1=8F=EF=BC=89=E6=9C=8D=E5=8A=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ludu-module-datacenter-biz/pom.xml | 125 ++++++++++++++++++
.../DatacenterServerApplication.java | 14 ++
.../rpc/config/RpcConfiguration.java | 12 ++
.../config/SecurityConfiguration.java | 32 +++++
.../src/main/resources/application-dev.yaml | 103 +++++++++++++++
.../src/main/resources/application-local.yaml | 67 ++++++++++
.../src/main/resources/application.yaml | 78 +++++++++++
.../src/main/resources/bootstrap-local.yaml | 23 ++++
.../src/main/resources/bootstrap.yaml | 14 ++
ludu-module-datacenter/pom.xml | 23 ++++
pom.xml | 1 +
11 files changed, 492 insertions(+)
create mode 100644 ludu-module-datacenter/ludu-module-datacenter-biz/pom.xml
create mode 100644 ludu-module-datacenter/ludu-module-datacenter-biz/src/main/java/cn/iocoder/yudao/module/datacenter/framework/DatacenterServerApplication.java
create mode 100644 ludu-module-datacenter/ludu-module-datacenter-biz/src/main/java/cn/iocoder/yudao/module/datacenter/framework/rpc/config/RpcConfiguration.java
create mode 100644 ludu-module-datacenter/ludu-module-datacenter-biz/src/main/java/cn/iocoder/yudao/module/datacenter/framework/security/config/SecurityConfiguration.java
create mode 100644 ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/application-dev.yaml
create mode 100644 ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/application-local.yaml
create mode 100644 ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/application.yaml
create mode 100644 ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/bootstrap-local.yaml
create mode 100644 ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/bootstrap.yaml
create mode 100644 ludu-module-datacenter/pom.xml
diff --git a/ludu-module-datacenter/ludu-module-datacenter-biz/pom.xml b/ludu-module-datacenter/ludu-module-datacenter-biz/pom.xml
new file mode 100644
index 000000000..d1beaab6d
--- /dev/null
+++ b/ludu-module-datacenter/ludu-module-datacenter-biz/pom.xml
@@ -0,0 +1,125 @@
+
+
+
+ ludu-module-datacenter
+ cn.iocoder.cloud
+ ${revision}
+
+ 4.0.0
+
+ ludu-module-datacenter-biz
+
+
+
+
+ cn.iocoder.cloud
+ ludu-module-ticketing-api
+ ${revision}
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-bootstrap
+
+
+
+ cn.iocoder.cloud
+ yudao-spring-boot-starter-env
+
+
+
+
+ cn.iocoder.cloud
+ yudao-module-system-api
+ ${revision}
+
+
+ cn.iocoder.cloud
+ yudao-module-infra-api
+ ${revision}
+
+
+
+
+ cn.iocoder.cloud
+ yudao-spring-boot-starter-biz-tenant
+
+
+
+
+ cn.iocoder.cloud
+ yudao-spring-boot-starter-security
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+
+
+ cn.iocoder.cloud
+ yudao-spring-boot-starter-redis
+
+
+
+
+ cn.iocoder.cloud
+ yudao-spring-boot-starter-rpc
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+
+
+ cn.iocoder.cloud
+ yudao-spring-boot-starter-test
+ test
+
+
+
+
+ cn.iocoder.cloud
+ yudao-spring-boot-starter-excel
+
+
+
+ cn.iocoder.cloud
+ yudao-spring-boot-starter-biz-ip
+
+
+
+
+
+ ${project.artifactId}
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ ${spring.boot.version}
+
+
+
+ repackage
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/java/cn/iocoder/yudao/module/datacenter/framework/DatacenterServerApplication.java b/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/java/cn/iocoder/yudao/module/datacenter/framework/DatacenterServerApplication.java
new file mode 100644
index 000000000..063e47240
--- /dev/null
+++ b/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/java/cn/iocoder/yudao/module/datacenter/framework/DatacenterServerApplication.java
@@ -0,0 +1,14 @@
+package cn.iocoder.yudao.module.datacenter.framework;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @Description 大屏服务启动类
+ */
+@SpringBootApplication
+public class DatacenterServerApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(DatacenterServerApplication.class, args);
+ }
+}
diff --git a/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/java/cn/iocoder/yudao/module/datacenter/framework/rpc/config/RpcConfiguration.java b/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/java/cn/iocoder/yudao/module/datacenter/framework/rpc/config/RpcConfiguration.java
new file mode 100644
index 000000000..9ff28853d
--- /dev/null
+++ b/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/java/cn/iocoder/yudao/module/datacenter/framework/rpc/config/RpcConfiguration.java
@@ -0,0 +1,12 @@
+package cn.iocoder.yudao.module.datacenter.framework.rpc.config;
+
+import cn.iocoder.yudao.module.ticket.api.asset.TicketAssetApi;
+import cn.iocoder.yudao.module.ticket.api.checkticket.TicketCheckTicketApi;
+import cn.iocoder.yudao.module.ticket.api.saledata.TicketSaleDataApi;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration(proxyBeanMethods = false)
+@EnableFeignClients(clients = {TicketAssetApi.class, TicketCheckTicketApi.class, TicketSaleDataApi.class})
+public class RpcConfiguration {
+}
diff --git a/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/java/cn/iocoder/yudao/module/datacenter/framework/security/config/SecurityConfiguration.java b/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/java/cn/iocoder/yudao/module/datacenter/framework/security/config/SecurityConfiguration.java
new file mode 100644
index 000000000..725273fb6
--- /dev/null
+++ b/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/java/cn/iocoder/yudao/module/datacenter/framework/security/config/SecurityConfiguration.java
@@ -0,0 +1,32 @@
+package cn.iocoder.yudao.module.datacenter.framework.security.config;
+
+import cn.iocoder.yudao.framework.security.config.AuthorizeRequestsCustomizer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer;
+
+/**
+ * Demo 模块的 Security 配置
+ */
+@Configuration(proxyBeanMethods = false)
+public class SecurityConfiguration {
+
+ @Bean
+ public AuthorizeRequestsCustomizer authorizeRequestsCustomizer() {
+ return new AuthorizeRequestsCustomizer() {
+
+ @Override
+ public void customize(ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry registry) {
+ // Swagger 接口文档
+ registry.antMatchers("/v3/api-docs/**").permitAll() // 元数据
+ .antMatchers("/swagger-ui.html").permitAll(); // Swagger UI
+ // Spring Boot Actuator 的安全配置
+ registry.antMatchers("/actuator").anonymous()
+ .antMatchers("/actuator/**").anonymous();
+ }
+
+ };
+ }
+
+}
diff --git a/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/application-dev.yaml b/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/application-dev.yaml
new file mode 100644
index 000000000..b4696be2d
--- /dev/null
+++ b/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/application-dev.yaml
@@ -0,0 +1,103 @@
+--- #################### 数据库相关配置 ####################
+spring:
+ # 数据源配置项
+ autoconfigure:
+ exclude:
+ - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源
+ datasource:
+ druid: # Druid 【监控】相关的全局配置
+ web-stat-filter:
+ enabled: true
+ stat-view-servlet:
+ enabled: true
+ allow: # 设置白名单,不填则允许所有访问
+ url-pattern: /druid/*
+ login-username: # 控制台管理用户名和密码
+ login-password:
+ filter:
+ stat:
+ enabled: true
+ log-slow-sql: true # 慢 SQL 记录
+ slow-sql-millis: 100
+ merge-sql: true
+ wall:
+ config:
+ multi-statement-allow: true
+ dynamic: # 多数据源配置
+ druid: # Druid 【连接池】相关的全局配置
+ initial-size: 5 # 初始连接数
+ min-idle: 10 # 最小连接池数量
+ max-active: 20 # 最大连接池数量
+ max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒
+ time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒
+ min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒
+ max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒
+ validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效
+ test-while-idle: true
+ test-on-borrow: false
+ test-on-return: false
+ primary: master
+ datasource:
+ master:
+ url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
+ username: root
+ password: 123456
+ slave: # 模拟从库,可根据自己需要修改 # 模拟从库,可根据自己需要修改
+ lazy: true # 开启懒加载,保证启动速度
+ url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
+ username: root
+ password: 123456
+
+ # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
+ redis:
+ host: 400-infra.server.iocoder.cn # 地址
+ port: 6379 # 端口
+ database: 1 # 数据库索引
+# password: 123456 # 密码,建议生产环境开启
+
+--- #################### MQ 消息队列相关配置 ####################
+
+--- #################### 定时任务相关配置 ####################
+xxl:
+ job:
+ admin:
+ addresses: http://127.0.0.1:9090/xxl-job-admin # 调度中心部署跟地址
+
+--- #################### 服务保障相关配置 ####################
+
+# Lock4j 配置项
+lock4j:
+ acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒
+ expire: 30000 # 分布式锁的超时时间,默认为 30 毫秒
+
+--- #################### 监控相关配置 ####################
+
+# Actuator 监控端点的配置项
+management:
+ endpoints:
+ web:
+ base-path: /actuator # Actuator 提供的 API 接口的根目录。默认为 /actuator
+ exposure:
+ include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。
+
+# Spring Boot Admin 配置项
+spring:
+ boot:
+ admin:
+ # Spring Boot Admin Client 客户端的相关配置
+ client:
+ instance:
+ service-host-type: IP # 注册实例时,优先使用 IP [IP, HOST_NAME, CANONICAL_HOST_NAME]
+ # Spring Boot Admin Server 服务端的相关配置
+ context-path: /admin # 配置 Spring
+
+--- #################### 芋道相关配置 ####################
+
+# 芋道配置项,设置当前项目所有自定义的配置
+yudao:
+ xss:
+ enable: false
+ web:
+ admin-ui:
+ url: http://dashboard.yudao.iocoder.cn # Admin 管理后台 UI 的地址
+ demo: true # 开启演示模式
diff --git a/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/application-local.yaml b/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/application-local.yaml
new file mode 100644
index 000000000..34f1d1e9b
--- /dev/null
+++ b/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/application-local.yaml
@@ -0,0 +1,67 @@
+--- #################### 数据库相关配置 ####################
+spring:
+ # 数据源配置项
+ autoconfigure:
+ exclude:
+ - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源
+
+ # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
+ redis:
+ host: 127.0.0.1 # 地址
+ port: 6379 # 端口
+ database: 0 # 数据库索引
+# password: 123456 # 密码,建议生产环境开启
+
+--- #################### MQ 消息队列相关配置 ####################
+
+
+--- #################### 服务保障相关配置 ####################
+
+# Lock4j 配置项
+lock4j:
+ acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒
+ expire: 30000 # 分布式锁的超时时间,默认为 30 毫秒
+
+--- #################### 监控相关配置 ####################
+
+# Actuator 监控端点的配置项
+management:
+ endpoints:
+ web:
+ base-path: /actuator # Actuator 提供的 API 接口的根目录。默认为 /actuator
+ exposure:
+ include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。
+
+# Spring Boot Admin 配置项
+spring:
+ boot:
+ admin:
+ # Spring Boot Admin Client 客户端的相关配置
+ client:
+ instance:
+ service-host-type: IP # 注册实例时,优先使用 IP [IP, HOST_NAME, CANONICAL_HOST_NAME]
+
+# 日志文件配置
+logging:
+ level:
+ # 配置自己写的 MyBatis Mapper 打印日志
+ cn.iocoder.yudao.module.system.dal.mysql: debug
+ cn.iocoder.yudao.module.system.dal.mysql.sensitiveword.SensitiveWordMapper: INFO # 配置 SensitiveWordMapper 的日志级别为 info
+ cn.iocoder.yudao.module.system.dal.mysql.sms.SmsChannelMapper: INFO # 配置 SmsChannelMapper 的日志级别为 info
+
+--- #################### 芋道相关配置 ####################
+
+# 芋道配置项,设置当前项目所有自定义的配置
+yudao:
+ env: # 多环境的配置项
+ tag: ${HOSTNAME}
+ web:
+ admin-ui:
+ url: http://dashboard.yudao.iocoder.cn # Admin 管理后台 UI 的地址
+ security:
+ mock-enable: true
+ xss:
+ enable: false
+ access-log: # 访问日志的配置项
+ enable: false
+ demo: false # 关闭演示模式
diff --git a/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/application.yaml b/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/application.yaml
new file mode 100644
index 000000000..ae70cfad3
--- /dev/null
+++ b/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/application.yaml
@@ -0,0 +1,78 @@
+spring:
+ main:
+ allow-circular-references: true # 允许循环依赖,因为项目是三层架构,无法避免这个情况。
+ allow-bean-definition-overriding: true # 允许 Bean 覆盖,例如说 Feign 等会存在重复定义的服务
+
+ # Servlet 配置
+ servlet:
+ # 文件上传相关配置项
+ multipart:
+ max-file-size: 16MB # 单个文件大小
+ max-request-size: 32MB # 设置总上传的文件大小
+ mvc:
+ pathmatch:
+ matching-strategy: ANT_PATH_MATCHER # 解决 SpringFox 与 SpringBoot 2.6.x 不兼容的问题,参见 SpringFoxHandlerProviderBeanPostProcessor 类
+
+ # Jackson 配置项
+ jackson:
+ serialization:
+ write-dates-as-timestamps: true # 设置 LocalDateTime 的格式,使用时间戳
+ write-date-timestamps-as-nanoseconds: false # 设置不使用 nanoseconds 的格式。例如说 1611460870.401,而是直接 1611460870401
+ write-durations-as-timestamps: true # 设置 Duration 的格式,使用时间戳
+ fail-on-empty-beans: false # 允许序列化无属性的 Bean
+
+ # Cache 配置项
+ cache:
+ type: REDIS
+ redis:
+ time-to-live: 1h # 设置过期时间为 1 小时
+
+--- #################### 接口文档配置 ####################
+
+springdoc:
+ api-docs:
+ enabled: true # 1. 是否开启 Swagger 接文档的元数据
+ path: /v3/api-docs
+ swagger-ui:
+ enabled: true # 2.1 是否开启 Swagger 文档的官方 UI 界面
+ path: /swagger-ui.html
+ default-flat-param-object: true # 参见 https://doc.xiaominfo.com/docs/faq/v4/knife4j-parameterobject-flat-param 文档
+
+knife4j:
+ enable: true # 2.2 是否开启 Swagger 文档的 Knife4j UI 界面
+ setting:
+ language: zh_cn
+
+
+# Spring Data Redis 配置
+spring:
+ data:
+ redis:
+ repositories:
+ enabled: false # 项目未使用到 Spring Data Redis 的 Repository,所以直接禁用,保证启动速度
+
+# VO 转换(数据翻译)相关
+easy-trans:
+ is-enable-global: true # 启用全局翻译(拦截所有 SpringMVC ResponseBody 进行自动翻译 )。如果对于性能要求很高可关闭此配置,或通过 @IgnoreTrans 忽略某个接口
+ is-enable-cloud: false # 禁用 TransType.RPC 微服务模式
+
+
+--- #################### 芋道相关配置 ####################
+
+yudao:
+ info:
+ version: 1.0.0
+ base-package: cn.iocoder.yudao.module.ticket
+ swagger:
+ title: 管理后台
+ description: 提供管理员管理的所有功能
+ version: ${yudao.info.version}
+ base-package: ${yudao.info.base-package}
+ captcha:
+ enable: true # 验证码的开关,默认为 true;
+ tenant: # 多租户相关配置项
+ enable: true
+ ignore-urls:
+ ignore-tables:
+
+debug: false
diff --git a/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/bootstrap-local.yaml b/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/bootstrap-local.yaml
new file mode 100644
index 000000000..2de0efbf7
--- /dev/null
+++ b/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/bootstrap-local.yaml
@@ -0,0 +1,23 @@
+--- #################### 注册中心相关配置 ####################
+
+spring:
+ cloud:
+ nacos:
+ server-addr: 127.0.0.1:8848
+ discovery:
+ namespace: dev # 命名空间。这里使用 dev 开发环境
+ metadata:
+ version: 1.0.0 # 服务实例的版本号,可用于灰度发布
+
+--- #################### 配置中心相关配置 ####################
+
+spring:
+ cloud:
+ nacos:
+ # Nacos Config 配置项,对应 NacosConfigProperties 配置属性类
+ config:
+ server-addr: 127.0.0.1:8848 # Nacos 服务器地址
+ namespace: dev # 命名空间 dev 的ID,不能直接使用 dev 名称。创建命名空间的时候需要指定ID为 dev,这里使用 dev 开发环境
+ group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
+ name: ${spring.application.name} # 使用的 Nacos 配置集的 dataId,默认为 spring.application.name
+ file-extension: yaml # 使用的 Nacos 配置集的 dataId 的文件拓展名,同时也是 Nacos 配置集的配置格式,默认为 properties
diff --git a/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/bootstrap.yaml b/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/bootstrap.yaml
new file mode 100644
index 000000000..2d4514650
--- /dev/null
+++ b/ludu-module-datacenter/ludu-module-datacenter-biz/src/main/resources/bootstrap.yaml
@@ -0,0 +1,14 @@
+spring:
+ application:
+ name: datacenter-server
+
+ profiles:
+ active: local
+
+server:
+ port: 48092
+
+# 日志文件配置。注意,如果 logging.file.name 不放在 bootstrap.yaml 配置文件,而是放在 application.yaml 中,会导致出现 LOG_FILE_IS_UNDEFINED 文件
+logging:
+ file:
+ name: ${user.home}/logs/${spring.application.name}.log # 日志文件名,全路径
diff --git a/ludu-module-datacenter/pom.xml b/ludu-module-datacenter/pom.xml
new file mode 100644
index 000000000..52ad262d1
--- /dev/null
+++ b/ludu-module-datacenter/pom.xml
@@ -0,0 +1,23 @@
+
+
+
+ yudao
+ cn.iocoder.cloud
+ ${revision}
+
+ 4.0.0
+
+ ludu-module-datacenter
+ pom
+ ${project.artifactId}
+
+ ludu-module-datacenter-biz
+
+
+ 大屏服务的数据 模块,我们放数据中心业务,只负责调用数据(读)。
+ 例如:售票数据、检票数据等
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index ac2908240..dd259111e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,6 +17,7 @@
yudao-module-member
ludu-module-ticketing
ludu-job-admin
+ ludu-module-datacenter