57 lines
4.2 KiB
SQL
57 lines
4.2 KiB
SQL
-- 复诊到期提醒(需求 4 弹窗)接口按钮权限,挂在「中医诊单」(perms=tcm.diagnosis/lists, type=C) 下。
|
|
-- 为什么必须登记:AuthMiddleware.php:111-117 对「未在菜单登记」的接口对所有登录账号直接放行,
|
|
-- 因此 pending / summary / snooze / snoozeAll / contact / close 六个 action 全部登记为 A 类权限点,
|
|
-- 未授权账号调用将返回「权限不足」(验收 §11 需求 4 第 7 条)。
|
|
-- 为什么自动授权:登记后若不授予,现有医助会立刻失权、弹窗不弹;末尾 INSERT IGNORE 把六个权限点授予
|
|
-- 所有已拥有 tcm.diagnosis/lists 的角色(写法照抄 1.9.20260803/add_performance_dashboard_menu.sql:50-56)。
|
|
-- 超管(root=1)不走菜单校验;「全部菜单」类角色若按 * 配置需人工复核。执行后需清理 AdminAuthCache 或等缓存过期。
|
|
-- 幂等:INSERT … SELECT … WHERE NOT EXISTS,可重复执行。排序 70~75 紧随 1.9.20260505 的待办权限(60~62)。
|
|
|
|
SET @diag_menu_id := (SELECT id FROM zyt_system_menu WHERE perms = 'tcm.diagnosis/lists' AND type = 'C' 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 @diag_menu_id, 'A', '复诊到期-弹窗待办', '', 70, 'tcm.revisitDue/pending', '', '', '', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL
|
|
WHERE @diag_menu_id IS NOT NULL
|
|
AND NOT EXISTS (SELECT 1 FROM zyt_system_menu WHERE perms = 'tcm.revisitDue/pending');
|
|
|
|
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 @diag_menu_id, 'A', '复诊到期-计数', '', 71, 'tcm.revisitDue/summary', '', '', '', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL
|
|
WHERE @diag_menu_id IS NOT NULL
|
|
AND NOT EXISTS (SELECT 1 FROM zyt_system_menu WHERE perms = 'tcm.revisitDue/summary');
|
|
|
|
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 @diag_menu_id, 'A', '复诊到期-延迟', '', 72, 'tcm.revisitDue/snooze', '', '', '', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL
|
|
WHERE @diag_menu_id IS NOT NULL
|
|
AND NOT EXISTS (SELECT 1 FROM zyt_system_menu WHERE perms = 'tcm.revisitDue/snooze');
|
|
|
|
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 @diag_menu_id, 'A', '复诊到期-全部延迟', '', 73, 'tcm.revisitDue/snoozeAll', '', '', '', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL
|
|
WHERE @diag_menu_id IS NOT NULL
|
|
AND NOT EXISTS (SELECT 1 FROM zyt_system_menu WHERE perms = 'tcm.revisitDue/snoozeAll');
|
|
|
|
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 @diag_menu_id, 'A', '复诊到期-已联系', '', 74, 'tcm.revisitDue/contact', '', '', '', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL
|
|
WHERE @diag_menu_id IS NOT NULL
|
|
AND NOT EXISTS (SELECT 1 FROM zyt_system_menu WHERE perms = 'tcm.revisitDue/contact');
|
|
|
|
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 @diag_menu_id, 'A', '复诊到期-人工关闭', '', 75, 'tcm.revisitDue/close', '', '', '', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL
|
|
WHERE @diag_menu_id IS NOT NULL
|
|
AND NOT EXISTS (SELECT 1 FROM zyt_system_menu WHERE perms = 'tcm.revisitDue/close');
|
|
|
|
-- 自动授予:所有已拥有「中医诊单」列表权限的角色,默认获得六个弹窗权限点
|
|
INSERT IGNORE INTO zyt_system_role_menu (role_id, menu_id)
|
|
SELECT DISTINCT rm.role_id, m2.id
|
|
FROM zyt_system_role_menu rm
|
|
INNER JOIN zyt_system_menu m1 ON m1.id = rm.menu_id AND m1.perms = 'tcm.diagnosis/lists'
|
|
INNER JOIN zyt_system_menu m2 ON m2.perms IN (
|
|
'tcm.revisitDue/pending', 'tcm.revisitDue/summary', 'tcm.revisitDue/snooze',
|
|
'tcm.revisitDue/snoozeAll', 'tcm.revisitDue/contact', 'tcm.revisitDue/close'
|
|
);
|