7.9 KiB
Skins 业务后端
基于 若依(RuoYi)4.8.2 扩展的多模块 Java 后端,集成 CSGO/饰品相关业务(用户、玩法、第三方支付与回调、定时任务、推广后台等)。仓库同时包含两套管理端前端工程。
克隆后请在项目根目录执行 mvn -v 确认 JDK 21 与 Maven 可用,再按下文完成数据库与中间件初始化。
技术栈概览
| 层级 | 技术 |
|---|---|
| 运行时 | Java 21 |
| 框架 | Spring Boot 4.0.3(启用虚拟线程 spring.threads.virtual.enabled) |
| Web 与安全 | Spring Security 6(无状态会话)、JWT(Authorization 请求头)、若依式菜单/权限模型 |
| 持久层 | MyBatis / MyBatis-Plus、PageHelper、Druid(含多数据源扩展) |
| 数据库 | MySQL |
| 缓存 | Redis(Spring Data Redis + Lettuce) |
| 消息 | RabbitMQ(业务侧配置虚拟主机等,详见各 profile) |
| 实时 | WebSocket(如 /ws/** 等路径,与安全放行配置保持一致) |
| API 文档 | Springfox 3.x(主用,Swagger / OAS3 分组);另引入 springdoc-openapi Starter,可与 Springfox 并行存在 |
仓库结构
chengdu-backend/
├── ruoyi-admin/ # Web 入口(Spring Boot 启动模块)
├── ruoyi-framework/ # 安全、过滤器、资源配置等封装
├── ruoyi-system/ # 系统管理(用户、角色、菜单等)
├── ruoyi-common/ # 通用工具、常量、MQ 配置等
├── ruoyi-quartz/ # 定时任务(若依 Quartz 集成)
├── ruoyi-generator/ # 代码生成
├── skins-model/ # 业务领域模型(实体等)
├── skins-service/ # 业务服务聚合 POM(子模块见下)
│ ├── service-admin/ # 运营管理侧接口
│ ├── service-user/ # 用户侧接口
│ ├── service-playingmethod/ # 玩法相关
│ ├── service-thirdparty/ # 第三方对接
│ └── service-task/ # 任务与调度配合
├── skins-promo/ # 推广后台 API(路径前缀多为 /promo)
├── ruoyi-ui/ # 管理端 Vue2 + Element UI(若依经典前端)
├── promo-ui2/ # 推广/运营后台 Vue3 + Element Plus + Vite
└── docker/ # MySQL / Redis / RabbitMQ 编排
启动类
后端入口:ruoyi-admin 模块中的 com.ruoyi.RuoYiApplication。使用 @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) 排除 Spring Boot 默认数据源自动配置(Spring Boot 4 下为 org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration),由若依多数据源与 Druid 配置接管。
运行环境与配置
必备依赖
- JDK 21
- Maven 3.6+
- MySQL 8.x(库名与账号见各 profile;本地可参考
docker/docker-compose.yml) - Redis
- RabbitMQ(若启用了 MQ 监听或相关消费者则需可用)
根 pom.xml 已配置 阿里云 Maven 公共仓库,便于国内环境拉取依赖。
Spring Profile
ruoyi-admin/src/main/resources/application.yml 中通过 spring.profiles.active 切换环境,配套文件:
application-dev.yml— 本地/开发application-test.yml— 测试application-pro.yml— 生产
重要: 上述 profile 文件中常含数据库口令、第三方支付与短信密钥等敏感信息。勿将真实密钥提交到公开仓库;上线请改用环境变量、密钥管理系统或独立于仓库的配置挂载。
默认服务端口与上下文
- HTTP 端口:28081(见根配置
ruoyi-admin/src/main/resources/application.yml中的server.port;各环境可被 profile 或部署参数覆盖,默认绑定0.0.0.0) - 上下文路径:
/(与管理端、VUE_APP_BASE_API及反向代理前缀需一致)
对外匿名接口(简述)
与安全配置对齐的常见分类包括:/login、/register、/captchaImage,以及业务侧的 /api/**、/admin/**、WebSocket、部分 Swagger 与 Druid 监控路径等。具体请以 ruoyi-framework 中 SecurityFilterChain 与白名单配置为准。
本地启动后端
方式一:先打包再在启动模块运行
在项目根目录执行:
mvn clean package -DskipTests
cd ruoyi-admin
mvn spring-boot:run
方式二:根目录一键拉起(会解析 ruoyi-admin 所需模块依赖)
mvn -pl ruoyi-admin -am spring-boot:run -DskipTests
也可在 IDE 中直接运行 RuoYiApplication。
首次运行前请:
- 创建 MySQL 库并完成若依及业务所需的 SQL 初始化(以团队提供的脚本为准)。
- 按所选 profile 修改数据源、Redis、RabbitMQ 等连接信息。
Docker 基础设施
目录:docker/
docker-compose.yml:MySQL(含自定义镜像)、Redis、RabbitMQ(管理端口及初始化示例)。docker/docker-cn/:面向大陆镜像拉取环境的编排变体。
常用操作见 docker/readme.md(如单独重建某个服务等)。
前端工程
ruoyi-ui(Vue 2)
- 技术栈:Vue CLI、Element UI(
package.json声明 Node>=8.9,实际开发建议 Node 16 LTS 或 18 LTS,并按需开启 OpenSSL 兼容)。 - 脚本见
ruoyi-ui/package.json(Windows 脚本含set NODE_OPTIONS=--openssl-legacy-provider;在 macOS/Linux 上需export NODE_OPTIONS=...或使用等价脚本)。 - 开发与打包:
npm run dev、npm run build:prod等。 - 系统工具内「Swagger」页当前 iframe 指向
/doc.html;若后端未部署对应聚合页,请改为与下文 API 文档 中实际地址一致(例如/swagger-ui.html)。
promo-ui2(Vue 3)
- 技术栈:Vue 3、Vite、TypeScript、Element Plus(基于 vue-element-plus-admin 演进);要求 Node ≥ 18、
pnpm ≥ 8.1(以promo-ui2/package.json中engines为准)。 - 推荐使用 pnpm:
pnpm install、pnpm dev、pnpm build:pro等。 - 详细说明见
promo-ui2/README.zh-CN.md。
前端请求的接口基地址需指向本后端;若经 Nginx 网关,注意与团队约定的前缀(如 /prod-api)一致。
业务模块说明(简述)
| 模块 | 职责 |
|---|---|
| skins-model | 共享实体与领域常量 |
| service-user | 用户相关业务 |
| service-admin | 运营管理侧业务 |
| service-playingmethod | 玩法相关逻辑 |
| service-thirdparty | 第三方对接(支付、交易平台回调等,密钥在各 profile 中) |
| service-task | 异步任务 / 与 Quartz 等协同 |
| skins-promo | 推广后台:登录注册、流水与佣金、充值卡等(REST 前缀示例:/promo) |
API 文档
- Springfox(当前主要使用):启动后访问(端口与
server.port一致,仓库默认 28081)
http://localhost:28081/swagger-ui.html
在页面右上角切换分组(如user、thirdParty、playingMethod、task、promo等;与SwaggerConfig中 Docket 一致)。OpenAPI JSON 路径形如/<group>/api-docs(Spring Security 已对/*/api-docs等放行,以实际配置为准)。 - springdoc-openapi:
ruoyi-admin已引入依赖;若单独启用 SpringDoc UI,需确保 Security 对/swagger-ui/**、/v3/api-docs等路径放行,避免 401。
版本信息
- 父 POM:
com.ruoyi:ruoyi:4.8.2(spring-boot.version4.0.3,springdoc.version3.0.2,swagger/ Springfox 3.0.0) - 若依官网参考:http://www.ruoyi.vip
安全建议
- 轮换并私有化所有第三方(支付宝、聚合支付、短信等)密钥;生产环境勿使用仓库内示例明文。
- 修改 JWT
token.secret与 Druid 监控口令等非默认值。 - 按需收紧 Druid、
/actuator(若启用)及 Swagger 相关路径的访问范围。
如有与本说明不一致之处,以当前仓库代码及团队部署文档为准。