73 lines
5.2 KiB
Markdown
73 lines
5.2 KiB
Markdown
# 数据库变更台账
|
||
|
||
> **数据库改动只写这里**:中文标题 + 完整可执行 SQL。不再单独建 `docs/*.sql`(全量基线除外)。
|
||
> 只记**变更 SQL**;**不写回滚 SQL** —— 已执行的条目即为既成事实,要撤销请从本文件的 git 历史取旧版本。
|
||
> 若某条变更依赖**尚未执行**的前置对象(建表、种子数据等),必须在条目标注清楚,别让后来者踩空。
|
||
|
||
---
|
||
|
||
## 新增「麻将胡了」(mahjong 玩法)的后台菜单、角色授权与维护开关
|
||
|
||
**背景**:麻将胡了以「**新游戏**」类型接入,复用原玫瑰女郎(olympus 玩法)的整套统计口径
|
||
—— 消费流水 `source=68`、奖励流水 `source=69`、开箱产出 `source=15`、新游戏返佣费率字段
|
||
`tt_user.newGameCommissionRate`。代码层改动(后端统计链路 + 两个前端)见 `docs/修改记录.md`;
|
||
本条目**只记数据库变更**。
|
||
|
||
**本次数据库变更 3 张表、共 17 行**(2026-09-22 已在库 `henan` 执行):
|
||
|
||
| 表 | 变更 | 说明 |
|
||
|---|---|---|
|
||
| `sys_config` | 新增 **1 行** | `config_id=154`、`config_key='mahjongMaintenance'`,即「麻将胡了维护」开关 |
|
||
| `sys_menu` | 新增 **8 行** | 顶级目录 `mahjong`(`menu_id=3200`)+ 7 个子页面(`3201`~`3207`) |
|
||
| `sys_role_menu` | 新增 **8 行** | 全部授权给 `role_id=103` |
|
||
|
||
> **为什么 `menu_id` 用 `3200~3207`**:`3130~3137` 是已下架的奥林匹斯旧号段,不复用,
|
||
> 免得数据里「哪段 ID 属于哪个玩法」的对应关系失真。
|
||
|
||
**变更 SQL**:
|
||
|
||
```sql
|
||
INSERT INTO `sys_menu`
|
||
(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
|
||
VALUES
|
||
(3200, '麻将胡了', 0, 6, 'mahjong', '', NULL, 1, 0, 'M', '0', '0', '', 'star', 'admin', NOW(), '', NULL, '麻将胡了游戏后台管理目录'),
|
||
(3201, '箱子配置', 3200, 1, 'box', 'game/mahjong/box/index', NULL, 1, 0, 'C', '0', '0', 'game:mahjong:box', 'shopping', 'admin', NOW(), '', NULL, '麻将胡了·箱子配置(11 档投注,price ≡ bet)'),
|
||
(3202, '饰品列表', 3200, 2, 'bucket', 'game/mahjong/bucket/index', NULL, 1, 0, 'C', '0', '0', 'game:mahjong:bucket', 'star', 'admin', NOW(), '', NULL, '麻将胡了·16 档饰品桶定义(0x~500x,只读)'),
|
||
(3203, '回合管理', 3200, 3, 'round', 'game/mahjong/round/index', NULL, 1, 0, 'C', '0', '0', 'game:mahjong:round', 'documentation', 'admin', NOW(), '', NULL, '麻将胡了·预生成回合池(只读)'),
|
||
(3204, '奖池水位', 3200, 4, 'rewardPool', 'game/mahjong/rewardPool/index', NULL, 1, 0, 'C', '0', '0', 'game:mahjong:pool', 'money', 'admin', NOW(), '', NULL, '麻将胡了·奖池水位(3 身份:普通/主播/白号)'),
|
||
(3205, '玩家记录', 3200, 5, 'record', 'game/mahjong/record/index', NULL, 1, 0, 'C', '0', '0', 'game:mahjong:record', 'list', 'admin', NOW(), '', NULL, '麻将胡了·玩家游玩记录'),
|
||
(3206, '每日统计', 3200, 6, 'dailywin', 'game/mahjong/dailywin/index', NULL, 1, 0, 'C', '0', '0', 'game:mahjong:win', 'chart', 'admin', NOW(), '', NULL, '麻将胡了·每日投注/赢奖/RTP 统计'),
|
||
(3207, '奖品管理', 3200, 7, 'prize', 'game/mahjong/prize/index', NULL, 1, 0, 'C', '0', '0', 'game:mahjong:prize', 'guide', 'admin', NOW(), '', NULL, '麻将胡了·返奖饰品与返奖区间');
|
||
|
||
INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES
|
||
(103, 3200), (103, 3201), (103, 3202), (103, 3203),
|
||
(103, 3204), (103, 3205), (103, 3206), (103, 3207);
|
||
|
||
INSERT INTO `sys_config`
|
||
(`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
|
||
VALUES
|
||
(154, '麻将胡了维护', 'mahjongMaintenance', '0', 'Y', 'admin', NOW(), '', NULL, '麻将胡了维护开关 0正常 1维护');
|
||
```
|
||
|
||
**验证**(2026-09-22 实测结果):
|
||
|
||
```sql
|
||
SELECT COUNT(*) FROM sys_menu WHERE menu_id BETWEEN 3200 AND 3207; -- 期望 8,实测 8
|
||
SELECT COUNT(*) FROM sys_role_menu WHERE menu_id BETWEEN 3200 AND 3207; -- 期望 8,实测 8
|
||
SELECT COUNT(*) FROM sys_config WHERE config_key = 'mahjongMaintenance'; -- 期望 1,实测 1
|
||
```
|
||
|
||
后台左侧出现「麻将胡了」目录(`order_num=6`),下辖 7 个子页面;
|
||
「网站设置」页出现「麻将胡了维护」下拉框(0 正常 / 1 维护)。
|
||
|
||
**⚠️ 尚未落库的前置依赖:麻将胡了的 11 张游戏表**(`game_mahjong_box` / `_bucket` / `_box_bucket` /
|
||
`_round` / `_step` / `_record` / `_user` / `_box_template` / `_reward_log` / `_prize_ornament` / `_prize_range`)。
|
||
|
||
DDL + 种子数据已写在 `mahjong-py/schema.sql`(`CREATE TABLE IF NOT EXISTS` + 11 档箱子 / 饰品桶 / 返奖饰品种子),
|
||
**本次未执行** —— 上方 7 个后台页面依赖这些表,未建表前打开会报「表不存在」。
|
||
执行方式(需单独确认后进行):
|
||
|
||
```bash
|
||
docker exec -i henan_mysql_db mysql -uroot -p123456 --default-character-set=utf8mb4 -D henan < mahjong-py/schema.sql
|
||
```
|