|
|
# SZKP 地图服务 - 后端(Laravel + MySQL)
|
|
|
|
|
|
## 本地环境
|
|
|
|
|
|
- PHP:8.1(当前工程初始化为 Laravel 10)
|
|
|
- MySQL:8.x
|
|
|
|
|
|
## 数据库配置(本地)
|
|
|
|
|
|
已按你的要求写入 `.env`:
|
|
|
|
|
|
- **DB_DATABASE**: `szkp_map_local`
|
|
|
- **DB_USERNAME**: `root`
|
|
|
- **DB_PASSWORD**: `root123456`
|
|
|
|
|
|
## 初始化与启动
|
|
|
|
|
|
```bash
|
|
|
composer install
|
|
|
|
|
|
# 首次需要创建数据库(已创建可跳过)
|
|
|
mysql -uroot -proot123456 -e "CREATE DATABASE IF NOT EXISTS szkp_map_local DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
|
|
|
|
|
|
php artisan migrate
|
|
|
|
|
|
php artisan serve --host=127.0.0.1 --port=8000
|
|
|
```
|
|
|
|
|
|
启动后访问 `http://127.0.0.1:8000/`。
|
|
|
|
|
|
## 本地与测试环境切换
|
|
|
|
|
|
项目已提供两套后端环境文件:
|
|
|
|
|
|
- 本地:`.env`
|
|
|
- 测试:`.env.testing`(域名 `szkp-map.ali251.langye.net`)
|
|
|
|
|
|
本地启动(默认读取 `.env`):
|
|
|
|
|
|
```bash
|
|
|
php artisan config:clear
|
|
|
php artisan serve --host=127.0.0.1 --port=8000
|
|
|
```
|
|
|
|
|
|
测试配置启动(读取 `.env.testing`):
|
|
|
|
|
|
```bash
|
|
|
php artisan config:clear
|
|
|
php artisan serve --env=testing --host=0.0.0.0 --port=8000
|
|
|
```
|
|
|
|
|
|
如果测试库用户名不是 `szkp_map_ali251_`,请修改 `.env.testing` 中 `DB_USERNAME`。
|
|
|
|
|
|
### 前端测试模式
|
|
|
|
|
|
- 后台管理(`szkp-map-web`):
|
|
|
- 本地:`npm run dev`
|
|
|
- 测试:`npm run dev:testing`
|
|
|
- H5(`szkp-map-h5`):
|
|
|
- 本地:`npm run dev:h5`
|
|
|
- 测试:`npm run dev:h5:testing`
|
|
|
|
|
|
跨域已改为白名单配置,默认放行:
|
|
|
|
|
|
- `http://localhost:5173`
|
|
|
- `http://127.0.0.1:5173`
|
|
|
- `http://localhost:5174`
|
|
|
- `http://127.0.0.1:5174`
|
|
|
- `https://szkp-map.ali251.langye.net`
|
|
|
|
|
|
## 默认测试账号(`php artisan db:seed` 后)
|
|
|
|
|
|
- 超级管理员:`admin` / `admin123456`
|
|
|
- 场馆管理员:`venue_admin_01` / `admin123456`
|
|
|
|
|
|
场馆管理员已绑定一个默认场馆,用于测试“仅可编辑自己场馆、仅可核销自己场馆预约二维码”。
|
|
|
|
|
|
## 已提供接口(管理员与场馆权限)
|
|
|
|
|
|
- `POST /api/auth/login`
|
|
|
- `POST /api/auth/logout`
|
|
|
- `GET /api/me`
|
|
|
- `GET/POST/PUT /api/venues`(场馆管理员仅能查看/编辑自己绑定场馆)
|
|
|
- `GET/POST/PUT /api/admin-users`(仅超级管理员)
|
|
|
- `POST /api/reservations/verify`(按二维码核销,且限制到当前账号绑定场馆)
|
|
|
|