# guandan-api
**Repository Path**: lirui666/guandan-api
## Basic Information
- **Project Name**: guandan-api
- **Description**: 掼蛋比赛 PHP
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-05-19
- **Last Updated**: 2026-05-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 掼蛋赛事助手 API
掼蛋赛事管理系统后端 API,基于 ThinkPHP 8 开发。
## 功能特性
- **用户系统**:注册、登录、JWT 认证
- **赛事管理**:创建、编辑、删除赛事,生成唯一赛事码
- **队伍管理**:创建队伍、管理队员
- **报名系统**:赛事报名、缴费管理
- **赛程生成**:支持循环赛和淘汰赛,自动生成赛程
- **比分录入**:比赛结果录入,淘汰赛自动晋级
- **管理员系统**:管理员权限管理
## 技术栈
- PHP 8.0+
- ThinkPHP 8.0
- MySQL 5.7+
- JWT 认证 (firebase/php-jwt)
## 安装指南
### 1. 克隆项目
```bash
git clone https://github.com/guandan/guandan-api.git
cd guandan-api
```
### 2. 安装依赖
```bash
composer install
```
### 3. 配置环境
```bash
cp .env.example .env
```
编辑 `.env` 文件,配置数据库连接:
```ini
DB_HOST = 127.0.0.1
DB_NAME = guandan
DB_USER = root
DB_PASS = your_password
DB_PORT = 3306
JWT_SECRET = your_random_secret_key_change_this
```
### 4. 创建数据库
```bash
# 创建数据库
mysql -u root -p -e "CREATE DATABASE guandan CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# 方式一:使用 SQL 文件导入
mysql -u root -p guandan < database/migrations/init.sql
# 方式二:使用 ThinkPHP 迁移(如果已安装 think-migration)
php think migrate:run
```
### 5. 设置目录权限
```bash
chmod -R 755 runtime/
chmod -R 755 public/uploads/
```
### 6. 配置 Web 服务器
将网站根目录指向 `public/` 目录。
**Nginx 配置示例:**
```nginx
server {
listen 80;
server_name api.guandan.example;
root /var/www/guandan-api/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
```
**Apache 配置示例:**
```apache
ServerName api.guandan.example
DocumentRoot /var/www/guandan-api/public
AllowOverride All
Require all granted
```
## API 接口文档
### 基础信息
- 基础 URL: `http://your-domain/api/`
- 响应格式: JSON
- 认证方式: Bearer Token
### 公共接口
#### 用户认证
| 方法 | 路径 | 描述 |
|------|------|------|
| POST | `/api/auth/register` | 用户注册 |
| POST | `/api/auth/login` | 用户登录 |
#### 赛事查询
| 方法 | 路径 | 描述 |
|------|------|------|
| GET | `/api/competitions` | 赛事列表 |
| GET | `/api/competitions/:id` | 赛事详情 |
| GET | `/api/competitions/:id/teams` | 参赛队伍 |
| GET | `/api/competitions/:id/matches` | 赛程 |
| GET | `/api/competitions/:id/rankings` | 排名 |
### 需要登录的接口
Header 需携带: `Authorization: Bearer `
#### 用户相关
| 方法 | 路径 | 描述 |
|------|------|------|
| POST | `/api/auth/logout` | 退出登录 |
| GET | `/api/auth/me` | 当前用户信息 |
| GET | `/api/user/profile` | 个人资料 |
| PUT | `/api/user/profile` | 更新资料 |
#### 队伍管理
| 方法 | 路径 | 描述 |
|------|------|------|
| GET | `/api/teams/my` | 我的队伍 |
| POST | `/api/teams` | 创建队伍 |
| PUT | `/api/teams/:id` | 更新队伍 |
| DELETE | `/api/teams/:id` | 删除队伍 |
#### 赛事报名
| 方法 | 路径 | 描述 |
|------|------|------|
| POST | `/api/competitions/:id/register` | 报名参赛 |
### 管理员接口
需要管理员权限
| 方法 | 路径 | 描述 |
|------|------|------|
| POST | `/api/competitions` | 创建赛事 |
| PUT | `/api/competitions/:id` | 更新赛事 |
| DELETE | `/api/competitions/:id` | 删除赛事 |
| POST | `/api/competitions/:id/schedule` | 生成赛程 |
| PUT | `/api/matches/:id/score` | 录入比分 |
| GET | `/api/admins` | 管理员列表 |
| POST | `/api/admins` | 添加管理员 |
| DELETE | `/api/admins/:id` | 移除管理员 |
## 请求/响应示例
### 注册
**请求:**
```json
POST /api/auth/register
{
"phone": "13800138000",
"password": "123456",
"nickname": "张三"
}
```
**响应:**
```json
{
"code": 200,
"msg": "注册成功",
"data": {
"token": "eyJ0eXAiOiJKV1QiLCJhbGc...",
"user": {
"id": 1,
"nickname": "张三",
"phone": "13800138000",
"balance": "500.00"
}
},
"time": 1705500000
}
```
### 创建赛事
**请求:**
```json
POST /api/competitions
Authorization: Bearer
{
"name": "春季掼蛋大赛",
"format": "elimination",
"max_teams": 16,
"team_size": 2,
"location": "市中心体育馆"
}
```
## 项目结构
```
guandan-api/
├── app/
│ ├── api/
│ │ ├── controller/ # 控制器
│ │ ├── model/ # 数据模型
│ │ └── middleware/ # 中间件
│ └── common.php # 公共函数
├── config/ # 配置文件
├── database/
│ └── migrations/ # 数据库迁移
├── public/ # 网站根目录
├── route/
│ └── app.php # 路由定义
├── composer.json
└── .env
```
## 开发说明
### 配置说明
- `config/app.php` - 应用配置
- `config/database.php` - 数据库配置
- `config/jwt.php` - JWT 配置
- `config/middleware.php` - 中间件配置
### 常用命令
```bash
# 清除缓存
php think clear
# 运行迁移
php think migrate:run
# 创建迁移
php think migrate:create AddNewField
```
## 许可证
MIT License