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

View File

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