diff --git a/.deploy/prod-deploy/sql/20260714_reward_grant_record_menu.sql b/.deploy/prod-deploy/sql/20260714_reward_grant_record_menu.sql index 21be84b2..4788fe5c 100644 --- a/.deploy/prod-deploy/sql/20260714_reward_grant_record_menu.sql +++ b/.deploy/prod-deploy/sql/20260714_reward_grant_record_menu.sql @@ -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; diff --git a/.deploy/test-deploy/sql/20260714_reward_grant_record_menu.sql b/.deploy/test-deploy/sql/20260714_reward_grant_record_menu.sql index 21be84b2..4788fe5c 100644 --- a/.deploy/test-deploy/sql/20260714_reward_grant_record_menu.sql +++ b/.deploy/test-deploy/sql/20260714_reward_grant_record_menu.sql @@ -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;