计费模块菜单SQL-租户账号.sql 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. -- 计费模块菜单 SQL(租户账号)
  2. -- 说明:
  3. -- 1) 本脚本用于租户账号菜单与权限初始化;
  4. -- 2) 幂等执行,不会重复插入;
  5. -- 3) 默认挂在 path='tenant' 的父菜单下,找不到则挂根节点(0);
  6. -- 4) 需将 @tenantRoleKey 修改为你系统真实租户角色 key。
  7. SET @now = NOW();
  8. SET @createBy = 'admin';
  9. -- TODO: 改为你系统真实租户角色 key
  10. SET @tenantRoleKey = 'tenant_admin';
  11. -- 找父菜单:优先租户管理目录
  12. SELECT @parentId := menu_id
  13. FROM sys_menu
  14. WHERE path = 'tenant'
  15. ORDER BY menu_id DESC
  16. LIMIT 1;
  17. SET @parentId = IFNULL(@parentId, 0);
  18. -- 1) 租户账号页面菜单(C)
  19. INSERT INTO sys_menu
  20. (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
  21. SELECT
  22. '费用明细(我的)', @parentId, 32, 'billingTenant', 'saas/billingTenant/index', 1, 0, 'C', '0', '0', 'fee:billing:tenant:list', '#',
  23. @createBy, @now, '', NULL, 'SaaS租户查看自己费用明细'
  24. FROM dual
  25. WHERE NOT EXISTS (
  26. SELECT 1 FROM sys_menu WHERE component = 'saas/billingTenant/index'
  27. );
  28. -- 页面菜单ID
  29. SELECT @tenantPageMenuId := menu_id
  30. FROM sys_menu
  31. WHERE component = 'saas/billingTenant/index'
  32. LIMIT 1;
  33. -- 2) 租户账号查询按钮(F)
  34. INSERT INTO sys_menu
  35. (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
  36. SELECT
  37. '租户费用明细查询', @tenantPageMenuId, 1, '#', '', 1, 0, 'F', '0', '0', 'fee:billing:tenant:list', '#',
  38. @createBy, @now, '', NULL, '租户费用明细查询权限'
  39. FROM dual
  40. WHERE @tenantPageMenuId IS NOT NULL
  41. AND NOT EXISTS (
  42. SELECT 1
  43. FROM sys_menu
  44. WHERE parent_id = @tenantPageMenuId
  45. AND perms = 'fee:billing:tenant:list'
  46. AND menu_type = 'F'
  47. );
  48. -- 3) 绑定租户角色
  49. SELECT @tenantRoleId := role_id
  50. FROM sys_role
  51. WHERE role_key = @tenantRoleKey
  52. LIMIT 1;
  53. INSERT INTO sys_role_menu (role_id, menu_id)
  54. SELECT @tenantRoleId, m.menu_id
  55. FROM sys_menu m
  56. WHERE @tenantRoleId IS NOT NULL
  57. AND m.menu_id = @tenantPageMenuId
  58. AND NOT EXISTS (
  59. SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = @tenantRoleId AND rm.menu_id = m.menu_id
  60. );