20260905_add_member_activation_permissions.sql 2.3 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`, 'MemberActivationIndex' `code`,
  14. 'core:fund:memberActivation:index' `slug`, 'GET' `method`, 100 `sort`,
  15. '按当前管理员及递归下级范围查询会员开通和续费记录' `remark`
  16. UNION ALL
  17. SELECT '导出会员开通记录', 'MemberActivationExport',
  18. 'core:fund:memberActivation:export', 'POST', 90,
  19. '按当前筛选条件导出会员开通和续费记录'
  20. ) permissions
  21. WHERE page_menu.`code` = 'MemberActivationRecords'
  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` = 'MemberActivationRecords'
  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:fund:memberActivation:index', 'core:fund:memberActivation: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;