Files
thebet365/docs/默认数据说明.md
2026-06-13 22:16:14 +08:00

7.5 KiB
Raw Blame History

默认数据说明

执行 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 一级代理 仅 dev seed 写入,授信额度 100,000
agent2 Agent@123 二级代理 仅 dev seed 写入,上级为 agent1授信 30,000
player1 Player@123 玩家 仅 dev seed 写入,挂靠 agent1

生产模式 seed 只写入 admin 和赛事目录数据,不写入代理、玩家、充值流水或注单。

入口 地址
管理后台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

三、默认赛事与盘口

联赛

代码 名称
WC2026 2026 世界杯(加拿大、墨西哥、美国)

已发布场次

  • 世界杯小组赛 72 场:含 2026-06 固定日期、场馆、分组、球队中英文名。
  • 球队图片使用公开 FlagCDN 国旗 URL例如 https://flagcdn.com/fr.svg;不再使用旧的赛事图片源。
  • 默认赛事全部为非热门赛事,玩家首页不会因为 seed 数据自动出现热门赛事。

每场在尚无盘口时会自动创建演示玩法,包括但不限于:

  • 全场 / 半场:独赢、让球、大小、单双
  • 全场:波胆(多档比分选项)

默认足球盘口模板与赛事 seed 不创建 HT_CORRECT_SCORE(上半场波胆)和 SH_CORRECT_SCORE(下半场波胆)。这两个盘口类型仍保留在系统识别能力中,便于兼容历史数据或后续手动扩展。

赔率均为种子脚本中的示例数值,可在管理后台赛事相关流程中调整(非冠军盘)。

世界杯 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
示例注单 默认不写入演示注单

五、运营内容(玩家首页)

类型 数量 说明
Banner 3 欢迎投注、首存礼遇、热门赛事
走马灯TICKER 1 欢迎语 + 理性投注提示
公告NOTICE 1 每周一 04:0005:00 维护通知

图片路径示例:/uploads/banners/welcome.svg 等。
重复执行 seed 时,已存在的同类内容可能因 catch 跳过,不会无限重复插入。


六、权限与库内多语言

角色与权限

  • 角色:SUPER_ADMIN(超级管理员)
  • 权限示例:users.createusers.viewagents.createagents.viewwallet.depositwallet.withdrawmatches.managesettlement.confirmcashback.confirmcontent.managereports.view

i18n_messages 表

种子仅写入少量玩家端 key中 / 英 / 马来),例如 nav.homebet.place_bet
管理后台与玩家端大部分文案在代码内admin-messagesplayer 内 vue-i18n不全部存数据库。


七、管理后台默认行为

默认
界面语言 中文 zh-CNlocalStorageadmin_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


九、如何查看 / 重置

# 可视化浏览所有表
pnpm db:studio

# 重新写入种子(不删表,多为 upsert
pnpm db:seed

仅想恢复 48 强夺冠赔率 为代码基准:管理后台 → 优胜冠军导入世界杯 48 强

清空数据库后重来:

docker compose down -v   # 会删除 Docker 数据卷,慎用
docker compose up -d
pnpm db:migrate
pnpm db:seed

生产服务器如需清空业务数据并写入正规默认数据,优先使用脚本:

CONFIRM=YES ./scripts/prod-init-db.sh

该脚本会先备份 PostgreSQL 到 backups/*.sql.gz 并生成 .sha256,再执行 Prisma 迁移,然后以 production 模式清空业务表并写入 admin、WC2026 小组赛 72 场和 48 强优胜盘。


十、相关文档