yumi-java/sql/20260506_team_manager_menu.sql
2026-05-06 18:23:19 +08:00

112 lines
3.5 KiB
SQL

SET NAMES utf8mb4;
SET @team_parent_menu_id := (
SELECT `id` FROM `sys_menu` WHERE `alias` = 'TeamManager' LIMIT 1
);
INSERT INTO `sys_menu` (
`id`, `parent_id`, `menu_name`, `path`, `menu_type`, `icon`, `create_user`, `update_user`,
`sort`, `status`, `router`, `alias`
)
SELECT
1700000500, @team_parent_menu_id, '经理列表', 'team/manager/index', 2, 'form',
'0', '0', 245, 0, 'team/manager', 'TeamManagerList'
WHERE @team_parent_menu_id IS NOT NULL
AND NOT EXISTS (
SELECT 1 FROM `sys_menu` WHERE `alias` = 'TeamManagerList'
);
UPDATE `sys_menu`
SET
`parent_id` = @team_parent_menu_id,
`menu_name` = '经理列表',
`path` = 'team/manager/index',
`menu_type` = 2,
`icon` = 'form',
`create_user` = '0',
`update_user` = '0',
`sort` = 245,
`status` = 0,
`router` = 'team/manager'
WHERE `alias` = 'TeamManagerList'
AND @team_parent_menu_id IS NOT NULL;
INSERT INTO `sys_menu` (
`id`, `parent_id`, `menu_name`, `path`, `menu_type`, `icon`, `create_user`, `update_user`,
`sort`, `status`, `router`, `alias`
)
SELECT *
FROM (
SELECT 1700000501 AS `id`, 0 AS `parent_id`, 'team:manager:list:query:all' AS `menu_name`,
NULL AS `path`, 3 AS `menu_type`, NULL AS `icon`, '0' AS `create_user`, '0' AS `update_user`,
39 AS `sort`, 0 AS `status`, NULL AS `router`, 'team:manager:list:query:all' AS `alias`
UNION ALL
SELECT 1700000502, 0, 'team:manager:list:add', NULL, 3, NULL, '0', '0', 38, 0, NULL, 'team:manager:list:add'
UNION ALL
SELECT 1700000503, 0, 'team:manager:list:edit', NULL, 3, NULL, '0', '0', 37, 0, NULL, 'team:manager:list:edit'
UNION ALL
SELECT 1700000504, 0, 'team:manager:list:del', NULL, 3, NULL, '0', '0', 36, 0, NULL, 'team:manager:list:del'
) seed
WHERE NOT EXISTS (
SELECT 1 FROM `sys_menu` existing WHERE existing.`alias` = seed.`alias`
);
UPDATE `sys_menu`
SET
`parent_id` = 0,
`path` = NULL,
`menu_type` = 3,
`icon` = NULL,
`create_user` = '0',
`update_user` = '0',
`status` = 0,
`router` = NULL,
`menu_name` = `alias`,
`sort` = CASE `alias`
WHEN 'team:manager:list:query:all' THEN 39
WHEN 'team:manager:list:add' THEN 38
WHEN 'team:manager:list:edit' THEN 37
WHEN 'team:manager:list:del' THEN 36
ELSE `sort`
END
WHERE `alias` IN (
'team:manager:list:query:all',
'team:manager:list:add',
'team:manager:list:edit',
'team:manager:list:del'
);
INSERT INTO `sys_role_menu` (`role_id`, `menu_id`)
SELECT DISTINCT source.`role_id`, target_menu.`id`
FROM `sys_role_menu` source
JOIN `sys_menu` source_menu ON source_menu.`id` = source.`menu_id`
JOIN `sys_menu` target_menu ON target_menu.`alias` = 'TeamManagerList'
WHERE source_menu.`alias` = 'TeamMember'
AND NOT EXISTS (
SELECT 1 FROM `sys_role_menu` target
WHERE target.`role_id` = source.`role_id`
AND target.`menu_id` = target_menu.`id`
);
INSERT INTO `sys_role_menu` (`role_id`, `menu_id`)
SELECT DISTINCT source.`role_id`, target_menu.`id`
FROM `sys_role_menu` source
JOIN `sys_menu` source_menu ON source_menu.`id` = source.`menu_id`
JOIN `sys_menu` target_menu ON target_menu.`alias` = CASE source_menu.`alias`
WHEN 'team:list:query:all' THEN 'team:manager:list:query:all'
WHEN 'team:list:add' THEN 'team:manager:list:add'
WHEN 'team:list:edit' THEN 'team:manager:list:edit'
WHEN 'team:list:del' THEN 'team:manager:list:del'
END
WHERE source_menu.`alias` IN (
'team:list:query:all',
'team:list:add',
'team:list:edit',
'team:list:del'
)
AND NOT EXISTS (
SELECT 1 FROM `sys_role_menu` target
WHERE target.`role_id` = source.`role_id`
AND target.`menu_id` = target_menu.`id`
);