Files
zyt/server/sql/1.9.20260821/add_desktop_workstation_update_menu.sql
2026-08-22 08:51:35 +08:00

106 lines
3.2 KiB
SQL

-- 系统设置 / 医生工作站升级
-- 页面:setting/desktop_workstation/index
-- 查询:setting.desktop_workstation/getConfig
-- 保存:setting.desktop_workstation/setConfig
-- 客户端检测 setting.desktop_workstation/check 免登录,不注册菜单权限。
START TRANSACTION;
SET @setting_root_id = (
SELECT `id`
FROM `zyt_system_menu`
WHERE `type` = 'M'
AND (
`paths` IN ('setting', '/setting')
OR `name` = '系统设置'
)
ORDER BY CASE WHEN `paths` IN ('setting', '/setting') THEN 0 ELSE 1 END, `id` ASC
LIMIT 1
);
INSERT INTO `zyt_system_menu`
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
SELECT
COALESCE(@setting_root_id, 0),
'C',
'医生工作站升级',
'el-icon-Upload',
90,
'setting.desktop_workstation/getConfig',
'desktop_workstation',
'setting/desktop_workstation/index',
'',
'',
0,
1,
0,
UNIX_TIMESTAMP(),
UNIX_TIMESTAMP()
FROM DUAL
WHERE NOT EXISTS (
SELECT 1
FROM `zyt_system_menu`
WHERE `perms` = 'setting.desktop_workstation/getConfig'
);
SET @desktop_update_menu_id = (
SELECT `id`
FROM `zyt_system_menu`
WHERE `perms` = 'setting.desktop_workstation/getConfig'
ORDER BY `id` ASC
LIMIT 1
);
INSERT INTO `zyt_system_menu`
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
SELECT
@desktop_update_menu_id,
'A',
'保存升级配置',
'',
1,
'setting.desktop_workstation/setConfig',
'',
'',
'',
'',
0,
1,
0,
UNIX_TIMESTAMP(),
UNIX_TIMESTAMP()
FROM DUAL
WHERE @desktop_update_menu_id IS NOT NULL
AND NOT EXISTS (
SELECT 1
FROM `zyt_system_menu`
WHERE `perms` = 'setting.desktop_workstation/setConfig'
);
SET @desktop_update_save_menu_id = (
SELECT `id`
FROM `zyt_system_menu`
WHERE `perms` = 'setting.desktop_workstation/setConfig'
ORDER BY `id` ASC
LIMIT 1
);
-- 已拥有「系统设置」目录或其子菜单的角色,默认获得本页与保存权限。
INSERT IGNORE INTO `zyt_system_role_menu` (`role_id`, `menu_id`)
SELECT DISTINCT role_menu.`role_id`, @desktop_update_menu_id
FROM `zyt_system_role_menu` AS role_menu
INNER JOIN `zyt_system_menu` AS granted_menu ON granted_menu.`id` = role_menu.`menu_id`
WHERE @desktop_update_menu_id IS NOT NULL
AND @setting_root_id IS NOT NULL
AND (granted_menu.`id` = @setting_root_id OR granted_menu.`pid` = @setting_root_id);
INSERT IGNORE INTO `zyt_system_role_menu` (`role_id`, `menu_id`)
SELECT DISTINCT role_menu.`role_id`, @desktop_update_save_menu_id
FROM `zyt_system_role_menu` AS role_menu
INNER JOIN `zyt_system_menu` AS granted_menu ON granted_menu.`id` = role_menu.`menu_id`
WHERE @desktop_update_save_menu_id IS NOT NULL
AND @setting_root_id IS NOT NULL
AND (granted_menu.`id` = @setting_root_id OR granted_menu.`pid` = @setting_root_id);
COMMIT;