优化对战百佳历史接口
This commit is contained in:
+9
-82
@@ -126,91 +126,18 @@ SELECT COUNT(*) FROM sys_role_menu WHERE menu_id=3208;
|
||||
2. 水位从 0 起步。`enabled=true` 时前几件货会落在收紧档(水位低 → 随机数高),属预期行为;
|
||||
需要立刻放水用后台「奖池水位 → 注水」。
|
||||
|
||||
---
|
||||
-----------------------对战接口优化--------------------------
|
||||
|
||||
## 新增「麻将胡了」(mahjong 玩法)的后台菜单、角色授权与维护开关
|
||||
SHOW INDEX FROM tt_fight;
|
||||
|
||||
**背景**:麻将胡了以「**新游戏**」类型接入,复用原玫瑰女郎(olympus 玩法)的整套统计口径
|
||||
—— 消费流水 `source=68`、奖励流水 `source=69`、开箱产出 `source=15`、新游戏返佣费率字段
|
||||
`tt_user.newGameCommissionRate`。代码层改动(后端统计链路 + 两个前端)见 `docs/修改记录.md`;
|
||||
本条目**只记数据库变更**。
|
||||
ALTER TABLE tt_fight ADD INDEX idx_ttf_status_create (status, create_time);
|
||||
|
||||
**本次数据库变更 3 张表、共 17 行**(2026-09-22 已在库 `henan` 执行):
|
||||
ALTER TABLE tt_fight
|
||||
ADD COLUMN total_ornaments_price DECIMAL(18,2) NULL COMMENT '本场开箱饰品总价值(百佳榜排序用)',
|
||||
ADD INDEX idx_ttf_status_total (status, total_ornaments_price);
|
||||
|
||||
| 表 | 变更 | 说明 |
|
||||
|---|---|---|
|
||||
| `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` |
|
||||
ALTER TABLE tt_fight_user ADD INDEX idx_tfu_fight_user (fight_id, user_id);
|
||||
|
||||
> **为什么 `menu_id` 用 `3200~3207`**:`3130~3137` 是已下架的奥林匹斯旧号段,不复用,
|
||||
> 免得数据里「哪段 ID 属于哪个玩法」的对应关系失真。
|
||||
ALTER TABLE tt_fight ADD INDEX idx_ttf_create_time (create_time);
|
||||
|
||||
**变更 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` + `ON DUPLICATE KEY UPDATE`),无任何 `DROP` / `DELETE`。
|
||||
|
||||
执行方式(**2026-09-22 已执行**):
|
||||
|
||||
```bash
|
||||
docker exec -i henan_mysql_db mysql -uroot -p123456 --default-character-set=utf8mb4 -D henan < mahjong-py/schema.sql
|
||||
```
|
||||
|
||||
落库结果(实测):
|
||||
|
||||
| 表 | 行数 | 说明 |
|
||||
|---|---|---|
|
||||
| `game_mahjong_box` | 11 | 11 档投注,`price ≡ bet` |
|
||||
| `game_mahjong_bucket` | 16 | 0x ~ 500x |
|
||||
| `game_mahjong_prize_ornament` | 12 | 返奖饰品(沿用玫瑰女郎 id 以维持区间映射) |
|
||||
| `game_mahjong_prize_range` | 12 | 连续覆盖 0.01 ~ 99,999,999 |
|
||||
| `_box_bucket` / `_round` / `_step` / `_record` / `_user` / `_box_template` / `_reward_log` | 0 | 空表,等运行期数据 |
|
||||
|
||||
```sql
|
||||
SELECT COUNT(*) FROM information_schema.tables
|
||||
WHERE table_schema = 'henan' AND table_name LIKE 'game\_mahjong\_%'; -- 期望 11,实测 11
|
||||
```
|
||||
|
||||
**仍需后台操作生成的运行期数据**(不是建表,别当成漏建):
|
||||
|
||||
1. `game_mahjong_box_bucket` 的 **528 行配比**(16 桶 × 11 箱 × 3 身份)—— 后台
|
||||
「麻将胡了 → 箱子配置 → 一键重算」(`POST /admin/mahjong/box/recalc_all`)。**空表时挑不到回合。**
|
||||
2. **每箱×身份的初始奖池水位** —— 后台「奖池水位 → 注水」(`¥300` / `¥500` 两档需单独注)。
|
||||
-----------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user