# 默认数据说明 执行 `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 等 | | 玩家端 | 投注页 `/bet` → **「优胜冠军」**:按后台已发布赛事折叠展示,多赛事可分别展开;选项过多时点击 **加载更多**(须玩家账号) | | 管理端 | 菜单 **「优胜冠军」** → 选择赛事 → 可增删队伍、改赔率;世界杯可 **导入 48 强基准** | | 恢复基准 | **优胜冠军** 页点击 **「导入世界杯 48 强」** 与代码表对齐 | `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 | --- ## 八、玩家端看不到「优胜冠军」时 1. 使用 **玩家账号** 登录(`player1` / `Player@123`),代理或管理员账号无法访问 `GET /player/outrights`。 2. 确认 API 已启动:`pnpm dev:api`。 3. 确认已种子:`pnpm db:seed`(或管理端 **优胜冠军 → 导入世界杯 48 强**)。 4. 进入 **投注** 页,点顶部 **优胜冠军**(不是「赛事」标签)。 5. 浏览器 F12 → Network,看 `/api/player/outrights` 是否 200 且 `data` 数组非空。 **后台有数据、玩家端没有**:多为玩家接口原先只查 `OPEN` 盘口,与后台查询不一致;现已改为与管理端「优胜冠军」页共用 `OutrightService` 数据源。修改后需 **重启 API**。 --- ## 九、如何查看 / 重置 ```bash # 可视化浏览所有表 pnpm db:studio # 重新写入种子(不删表,多为 upsert) pnpm db:seed ``` 仅想恢复 **48 强夺冠赔率** 为代码基准:管理后台 → **优胜冠军** → **导入世界杯 48 强**。 清空数据库后重来: ```bash docker compose down -v # 会删除 Docker 数据卷,慎用 docker compose up -d pnpm db:migrate pnpm db:seed ``` --- ## 十、相关文档 - [项目启动指南.md](./项目启动指南.md) — 安装、启动、排错 - [README.md](../README.md) — 项目概览