Files
thebet365/docs/默认数据说明.md
Mars 95abbcb470 feat: 世界杯48强夺冠盘、管理端调赔与项目文档
- 固定48强基准数据、同步种子与后台世界杯夺冠页

- 补全 user_preferences 迁移文件;新增启动指南与默认数据说明

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-03 16:19:36 +08:00

179 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 默认数据说明
执行 `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:0005: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) — 项目概览