125 lines
2.4 KiB
Markdown
125 lines
2.4 KiB
Markdown
# 健身房管理系统 POC
|
|
|
|
## 项目简介
|
|
|
|
本项目是健身房管理系统的概念验证(POC),采用响应式架构(Spring WebFlux + R2DBC)实现,旨在验证技术方案的可行性和性能指标。
|
|
|
|
## 技术栈
|
|
|
|
- **框架**: Spring Boot 3.2.3
|
|
- **响应式Web**: Spring WebFlux
|
|
- **响应式数据访问**: Spring Data R2DBC
|
|
- **数据库**: PostgreSQL 16.x
|
|
- **数据库驱动**: R2DBC PostgreSQL 1.0.5.RELEASE
|
|
- **对象映射**: MapStruct 1.5.5.Final
|
|
- **代码简化**: Lombok 1.18.30
|
|
- **API文档**: SpringDoc OpenAPI 2.3.0
|
|
- **测试**: JUnit 5, Reactor Test, Testcontainers
|
|
|
|
## 项目结构
|
|
|
|
```
|
|
gym-manage/
|
|
├── src/
|
|
│ ├── main/
|
|
│ │ ├── java/
|
|
│ │ │ └── com/gym/manage/
|
|
│ │ │ ├── api/ # API层
|
|
│ │ │ ├── application/ # 应用层
|
|
│ │ │ ├── domain/ # 领域层
|
|
│ │ │ ├── infrastructure/ # 基础设施层
|
|
│ │ │ └── common/ # 公共模块
|
|
│ │ └── resources/
|
|
│ │ ├── application.yml
|
|
│ │ └── schema.sql
|
|
│ └── test/
|
|
│ └── java/
|
|
└── pom.xml
|
|
```
|
|
|
|
## 快速开始
|
|
|
|
### 前置条件
|
|
|
|
- JDK 17+
|
|
- Maven 3.9+
|
|
- PostgreSQL 16+
|
|
|
|
### 数据库准备
|
|
|
|
```sql
|
|
CREATE DATABASE gym_manage;
|
|
```
|
|
|
|
### 运行项目
|
|
|
|
```bash
|
|
mvn clean install
|
|
mvn spring-boot:run
|
|
```
|
|
|
|
### 访问API文档
|
|
|
|
- Swagger UI: http://localhost:8080/swagger-ui.html
|
|
- OpenAPI JSON: http://localhost:8080/v3/api-docs
|
|
|
|
## 核心模块
|
|
|
|
### 会员模块
|
|
- 会员注册、查询、更新
|
|
- 会员卡管理
|
|
|
|
### 预约模块
|
|
- 团课预约
|
|
- 私教预约
|
|
- 时段管理
|
|
|
|
### 签到模块
|
|
- 扫码签到
|
|
- 签到记录查询
|
|
|
|
### 权益模块
|
|
- 权益管理
|
|
- 权益扣减
|
|
|
|
### 订阅模块
|
|
- 模块订阅
|
|
- 计费管理
|
|
|
|
### 营销模块
|
|
- 营销活动管理
|
|
- 推荐奖励
|
|
|
|
### 数据分析模块
|
|
- 统计报表
|
|
- 数据概览
|
|
|
|
## 性能目标
|
|
|
|
- 并发连接数: ≥ 1000
|
|
- API响应时间(P99): < 500ms
|
|
- 吞吐量(QPS): ≥ 3000
|
|
- 内存占用: < 1GB
|
|
- CPU利用率: < 60%
|
|
|
|
## 测试
|
|
|
|
```bash
|
|
mvn test
|
|
```
|
|
|
|
## 文档
|
|
|
|
- [POC实施计划](docs/plans/2026-03-05-poc-implementation-plan.md)
|
|
- [技术架构设计](docs/design/HLD-技术架构设计.md)
|
|
- [响应式编程规范](docs/design/STD-响应式编程规范.md)
|
|
|
|
## 许可证
|
|
|
|
MIT License
|
|
|
|
## 联系方式
|
|
|
|
- 技术负责人: 张翔
|
|
- 邮箱: zhangxiang@example.com
|