fix(console): attach reward records to operation menu

This commit is contained in:
zhx 2026-07-14 20:37:37 +08:00
parent 0104ad5100
commit dc122119f3
2 changed files with 32 additions and 62 deletions

View File

@ -1,5 +1,5 @@
-- Webconsole reward grant record menu and list API permission. -- Webconsole reward grant record menu and list API permission.
-- The menu follows the existing room contribution page and inherits only its roles. -- The menu is added under 运营管理 and inherits only roles that already own that directory.
SET NAMES utf8mb4; SET NAMES utf8mb4;
@ -21,7 +21,7 @@ ON DUPLICATE KEY UPDATE
perm = VALUES(perm), perm = VALUES(perm),
update_time = NOW(); update_time = NOW();
-- 关键逻辑:优先使用现有“房间支持活动”的父目录,确保新页面与活动记录同级 -- 关键逻辑:线上没有“房间支持活动”动态菜单,奖励记录直接归属“运营管理”
INSERT INTO sys_menu ( INSERT INTO sys_menu (
parent_id, parent_id,
menu_name, menu_name,
@ -38,53 +38,43 @@ INSERT INTO sys_menu (
update_time update_time
) )
SELECT SELECT
source_menu.parent_id, parent.id,
'奖励发放记录', '奖励发放记录',
'activity/reward-grant-record/index', 'activity/reward-grant-record/index',
'activity/reward-grant-record', 'activity/reward-grant-record',
2, 2,
'form', 'form',
'activity:reward-grant-record', 'activity:reward-grant-record',
source_menu.sort - 1, 89,
0, 0,
'0', '0',
'0', '0',
NOW(), NOW(),
NOW() NOW()
FROM sys_menu source_menu FROM sys_menu parent
LEFT JOIN sys_menu existing ON existing.alias = 'activity:reward-grant-record' LEFT JOIN sys_menu existing ON existing.alias = 'activity:reward-grant-record'
WHERE ( WHERE (parent.alias = 'OperationManager' OR parent.menu_name = '运营管理')
source_menu.router = 'activity/room/contribution' AND parent.menu_type = 1
OR source_menu.router = '/activity/room/contribution'
OR source_menu.path = 'activity/room-contribution-list/index'
OR source_menu.menu_name = '房间支持活动'
)
AND source_menu.menu_type = 2
AND existing.id IS NULL AND existing.id IS NULL
LIMIT 1; LIMIT 1;
-- 关键逻辑:迁移可重复执行,已存在菜单时仍同步页面路径和所属目录。 -- 关键逻辑:迁移可重复执行,已存在菜单时仍同步页面路径和所属目录。
UPDATE sys_menu reward_menu UPDATE sys_menu reward_menu
JOIN ( JOIN (
SELECT parent_id, sort SELECT id
FROM sys_menu FROM sys_menu
WHERE ( WHERE (alias = 'OperationManager' OR menu_name = '运营管理')
router = 'activity/room/contribution' AND menu_type = 1
OR router = '/activity/room/contribution'
OR path = 'activity/room-contribution-list/index'
OR menu_name = '房间支持活动'
)
AND menu_type = 2
LIMIT 1 LIMIT 1
) source_menu ON 1 = 1 ) parent ON 1 = 1
SET SET
reward_menu.parent_id = source_menu.parent_id, reward_menu.parent_id = parent.id,
reward_menu.menu_name = '奖励发放记录', reward_menu.menu_name = '奖励发放记录',
reward_menu.path = 'activity/reward-grant-record/index', reward_menu.path = 'activity/reward-grant-record/index',
reward_menu.router = 'activity/reward-grant-record', reward_menu.router = 'activity/reward-grant-record',
reward_menu.menu_type = 2, reward_menu.menu_type = 2,
reward_menu.icon = 'form', reward_menu.icon = 'form',
reward_menu.sort = source_menu.sort - 1, reward_menu.sort = 89,
reward_menu.status = 0, reward_menu.status = 0,
reward_menu.update_user = '0', reward_menu.update_user = '0',
reward_menu.update_time = NOW() reward_menu.update_time = NOW()
@ -100,7 +90,7 @@ LEFT JOIN sys_menu_resource existing
WHERE menu.alias = 'activity:reward-grant-record' WHERE menu.alias = 'activity:reward-grant-record'
AND existing.id IS NULL; AND existing.id IS NULL;
-- 关键逻辑:仅继承已有房间活动记录的角色,避免扩大后台数据可见范围。 -- 关键逻辑:仅继承“运营管理”目录的现有角色,避免扩大后台数据可见范围。
INSERT INTO sys_role_menu (role_id, menu_id) INSERT INTO sys_role_menu (role_id, menu_id)
SELECT DISTINCT source_role.role_id, reward_menu.id SELECT DISTINCT source_role.role_id, reward_menu.id
FROM sys_role_menu source_role FROM sys_role_menu source_role
@ -109,11 +99,6 @@ JOIN sys_menu reward_menu ON reward_menu.alias = 'activity:reward-grant-record'
LEFT JOIN sys_role_menu existing LEFT JOIN sys_role_menu existing
ON existing.role_id = source_role.role_id ON existing.role_id = source_role.role_id
AND existing.menu_id = reward_menu.id AND existing.menu_id = reward_menu.id
WHERE ( WHERE (source_menu.alias = 'OperationManager' OR source_menu.menu_name = '运营管理')
source_menu.router = 'activity/room/contribution' AND source_menu.menu_type = 1
OR source_menu.router = '/activity/room/contribution'
OR source_menu.path = 'activity/room-contribution-list/index'
OR source_menu.menu_name = '房间支持活动'
)
AND source_menu.menu_type = 2
AND existing.id IS NULL; AND existing.id IS NULL;

View File

@ -1,5 +1,5 @@
-- Webconsole reward grant record menu and list API permission. -- Webconsole reward grant record menu and list API permission.
-- The menu follows the existing room contribution page and inherits only its roles. -- The menu is added under 运营管理 and inherits only roles that already own that directory.
SET NAMES utf8mb4; SET NAMES utf8mb4;
@ -21,7 +21,7 @@ ON DUPLICATE KEY UPDATE
perm = VALUES(perm), perm = VALUES(perm),
update_time = NOW(); update_time = NOW();
-- 关键逻辑:优先使用现有“房间支持活动”的父目录,确保新页面与活动记录同级 -- 关键逻辑:线上没有“房间支持活动”动态菜单,奖励记录直接归属“运营管理”
INSERT INTO sys_menu ( INSERT INTO sys_menu (
parent_id, parent_id,
menu_name, menu_name,
@ -38,53 +38,43 @@ INSERT INTO sys_menu (
update_time update_time
) )
SELECT SELECT
source_menu.parent_id, parent.id,
'奖励发放记录', '奖励发放记录',
'activity/reward-grant-record/index', 'activity/reward-grant-record/index',
'activity/reward-grant-record', 'activity/reward-grant-record',
2, 2,
'form', 'form',
'activity:reward-grant-record', 'activity:reward-grant-record',
source_menu.sort - 1, 89,
0, 0,
'0', '0',
'0', '0',
NOW(), NOW(),
NOW() NOW()
FROM sys_menu source_menu FROM sys_menu parent
LEFT JOIN sys_menu existing ON existing.alias = 'activity:reward-grant-record' LEFT JOIN sys_menu existing ON existing.alias = 'activity:reward-grant-record'
WHERE ( WHERE (parent.alias = 'OperationManager' OR parent.menu_name = '运营管理')
source_menu.router = 'activity/room/contribution' AND parent.menu_type = 1
OR source_menu.router = '/activity/room/contribution'
OR source_menu.path = 'activity/room-contribution-list/index'
OR source_menu.menu_name = '房间支持活动'
)
AND source_menu.menu_type = 2
AND existing.id IS NULL AND existing.id IS NULL
LIMIT 1; LIMIT 1;
-- 关键逻辑:迁移可重复执行,已存在菜单时仍同步页面路径和所属目录。 -- 关键逻辑:迁移可重复执行,已存在菜单时仍同步页面路径和所属目录。
UPDATE sys_menu reward_menu UPDATE sys_menu reward_menu
JOIN ( JOIN (
SELECT parent_id, sort SELECT id
FROM sys_menu FROM sys_menu
WHERE ( WHERE (alias = 'OperationManager' OR menu_name = '运营管理')
router = 'activity/room/contribution' AND menu_type = 1
OR router = '/activity/room/contribution'
OR path = 'activity/room-contribution-list/index'
OR menu_name = '房间支持活动'
)
AND menu_type = 2
LIMIT 1 LIMIT 1
) source_menu ON 1 = 1 ) parent ON 1 = 1
SET SET
reward_menu.parent_id = source_menu.parent_id, reward_menu.parent_id = parent.id,
reward_menu.menu_name = '奖励发放记录', reward_menu.menu_name = '奖励发放记录',
reward_menu.path = 'activity/reward-grant-record/index', reward_menu.path = 'activity/reward-grant-record/index',
reward_menu.router = 'activity/reward-grant-record', reward_menu.router = 'activity/reward-grant-record',
reward_menu.menu_type = 2, reward_menu.menu_type = 2,
reward_menu.icon = 'form', reward_menu.icon = 'form',
reward_menu.sort = source_menu.sort - 1, reward_menu.sort = 89,
reward_menu.status = 0, reward_menu.status = 0,
reward_menu.update_user = '0', reward_menu.update_user = '0',
reward_menu.update_time = NOW() reward_menu.update_time = NOW()
@ -100,7 +90,7 @@ LEFT JOIN sys_menu_resource existing
WHERE menu.alias = 'activity:reward-grant-record' WHERE menu.alias = 'activity:reward-grant-record'
AND existing.id IS NULL; AND existing.id IS NULL;
-- 关键逻辑:仅继承已有房间活动记录的角色,避免扩大后台数据可见范围。 -- 关键逻辑:仅继承“运营管理”目录的现有角色,避免扩大后台数据可见范围。
INSERT INTO sys_role_menu (role_id, menu_id) INSERT INTO sys_role_menu (role_id, menu_id)
SELECT DISTINCT source_role.role_id, reward_menu.id SELECT DISTINCT source_role.role_id, reward_menu.id
FROM sys_role_menu source_role FROM sys_role_menu source_role
@ -109,11 +99,6 @@ JOIN sys_menu reward_menu ON reward_menu.alias = 'activity:reward-grant-record'
LEFT JOIN sys_role_menu existing LEFT JOIN sys_role_menu existing
ON existing.role_id = source_role.role_id ON existing.role_id = source_role.role_id
AND existing.menu_id = reward_menu.id AND existing.menu_id = reward_menu.id
WHERE ( WHERE (source_menu.alias = 'OperationManager' OR source_menu.menu_name = '运营管理')
source_menu.router = 'activity/room/contribution' AND source_menu.menu_type = 1
OR source_menu.router = '/activity/room/contribution'
OR source_menu.path = 'activity/room-contribution-list/index'
OR source_menu.menu_name = '房间支持活动'
)
AND source_menu.menu_type = 2
AND existing.id IS NULL; AND existing.id IS NULL;