V1.0.11__reparent_lowcode_menus.sql 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. -- 调整低代码菜单层级:统一挂到原“AI代码生成”目录,并重命名为“AI低代码”。
  2. -- 最终可见结构:
  3. -- AI低代码
  4. -- - 模型设计
  5. -- - 应用开发
  6. SET @lowcode_root_id := (
  7. SELECT id
  8. FROM sys_resource
  9. WHERE tenant_id = 1
  10. AND resource_type = 1
  11. AND (path = '/generator' OR resource_name = 'AI代码生成' OR resource_name = 'AI低代码')
  12. ORDER BY CASE
  13. WHEN path = '/generator' THEN 0
  14. WHEN resource_name = 'AI低代码' THEN 1
  15. ELSE 2
  16. END
  17. LIMIT 1
  18. );
  19. SET @app_menu_id := (
  20. SELECT id
  21. FROM sys_resource
  22. WHERE tenant_id = 1
  23. AND resource_type = 2
  24. AND perms = 'ai:lowcode:domain:list'
  25. LIMIT 1
  26. );
  27. SET @model_menu_id := (
  28. SELECT id
  29. FROM sys_resource
  30. WHERE tenant_id = 1
  31. AND resource_type = 2
  32. AND perms = 'ai:lowcode:model:list'
  33. LIMIT 1
  34. );
  35. SET @builder_menu_id := (
  36. SELECT id
  37. FROM sys_resource
  38. WHERE tenant_id = 1
  39. AND resource_type = 2
  40. AND perms = 'ai:lowcode:edit'
  41. LIMIT 1
  42. );
  43. UPDATE sys_resource
  44. SET resource_name = 'AI低代码',
  45. menu_status = 1,
  46. visible = 1,
  47. always_show = 1,
  48. remark = 'AI低代码目录',
  49. update_by = 1,
  50. update_time = NOW()
  51. WHERE @lowcode_root_id IS NOT NULL
  52. AND id = @lowcode_root_id;
  53. UPDATE sys_resource
  54. SET resource_name = '模型设计',
  55. parent_id = @lowcode_root_id,
  56. sort = 1,
  57. path = '/ai/lowcode-models',
  58. component = 'ai/lowcode-models',
  59. menu_status = 1,
  60. visible = 1,
  61. icon = 'ionicons5:GitBranchOutline',
  62. redirect = NULL,
  63. remark = '低代码数据模型设计',
  64. update_by = 1,
  65. update_time = NOW()
  66. WHERE @lowcode_root_id IS NOT NULL
  67. AND @model_menu_id IS NOT NULL
  68. AND id = @model_menu_id;
  69. UPDATE sys_resource
  70. SET resource_name = '应用开发',
  71. parent_id = @lowcode_root_id,
  72. sort = 2,
  73. path = '/ai/lowcode-apps',
  74. component = 'ai/lowcode-apps',
  75. menu_status = 1,
  76. visible = 1,
  77. icon = 'ionicons5:ConstructOutline',
  78. redirect = NULL,
  79. remark = '低代码应用开发与业务领域管理',
  80. update_by = 1,
  81. update_time = NOW()
  82. WHERE @lowcode_root_id IS NOT NULL
  83. AND @app_menu_id IS NOT NULL
  84. AND id = @app_menu_id;
  85. UPDATE sys_resource
  86. SET resource_name = '应用搭建器',
  87. parent_id = @app_menu_id,
  88. sort = 99,
  89. path = '/ai/lowcode-builder',
  90. component = 'ai/lowcode-builder',
  91. menu_status = 0,
  92. visible = 0,
  93. redirect = NULL,
  94. remark = '低代码应用搭建器隐藏入口',
  95. update_by = 1,
  96. update_time = NOW()
  97. WHERE @app_menu_id IS NOT NULL
  98. AND @builder_menu_id IS NOT NULL
  99. AND id = @builder_menu_id;
  100. UPDATE sys_resource
  101. SET parent_id = @app_menu_id,
  102. update_by = 1,
  103. update_time = NOW()
  104. WHERE @app_menu_id IS NOT NULL
  105. AND tenant_id = 1
  106. AND resource_type = 3
  107. AND perms IN (
  108. 'ai:lowcode:domain:add',
  109. 'ai:lowcode:domain:edit',
  110. 'ai:lowcode:domain:status',
  111. 'ai:lowcode:domain:move',
  112. 'ai:lowcode:publish',
  113. 'ai:lowcode:rollback',
  114. 'ai:lowcode:deploy-ddl'
  115. );
  116. UPDATE sys_resource
  117. SET parent_id = @model_menu_id,
  118. update_by = 1,
  119. update_time = NOW()
  120. WHERE @model_menu_id IS NOT NULL
  121. AND tenant_id = 1
  122. AND resource_type = 3
  123. AND perms IN (
  124. 'ai:lowcode:model:add',
  125. 'ai:lowcode:model:edit',
  126. 'ai:lowcode:model:status'
  127. );
  128. INSERT INTO sys_role_resource (tenant_id, role_id, resource_id, create_time)
  129. SELECT DISTINCT rr.tenant_id, rr.role_id, @lowcode_root_id, NOW()
  130. FROM sys_role_resource rr
  131. JOIN sys_resource r ON r.id = rr.resource_id
  132. WHERE @lowcode_root_id IS NOT NULL
  133. AND rr.tenant_id = 1
  134. AND r.tenant_id = 1
  135. AND r.perms LIKE 'ai:lowcode:%'
  136. AND NOT EXISTS (
  137. SELECT 1
  138. FROM sys_role_resource exists_rr
  139. WHERE exists_rr.tenant_id = rr.tenant_id
  140. AND exists_rr.role_id = rr.role_id
  141. AND exists_rr.resource_id = @lowcode_root_id
  142. );