页签按独立菜单显示,销售办证员默认不含证书齐备;证书齐备接口先于通配证件路径注册,避免 plans 被当成证件类型。 Co-authored-by: Cursor <cursoragent@cursor.com>
73 lines
3.2 KiB
SQL
73 lines
3.2 KiB
SQL
-- 小程序「运输证件管理」五个页签拆成独立权限。
|
|
-- 已有入口权限的角色默认获得全部页签;销售办证员不获得「证书齐备」,与 Web 端已取消的授权一致。
|
|
-- MySQL 5.7。可重复执行。仅 shanxia2.0。
|
|
SET NAMES utf8mb4;
|
|
START TRANSACTION;
|
|
|
|
INSERT INTO sys_menu (
|
|
id, menu_name, parent_id, menu_type, path, component, perms,
|
|
is_frame, visible, status, tenant_no, order_num, remark,
|
|
create_by, create_dept_id, create_time, update_time, del_flag
|
|
)
|
|
SELECT
|
|
item.id, item.menu_name, parent.id, 'F', '', NULL, item.perms,
|
|
1, '1', '1', parent.tenant_no, item.sort_no, '小程序运输证件页签权限',
|
|
'system', '', NOW(), NOW(), 0
|
|
FROM sys_menu parent
|
|
JOIN sys_menu folder ON folder.id = parent.parent_id
|
|
AND folder.tenant_no = parent.tenant_no AND folder.del_flag = 0
|
|
JOIN sys_menu root ON root.id = folder.parent_id
|
|
AND root.tenant_no = parent.tenant_no AND root.del_flag = 0
|
|
AND root.parent_id = '0' AND root.path = '/mini'
|
|
CROSS JOIN (
|
|
SELECT 'MINI_PL_CERT_ARCHIVE' id, '证件建档' menu_name, 'mini:pl:quota-cert:list' perms, 1 sort_no
|
|
UNION ALL SELECT 'MINI_PL_CERT_CONTRACT', '合同用证', 'mini:pl:contract-quota:list', 2
|
|
UNION ALL SELECT 'MINI_PL_CERT_USAGE', '证件用量', 'mini:pl:certificate-usage:list', 3
|
|
UNION ALL SELECT 'MINI_PL_CERT_SEGMENT', '计划段次用证', 'mini:pl:plan-cert:segment', 4
|
|
UNION ALL SELECT 'MINI_PL_CERT_READY', '证书齐备', 'mini:pl:cert-ready:list', 5
|
|
) item
|
|
WHERE parent.id = '329823eb-e3af-49b2-b656-08f2c2a713f3'
|
|
AND parent.tenant_no = 'shanxia2.0' AND parent.del_flag = 0
|
|
AND parent.perms = 'mini:pl:plan-cert:list'
|
|
AND NOT EXISTS (
|
|
SELECT 1 FROM sys_menu existing
|
|
WHERE existing.id = item.id
|
|
OR (existing.tenant_no = parent.tenant_no AND existing.del_flag = 0 AND existing.perms = item.perms)
|
|
);
|
|
|
|
INSERT INTO sys_role_menu (
|
|
id, role_id, menu_id, tenant_no, order_num, remark,
|
|
create_by, create_dept_id, create_time, update_time, del_flag
|
|
)
|
|
SELECT
|
|
MD5(CONCAT(access_row.role_id, '|', item.id, '|mini-cert-tab|v1')),
|
|
access_row.role_id, item.id, access_row.tenant_no, 0,
|
|
'小程序运输证件页签:沿用原入口授权',
|
|
'system', '', NOW(), NOW(), 0
|
|
FROM sys_role_menu access_row
|
|
JOIN sys_role role_row ON role_row.id = access_row.role_id
|
|
AND role_row.tenant_no = access_row.tenant_no AND role_row.del_flag = 0
|
|
JOIN sys_menu item ON item.parent_id = '329823eb-e3af-49b2-b656-08f2c2a713f3'
|
|
AND item.tenant_no = access_row.tenant_no AND item.del_flag = 0
|
|
AND item.perms IN (
|
|
'mini:pl:quota-cert:list',
|
|
'mini:pl:contract-quota:list',
|
|
'mini:pl:certificate-usage:list',
|
|
'mini:pl:plan-cert:segment',
|
|
'mini:pl:cert-ready:list'
|
|
)
|
|
WHERE access_row.del_flag = 0
|
|
AND access_row.tenant_no = 'shanxia2.0'
|
|
AND access_row.menu_id = '329823eb-e3af-49b2-b656-08f2c2a713f3'
|
|
AND NOT (item.perms = 'mini:pl:cert-ready:list' AND role_row.role_name = '销售办证员')
|
|
AND NOT EXISTS (
|
|
SELECT 1 FROM sys_role_menu existing
|
|
WHERE existing.role_id = access_row.role_id
|
|
AND existing.menu_id = item.id
|
|
AND existing.tenant_no = access_row.tenant_no
|
|
AND existing.del_flag = 0
|
|
)
|
|
ON DUPLICATE KEY UPDATE del_flag = 0, update_time = NOW();
|
|
|
|
COMMIT;
|