5.2 KiB
数据库变更台账
数据库改动只写这里:中文标题 + 完整可执行 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:
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 实测结果):
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 个后台页面依赖这些表,未建表前打开会报「表不存在」。
执行方式(需单独确认后进行):
docker exec -i henan_mysql_db mysql -uroot -p123456 --default-character-set=utf8mb4 -D henan < mahjong-py/schema.sql