# 武术赛事管理系统 - 后端 API

基于 BladeX 4.0.1 企业级框架构建的武术比赛管理系统后端服务。

## 在线访问

| 服务 | 地址 | 说明 |
|------|------|------|
| 后端 API | https://martial-api.aitisai.com | Spring Boot 服务 |
| 管理后台 | https://martial-admin.aitisai.com | Web 管理端 |
| 用户端 | https://martial.aitisai.com | 报名小程序 H5 |
| 裁判端 | https://martial-mini.aitisai.com | 裁判评分小程序 |
| OSS 存储 | https://martial-oss.aitisai.com | MinIO 对象存储 |
| MinIO 控制台 | https://martial-minio.aitisai.com | MinIO 管理界面 |

## 技术栈

- **框架**: Spring Boot 3.2.4 + BladeX 4.0.1
- **语言**: Java 17
- **数据库**: MySQL 8.0 + Redis 7
- **ORM**: MyBatis-Plus
- **数据库迁移**: Flyway
- **对象存储**: MinIO
- **反向代理**: Caddy
- **容器化**: Docker Compose

## 快速开始

### 环境要求

- Docker & Docker Compose

### 一键部署（推荐）

确保目录结构如下：
```
martial/
├── martial-tool/       # BladeX 框架（必需）
├── martial-master/     # 后端项目
├── martial-web/        # 管理后台前端
├── martial-mini/       # 用户端小程序
└── martial-admin-mini/ # 裁判端小程序
```

```bash
cd martial/martial-master

# 首次部署（完整构建，约5-6分钟）
docker compose up -d

# 查看构建日志
docker compose logs -f martial-api

# 查看服务状态
docker compose ps
```

服务启动后：
- API 服务: http://localhost:8123
- API 文档: http://localhost:8123/doc.html

### 快速构建（开发迭代）

如果已经手动编译过 JAR，可以使用快速构建：

```bash
# 先编译 martial-tool（首次）
cd ../martial-tool && mvn clean install -DskipTests

# 编译 martial-master
cd ../martial-master && mvn clean package -DskipTests

# 使用快速构建 Dockerfile
docker compose build martial-api --build-arg DOCKERFILE=Dockerfile.quick
```

## 项目结构

```
martial-master/
├── src/main/java/org/springblade/
│   ├── modules/martial/          # 武术比赛核心业务
│   │   ├── controller/           # 接口控制器
│   │   ├── service/              # 业务逻辑
│   │   ├── mapper/               # 数据访问
│   │   └── pojo/                 # 实体类
│   └── ...                       # BladeX 框架模块
├── src/main/resources/
│   ├── application.yml           # 主配置
│   ├── application-dev.yml       # 开发环境
│   ├── application-prod.yml      # 生产环境
│   └── db/migration/             # Flyway 迁移脚本
├── database/                     # 数据库初始化脚本
├── docs/                         # 项目文档
├── docker-compose.yml            # Docker 编排配置
├── Dockerfile.fullbuild          # 完整构建（含 martial-tool）
└── Dockerfile.quick              # 快速构建（需预编译 JAR）
```

## Docker Compose 服务

| 服务 | 端口 | 说明 |
|------|------|------|
| martial-api | 8123 | 后端 API 服务 |
| martial-mysql | 3306 | MySQL 数据库 |
| martial-redis | 6379 | Redis 缓存 |
| minio | 9000/9001 | 对象存储 |

## 数据库迁移

项目使用 Flyway 管理数据库版本，应用启动时自动执行迁移。

**添加新迁移：**
```bash
# 在 src/main/resources/db/migration/ 创建脚本
# 命名规范: V{版本号}__{描述}.sql
# 示例: V3__add_new_table.sql
```

详细说明：[docs/DATABASE_MIGRATION.md](./docs/DATABASE_MIGRATION.md)

## 开发文档

| 文档 | 说明 |
|------|------|
| [CLAUDE.md](./CLAUDE.md) | 项目完整说明 |
| [docs/开发指南.md](./docs/开发指南.md) | 开发规范 |
| [docs/架构说明.md](./docs/架构说明.md) | 架构设计 |
| [docs/DATABASE_MIGRATION.md](./docs/DATABASE_MIGRATION.md) | 数据库迁移指南 |

## 相关仓库

| 仓库 | 说明 |
|------|------|
| [martial-master](https://git.waypeak.work/martial/martial-master) | 后端 API |
| [martial-web](https://git.waypeak.work/martial/martial-web) | 管理后台前端 |
| [martial-mini](https://git.waypeak.work/martial/martial-mini) | 用户端小程序 |
| [martial-admin-mini](https://git.waypeak.work/martial/martial-admin-mini) | 裁判端小程序 |

## 许可协议

本项目基于 **BladeX 商业框架** 构建，需遵守 [BladeX 商业授权许可协议](https://license.bladex.cn)。

---

**最后更新**: 2024-12-29
