- 固定48强基准数据、同步种子与后台世界杯夺冠页 - 补全 user_preferences 迁移文件;新增启动指南与默认数据说明 Co-authored-by: Cursor <cursoragent@cursor.com>
179 lines
5.8 KiB
Markdown
179 lines
5.8 KiB
Markdown
# 默认数据说明
|
||
|
||
执行 `pnpm db:migrate` 后数据库仅有**表结构**;执行 **`pnpm db:seed`** 后会写入下文演示数据。
|
||
种子脚本位置:`apps/api/prisma/seed.ts`。
|
||
|
||
> **注意**:以下为开发演示用途。生产环境务必修改密码、`JWT_SECRET`,勿直接使用默认账号。
|
||
|
||
---
|
||
|
||
## migrate 与 seed 的区别
|
||
|
||
| 命令 | 作用 |
|
||
|------|------|
|
||
| `pnpm db:migrate` | 按 Prisma 迁移**建表 / 改表**(用户、赛事、盘口、注单等) |
|
||
| `pnpm db:seed` | 在已有表结构中**写入演示账号、赛事、赔率、内容等** |
|
||
|
||
推荐顺序:先 `db:migrate`,再 `db:seed`。
|
||
种子多为 **upsert**:重复执行一般不会重复创建用户,但会补全赛事、48 强夺冠盘等。
|
||
|
||
---
|
||
|
||
## 一、默认账号
|
||
|
||
| 用户名 | 密码 | 角色 | 说明 |
|
||
|--------|------|------|------|
|
||
| `admin` | `Admin@123` | 平台管理员 | 绑定 `SUPER_ADMIN` 角色 |
|
||
| `agent1` | `Agent@123` | 一级代理 | 授信额度 **100,000** |
|
||
| `agent2` | `Agent@123` | 二级代理 | 上级为 agent1,授信 **30,000** |
|
||
| `player1` | `Player@123` | 玩家 | 挂靠 agent1 |
|
||
|
||
| 入口 | 地址 |
|
||
|------|------|
|
||
| 管理后台(admin / agent1 / agent2) | http://localhost:5174 |
|
||
| 玩家前台(player1) | http://localhost:5173 |
|
||
|
||
| 接口 | 路径 |
|
||
|------|------|
|
||
| 管理端登录 | `POST /api/manage/auth/login` |
|
||
| 玩家端登录 | `POST /api/player/auth/login` |
|
||
|
||
---
|
||
|
||
## 二、默认环境与端口
|
||
|
||
| 项 | 默认值 |
|
||
|----|--------|
|
||
| API | http://localhost:3000 ,全局前缀 `/api` |
|
||
| Swagger | http://localhost:3000/api/docs |
|
||
| 管理后台 | http://localhost:5174 |
|
||
| 玩家前台 | http://localhost:5173 |
|
||
| Docker PostgreSQL | 用户/密码/库:`thebet365` @ `localhost:5432` |
|
||
| Docker Redis | `localhost:6379`(当前 API 逻辑以 Postgres 为主) |
|
||
|
||
`apps/api/.env` 模板见根目录 `.env.example`,主要项:
|
||
|
||
| 变量 | 示例 | 说明 |
|
||
|------|------|------|
|
||
| `DATABASE_URL` | `postgresql://thebet365:thebet365@localhost:5432/thebet365` | 数据库连接 |
|
||
| `JWT_SECRET` | 长随机串 | **生产必须修改** |
|
||
| `JWT_PLAYER_EXPIRES` | `24h` | 玩家 Token |
|
||
| `JWT_ADMIN_EXPIRES` | `2h` | 管理员 Token |
|
||
| `JWT_AGENT_EXPIRES` | `8h` | 代理 Token |
|
||
| `PORT` | `3000` | API 端口 |
|
||
| `UPLOAD_DIR` | 空 | 默认 `apps/api/uploads` |
|
||
|
||
---
|
||
|
||
## 三、默认赛事与盘口
|
||
|
||
### 联赛
|
||
|
||
| 代码 | 名称 |
|
||
|------|------|
|
||
| `EPL` | 英超 / Premier League |
|
||
| `WC2026` | 2026 世界杯(加拿大、墨西哥、美国) |
|
||
|
||
### 已发布场次(约 9 场)
|
||
|
||
- **英超 2 场**:如曼联 vs 切尔西(开球时间为相对当前的演示时间)
|
||
- **世界杯 7 场**:如墨西哥-南非、美国-巴拉圭、法国-阿根廷等(2026-06 固定日期)
|
||
|
||
每场在尚无盘口时会自动创建演示玩法,包括但不限于:
|
||
|
||
- 全场 / 半场:独赢、让球、大小、单双
|
||
- 全场 / 半场 / 下半场:波胆(多档比分选项)
|
||
|
||
赔率均为种子脚本中的**示例数值**,可在管理后台赛事相关流程中调整(非冠军盘)。
|
||
|
||
### 世界杯 48 强夺冠盘
|
||
|
||
| 项 | 说明 |
|
||
|----|------|
|
||
| 数据来源 | `apps/api/src/domains/catalog/wc2026-outright-teams.ts` |
|
||
| 队伍数 | **48** 支,含排名与中英文名 |
|
||
| 默认赔率 | 如法国 4.95、英格兰 6.3、苏格兰 2500 等 |
|
||
| 玩家端 | 足球页 → **「优胜冠军」** |
|
||
| 管理端 | 菜单 **「世界杯夺冠」** → 可改赔率 |
|
||
| 恢复基准 | 点击 **「应用表格基准数据」** 与代码表对齐 |
|
||
|
||
`pnpm db:seed` 会以 `forceCanonical: true` 同步 48 强;已有选项的赔率仅在「应用基准」或重新 seed 时按文件覆盖。
|
||
|
||
---
|
||
|
||
## 四、玩家演示数据(player1)
|
||
|
||
| 项 | 默认值 |
|
||
|----|--------|
|
||
| 可用余额 | **88,888.88** |
|
||
| 账变流水 | 2 笔演示充值(`DEMO-DEP-001` / `DEMO-DEP-002`) |
|
||
| 语言偏好 | `zh-CN` |
|
||
| 示例注单 | `DEMO-BET-001`:待结算单关;`DEMO-BET-002`:已赢且已结算单关 |
|
||
|
||
---
|
||
|
||
## 五、运营内容(玩家首页)
|
||
|
||
| 类型 | 数量 | 说明 |
|
||
|------|------|------|
|
||
| Banner | 3 | 欢迎投注、首存礼遇、热门赛事 |
|
||
| 走马灯(TICKER) | 1 | 欢迎语 + 理性投注提示 |
|
||
| 公告(NOTICE) | 1 | 每周一 04:00–05:00 维护通知 |
|
||
|
||
图片路径示例:`/uploads/banners/welcome.svg` 等。
|
||
重复执行 seed 时,已存在的同类内容可能因 `catch` 跳过,不会无限重复插入。
|
||
|
||
---
|
||
|
||
## 六、权限与库内多语言
|
||
|
||
### 角色与权限
|
||
|
||
- 角色:`SUPER_ADMIN`(超级管理员)
|
||
- 权限示例:`users.create`、`users.view`、`agents.create`、`agents.view`、`wallet.deposit`、`wallet.withdraw`、`matches.manage`、`settlement.confirm`、`cashback.confirm`、`content.manage`、`reports.view`
|
||
|
||
### i18n_messages 表
|
||
|
||
种子仅写入少量玩家端 key(中 / 英 / 马来),例如 `nav.home`、`bet.place_bet`。
|
||
**管理后台与玩家端大部分文案在代码内**(`admin-messages`、`player` 内 vue-i18n),不全部存数据库。
|
||
|
||
---
|
||
|
||
## 七、管理后台默认行为
|
||
|
||
| 项 | 默认 |
|
||
|----|------|
|
||
| 界面语言 | 中文 `zh-CN`(`localStorage` 键 `admin_locale`) |
|
||
| 可选语言 | 中文、English、Bahasa Melayu |
|
||
| 登录页 | 若开启「快速登录(调试)」可一键 admin / agent |
|
||
|
||
---
|
||
|
||
## 八、如何查看 / 重置
|
||
|
||
```bash
|
||
# 可视化浏览所有表
|
||
pnpm db:studio
|
||
|
||
# 重新写入种子(不删表,多为 upsert)
|
||
pnpm db:seed
|
||
```
|
||
|
||
仅想恢复 **48 强夺冠赔率** 为代码基准:管理后台 → **世界杯夺冠** → **应用表格基准数据**。
|
||
|
||
清空数据库后重来:
|
||
|
||
```bash
|
||
docker compose down -v # 会删除 Docker 数据卷,慎用
|
||
docker compose up -d
|
||
pnpm db:migrate
|
||
pnpm db:seed
|
||
```
|
||
|
||
---
|
||
|
||
## 相关文档
|
||
|
||
- [项目启动指南.md](./项目启动指南.md) — 安装、启动、排错
|
||
- [README.md](../README.md) — 项目概览
|