20260905_add_merchant_alert_permissions.sql 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. -- 商户警报列表与导出权限,可重复执行。
  2. INSERT INTO `sa_system_menu` (
  3. `parent_id`, `name`, `code`, `slug`, `type`, `path`, `component`, `method`, `icon`, `sort`,
  4. `link_url`, `is_iframe`, `is_keep_alive`, `is_hidden`, `is_fixed_tab`, `is_full_page`,
  5. `generate_id`, `generate_key`, `status`, `remark`, `created_by`, `updated_by`, `create_time`, `update_time`, `delete_time`
  6. )
  7. SELECT page_menu.`id`, permissions.`name`, permissions.`code`, permissions.`slug`, 3,
  8. NULL, NULL, permissions.`method`, NULL, permissions.`sort`,
  9. NULL, 2, 2, 2, 2, 2, 0, NULL, 1,
  10. permissions.`remark`, 1, 1, NOW(), NOW(), NULL
  11. FROM `sa_system_menu` page_menu
  12. CROSS JOIN (
  13. SELECT '查询商户警报' `name`, 'MerchantAlertIndex' `code`,
  14. 'core:operation:merchantAlert:index' `slug`, 'GET' `method`, 100 `sort`,
  15. '按当前管理员及递归下级范围查询连续无交易商户' `remark`
  16. UNION ALL
  17. SELECT '导出商户警报', 'MerchantAlertExport',
  18. 'core:operation:merchantAlert:export', 'POST', 90,
  19. '按当前筛选条件导出商户警报'
  20. ) permissions
  21. WHERE page_menu.`code` = 'MerchantAlerts'
  22. AND page_menu.`delete_time` IS NULL
  23. AND NOT EXISTS (
  24. SELECT 1 FROM `sa_system_menu` existing_menu
  25. WHERE existing_menu.`slug` = permissions.`slug`
  26. AND existing_menu.`delete_time` IS NULL
  27. );
  28. -- 已有商户警报页面权限的角色自动继承列表与导出权限。
  29. INSERT INTO `sa_system_role_menu` (`role_id`, `menu_id`)
  30. SELECT DISTINCT source_role.`role_id`, target_menu.`id`
  31. FROM `sa_system_role_menu` source_role
  32. INNER JOIN `sa_system_menu` page_menu
  33. ON page_menu.`id` = source_role.`menu_id`
  34. AND page_menu.`code` = 'MerchantAlerts'
  35. AND page_menu.`delete_time` IS NULL
  36. INNER JOIN `sa_system_menu` target_menu
  37. ON target_menu.`parent_id` = page_menu.`id`
  38. AND target_menu.`slug` IN ('core:operation:merchantAlert:index', 'core:operation:merchantAlert:export')
  39. AND target_menu.`delete_time` IS NULL
  40. LEFT JOIN `sa_system_role_menu` existing_role
  41. ON existing_role.`role_id` = source_role.`role_id`
  42. AND existing_role.`menu_id` = target_menu.`id`
  43. WHERE existing_role.`id` IS NULL;