add_task_management_menus_tenant.sql 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559
  1. -- ============================================================
  2. -- saas-admin「任务管理」菜单 — 租户库纯新增(自增 ID)
  3. --
  4. -- 【重要】执行前请在 Navicat 左侧选中目标租户库(如 fs_tenant_cs1),
  5. -- 再运行本脚本。不要依赖 USE 切换库,避免数据写到别的库。
  6. -- 目标表: 当前库下的 sys_menu、sys_role_menu
  7. -- 说明: 不指定 menu_id,由数据库自增;可重复执行(按 path/perms 判重)
  8. -- ============================================================
  9. -- 勿取消下行注释;若必须写死库名,请改成你的租户库,例如 fs_tenant_cs1
  10. -- USE `fs_tenant_cs1`;
  11. -- ---------- 0. 顶级目录:任务管理 ----------
  12. INSERT INTO sys_menu (
  13. menu_name, parent_id, order_num, path, component,
  14. menu_type, visible, status, perms, icon, is_frame, is_cache,
  15. create_by, create_time, remark
  16. )
  17. SELECT
  18. '任务管理', 0, 3, 'taskManage', NULL,
  19. 'M', '0', '0', NULL, 'el-icon-s-operation', 1, 0,
  20. 'admin', NOW(), 'CID/外呼运营模块'
  21. FROM DUAL
  22. WHERE NOT EXISTS (
  23. SELECT 1 FROM sys_menu WHERE menu_name = '任务管理' AND parent_id = 0 AND path = 'taskManage'
  24. );
  25. SET @task_manage_id = (
  26. SELECT menu_id FROM sys_menu
  27. WHERE menu_name = '任务管理' AND parent_id = 0 AND path = 'taskManage'
  28. LIMIT 1
  29. );
  30. -- ---------- 1. 页面菜单 ----------
  31. -- 1.1 外呼任务管理
  32. INSERT INTO sys_menu (
  33. menu_name, parent_id, order_num, path, component,
  34. menu_type, visible, status, perms, icon, is_frame, is_cache,
  35. create_by, create_time
  36. )
  37. SELECT
  38. '外呼任务管理', @task_manage_id, 1, 'companyVoiceRobotic', 'company/companyVoiceRobotic/index',
  39. 'C', '0', '0', 'company:companyVoiceRobotic:list', 'el-icon-phone', 1, 0,
  40. 'admin', NOW()
  41. FROM DUAL
  42. WHERE NOT EXISTS (
  43. SELECT 1 FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'companyVoiceRobotic'
  44. );
  45. SET @m_voice_robotic = (
  46. SELECT menu_id FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'companyVoiceRobotic' LIMIT 1
  47. );
  48. -- 1.2 转人工通话
  49. INSERT INTO sys_menu (
  50. menu_name, parent_id, order_num, path, component,
  51. menu_type, visible, status, perms, icon, is_frame, is_cache,
  52. create_by, create_time
  53. )
  54. SELECT
  55. '转人工通话', @task_manage_id, 2, 'handleManualAnswered', 'company/companyVoiceRobotic/handleManualAnswered',
  56. 'C', '1', '0', 'company:handleManualAnswered:query', 'el-icon-service', 1, 0,
  57. 'admin', NOW()
  58. FROM DUAL
  59. WHERE NOT EXISTS (
  60. SELECT 1 FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'handleManualAnswered'
  61. );
  62. SET @m_manual = (
  63. SELECT menu_id FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'handleManualAnswered' LIMIT 1
  64. );
  65. -- 1.3 任务模板管理
  66. INSERT INTO sys_menu (
  67. menu_name, parent_id, order_num, path, component,
  68. menu_type, visible, status, perms, icon, is_frame, is_cache,
  69. create_by, create_time
  70. )
  71. SELECT
  72. '任务模板管理', @task_manage_id, 3, 'companyWorkflowManage', 'company/companyWorkflowManage/index',
  73. 'C', '0', '0', 'company:companyWorkflowManage:list', 'el-icon-document', 1, 0,
  74. 'admin', NOW()
  75. FROM DUAL
  76. WHERE NOT EXISTS (
  77. SELECT 1 FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'companyWorkflowManage'
  78. );
  79. SET @m_workflow = (
  80. SELECT menu_id FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'companyWorkflowManage' LIMIT 1
  81. );
  82. -- 1.4 外呼黑名单
  83. INSERT INTO sys_menu (
  84. menu_name, parent_id, order_num, path, component,
  85. menu_type, visible, status, perms, icon, is_frame, is_cache,
  86. create_by, create_time
  87. )
  88. SELECT
  89. '外呼黑名单', @task_manage_id, 4, 'companyVoiceRoboticCallBlacklist', 'company/companyVoiceRoboticCallBlacklist/companyVoiceRoboticCallBlacklist',
  90. 'C', '0', '0', 'company:voiceRoboticCallBlacklist:list', 'el-icon-warning', 1, 0,
  91. 'admin', NOW()
  92. FROM DUAL
  93. WHERE NOT EXISTS (
  94. SELECT 1 FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'companyVoiceRoboticCallBlacklist'
  95. );
  96. SET @m_blacklist = (
  97. SELECT menu_id FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'companyVoiceRoboticCallBlacklist' LIMIT 1
  98. );
  99. -- 1.5 加微话术
  100. INSERT INTO sys_menu (
  101. menu_name, parent_id, order_num, path, component,
  102. menu_type, visible, status, perms, icon, is_frame, is_cache,
  103. create_by, create_time
  104. )
  105. SELECT
  106. '加微话术', @task_manage_id, 5, 'companyVoiceDialog', 'company/companyVoiceDialog/index',
  107. 'C', '0', '0', 'system:companyVoiceDialog:list', 'el-icon-chat-line-square', 1, 0,
  108. 'admin', NOW()
  109. FROM DUAL
  110. WHERE NOT EXISTS (
  111. SELECT 1 FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'companyVoiceDialog'
  112. );
  113. SET @m_dialog = (
  114. SELECT menu_id FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'companyVoiceDialog' LIMIT 1
  115. );
  116. -- 1.6 声音克隆
  117. INSERT INTO sys_menu (
  118. menu_name, parent_id, order_num, path, component,
  119. menu_type, visible, status, perms, icon, is_frame, is_cache,
  120. create_by, create_time
  121. )
  122. SELECT
  123. '声音克隆', @task_manage_id, 6, 'voiceClone', 'company/voiceClone/index',
  124. 'C', '0', '0', 'company:voiceCloneRef:list', 'el-icon-microphone', 1, 0,
  125. 'admin', NOW()
  126. FROM DUAL
  127. WHERE NOT EXISTS (
  128. SELECT 1 FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'voiceClone'
  129. );
  130. SET @m_clone = (
  131. SELECT menu_id FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'voiceClone' LIMIT 1
  132. );
  133. -- 1.7 呼入大模型
  134. INSERT INTO sys_menu (
  135. menu_name, parent_id, order_num, path, component,
  136. menu_type, visible, status, perms, icon, is_frame, is_cache,
  137. create_by, create_time
  138. )
  139. SELECT
  140. '呼入大模型', @task_manage_id, 7, 'inboundCallManage', 'company/aiModel/inboundCallManage/index',
  141. 'C', '0', '0', 'inboundCallManage:list', 'el-icon-cpu', 1, 0,
  142. 'admin', NOW()
  143. FROM DUAL
  144. WHERE NOT EXISTS (
  145. SELECT 1 FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'inboundCallManage'
  146. );
  147. SET @m_inbound = (
  148. SELECT menu_id FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'inboundCallManage' LIMIT 1
  149. );
  150. -- 1.8 个微账号
  151. INSERT INTO sys_menu (
  152. menu_name, parent_id, order_num, path, component,
  153. menu_type, visible, status, perms, icon, is_frame, is_cache,
  154. create_by, create_time
  155. )
  156. SELECT
  157. '个微账号', @task_manage_id, 8, 'wxAccount', 'company/wxAccount/index',
  158. 'C', '0', '0', 'company:companyWx:list', 'el-icon-user', 1, 0,
  159. 'admin', NOW()
  160. FROM DUAL
  161. WHERE NOT EXISTS (
  162. SELECT 1 FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'wxAccount'
  163. );
  164. SET @m_wx_account = (
  165. SELECT menu_id FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'wxAccount' LIMIT 1
  166. );
  167. -- 1.9 个微用户
  168. INSERT INTO sys_menu (
  169. menu_name, parent_id, order_num, path, component,
  170. menu_type, visible, status, perms, icon, is_frame, is_cache,
  171. create_by, create_time
  172. )
  173. SELECT
  174. '个微用户', @task_manage_id, 9, 'wxUser', 'company/wxUser/index',
  175. 'C', '0', '0', 'company:wxUser:list', 'el-icon-s-custom', 1, 0,
  176. 'admin', NOW()
  177. FROM DUAL
  178. WHERE NOT EXISTS (
  179. SELECT 1 FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'wxUser'
  180. );
  181. SET @m_wx_user = (
  182. SELECT menu_id FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'wxUser' LIMIT 1
  183. );
  184. -- 1.10 微信用户分组
  185. INSERT INTO sys_menu (
  186. menu_name, parent_id, order_num, path, component,
  187. menu_type, visible, status, perms, icon, is_frame, is_cache,
  188. create_by, create_time
  189. )
  190. SELECT
  191. '微信用户分组', @task_manage_id, 10, 'wxUserGroup', 'company/wxUserGroup/index',
  192. 'C', '0', '0', 'company:wxUserGroup:list', 'el-icon-folder', 1, 0,
  193. 'admin', NOW()
  194. FROM DUAL
  195. WHERE NOT EXISTS (
  196. SELECT 1 FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'wxUserGroup'
  197. );
  198. SET @m_wx_group = (
  199. SELECT menu_id FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'wxUserGroup' LIMIT 1
  200. );
  201. -- 1.11 企微账号
  202. INSERT INTO sys_menu (
  203. menu_name, parent_id, order_num, path, component,
  204. menu_type, visible, status, perms, icon, is_frame, is_cache,
  205. create_by, create_time
  206. )
  207. SELECT
  208. '企微账号', @task_manage_id, 11, 'companyWx', 'company/companyWx/index',
  209. 'C', '0', '0', 'company:companyWx:list', 'el-icon-chat-dot-round', 1, 0,
  210. 'admin', NOW()
  211. FROM DUAL
  212. WHERE NOT EXISTS (
  213. SELECT 1 FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'companyWx'
  214. );
  215. SET @m_company_wx = (
  216. SELECT menu_id FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'companyWx' LIMIT 1
  217. );
  218. -- 1.12 外呼统计
  219. INSERT INTO sys_menu (
  220. menu_name, parent_id, order_num, path, component,
  221. menu_type, visible, status, perms, icon, is_frame, is_cache,
  222. create_by, create_time
  223. )
  224. SELECT
  225. '外呼统计', @task_manage_id, 12, 'callLog', 'taskStatistics/callLog/index',
  226. 'C', '0', '0', 'company:callphonelog:list', 'el-icon-data-line', 1, 0,
  227. 'admin', NOW()
  228. FROM DUAL
  229. WHERE NOT EXISTS (
  230. SELECT 1 FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'callLog'
  231. );
  232. SET @m_call_log = (
  233. SELECT menu_id FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'callLog' LIMIT 1
  234. );
  235. -- 1.13 短信统计
  236. INSERT INTO sys_menu (
  237. menu_name, parent_id, order_num, path, component,
  238. menu_type, visible, status, perms, icon, is_frame, is_cache,
  239. create_by, create_time
  240. )
  241. SELECT
  242. '短信统计', @task_manage_id, 13, 'sendMsgLog', 'taskStatistics/sendMsgLog/index',
  243. 'C', '0', '0', 'company:sendmsglog:list', 'el-icon-message', 1, 0,
  244. 'admin', NOW()
  245. FROM DUAL
  246. WHERE NOT EXISTS (
  247. SELECT 1 FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'sendMsgLog'
  248. );
  249. SET @m_send_msg = (
  250. SELECT menu_id FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'sendMsgLog' LIMIT 1
  251. );
  252. -- 1.14 加微统计
  253. INSERT INTO sys_menu (
  254. menu_name, parent_id, order_num, path, component,
  255. menu_type, visible, status, perms, icon, is_frame, is_cache,
  256. create_by, create_time
  257. )
  258. SELECT
  259. '加微统计', @task_manage_id, 14, 'wxClient', 'taskStatistics/wxClient/index',
  260. 'C', '0', '0', 'company:addwxlog:list', 'el-icon-user-solid', 1, 0,
  261. 'admin', NOW()
  262. FROM DUAL
  263. WHERE NOT EXISTS (
  264. SELECT 1 FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'wxClient'
  265. );
  266. SET @m_wx_client = (
  267. SELECT menu_id FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'wxClient' LIMIT 1
  268. );
  269. -- 1.15 外呼看板
  270. INSERT INTO sys_menu (
  271. menu_name, parent_id, order_num, path, component,
  272. menu_type, visible, status, perms, icon, is_frame, is_cache,
  273. create_by, create_time
  274. )
  275. SELECT
  276. '外呼看板', @task_manage_id, 15, 'aiOutboundCallDashboard', 'taskStatistics/aiOutboundCallDashboard/index',
  277. 'C', '0', '0', 'company:callphonelog:list', 'el-icon-data-analysis', 1, 0,
  278. 'admin', NOW()
  279. FROM DUAL
  280. WHERE NOT EXISTS (
  281. SELECT 1 FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'aiOutboundCallDashboard'
  282. );
  283. SET @m_dashboard = (
  284. SELECT menu_id FROM sys_menu WHERE parent_id = @task_manage_id AND path = 'aiOutboundCallDashboard' LIMIT 1
  285. );
  286. -- ---------- 2. 按钮权限(按 perms 判重) ----------
  287. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  288. SELECT '外呼任务查询', @m_voice_robotic, 1, '', '', 'F', '0', '0', 'company:companyVoiceRobotic:query', '#', 1, 0, 'admin', NOW()
  289. FROM DUAL WHERE @m_voice_robotic IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_voice_robotic AND perms = 'company:companyVoiceRobotic:query');
  290. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  291. SELECT '外呼任务新增', @m_voice_robotic, 2, '', '', 'F', '0', '0', 'system:companyVoiceRobotic:add', '#', 1, 0, 'admin', NOW()
  292. FROM DUAL WHERE @m_voice_robotic IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_voice_robotic AND perms = 'system:companyVoiceRobotic:add');
  293. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  294. SELECT '外呼任务修改', @m_voice_robotic, 3, '', '', 'F', '0', '0', 'company:companyVoiceRobotic:edit', '#', 1, 0, 'admin', NOW()
  295. FROM DUAL WHERE @m_voice_robotic IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_voice_robotic AND perms = 'company:companyVoiceRobotic:edit');
  296. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  297. SELECT '外呼任务删除', @m_voice_robotic, 4, '', '', 'F', '0', '0', 'system:companyVoiceRobotic:remove', '#', 1, 0, 'admin', NOW()
  298. FROM DUAL WHERE @m_voice_robotic IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_voice_robotic AND perms = 'system:companyVoiceRobotic:remove');
  299. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  300. SELECT '外呼任务导出', @m_voice_robotic, 5, '', '', 'F', '0', '0', 'company:companyVoiceRobotic:export', '#', 1, 0, 'admin', NOW()
  301. FROM DUAL WHERE @m_voice_robotic IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_voice_robotic AND perms = 'company:companyVoiceRobotic:export');
  302. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  303. SELECT '转人工查询', @m_manual, 1, '', '', 'F', '0', '0', 'company:handleManualAnswered:query', '#', 1, 0, 'admin', NOW()
  304. FROM DUAL WHERE @m_manual IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_manual AND perms = 'company:handleManualAnswered:query');
  305. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  306. SELECT '转人工处理', @m_manual, 2, '', '', 'F', '0', '0', 'company:handleManualAnswered:handle', '#', 1, 0, 'admin', NOW()
  307. FROM DUAL WHERE @m_manual IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_manual AND perms = 'company:handleManualAnswered:handle');
  308. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  309. SELECT '模板查询', @m_workflow, 1, '', '', 'F', '0', '0', 'company:companyWorkflowManage:list', '#', 1, 0, 'admin', NOW()
  310. FROM DUAL WHERE @m_workflow IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_workflow AND perms = 'company:companyWorkflowManage:list');
  311. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  312. SELECT '模板新增', @m_workflow, 2, '', '', 'F', '0', '0', 'company:companyWorkflowManage:add', '#', 1, 0, 'admin', NOW()
  313. FROM DUAL WHERE @m_workflow IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_workflow AND perms = 'company:companyWorkflowManage:add');
  314. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  315. SELECT '模板修改', @m_workflow, 3, '', '', 'F', '0', '0', 'company:companyWorkflowManage:edit', '#', 1, 0, 'admin', NOW()
  316. FROM DUAL WHERE @m_workflow IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_workflow AND perms = 'company:companyWorkflowManage:edit');
  317. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  318. SELECT '模板删除', @m_workflow, 4, '', '', 'F', '0', '0', 'company:companyWorkflowManage:remove', '#', 1, 0, 'admin', NOW()
  319. FROM DUAL WHERE @m_workflow IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_workflow AND perms = 'company:companyWorkflowManage:remove');
  320. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  321. SELECT '模板导出', @m_workflow, 5, '', '', 'F', '0', '0', 'company:companyWorkflowManage:export', '#', 1, 0, 'admin', NOW()
  322. FROM DUAL WHERE @m_workflow IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_workflow AND perms = 'company:companyWorkflowManage:export');
  323. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  324. SELECT '黑名单查询', @m_blacklist, 1, '', '', 'F', '0', '0', 'company:voiceRoboticCallBlacklist:query', '#', 1, 0, 'admin', NOW()
  325. FROM DUAL WHERE @m_blacklist IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_blacklist AND perms = 'company:voiceRoboticCallBlacklist:query');
  326. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  327. SELECT '黑名单新增', @m_blacklist, 2, '', '', 'F', '0', '0', 'company:voiceRoboticCallBlacklist:add', '#', 1, 0, 'admin', NOW()
  328. FROM DUAL WHERE @m_blacklist IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_blacklist AND perms = 'company:voiceRoboticCallBlacklist:add');
  329. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  330. SELECT '黑名单修改', @m_blacklist, 3, '', '', 'F', '0', '0', 'company:voiceRoboticCallBlacklist:edit', '#', 1, 0, 'admin', NOW()
  331. FROM DUAL WHERE @m_blacklist IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_blacklist AND perms = 'company:voiceRoboticCallBlacklist:edit');
  332. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  333. SELECT '黑名单删除', @m_blacklist, 4, '', '', 'F', '0', '0', 'company:voiceRoboticCallBlacklist:remove', '#', 1, 0, 'admin', NOW()
  334. FROM DUAL WHERE @m_blacklist IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_blacklist AND perms = 'company:voiceRoboticCallBlacklist:remove');
  335. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  336. SELECT '黑名单导出', @m_blacklist, 5, '', '', 'F', '0', '0', 'company:voiceRoboticCallBlacklist:export', '#', 1, 0, 'admin', NOW()
  337. FROM DUAL WHERE @m_blacklist IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_blacklist AND perms = 'company:voiceRoboticCallBlacklist:export');
  338. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  339. SELECT '查看手机号', @m_blacklist, 6, '', '', 'F', '0', '0', 'company:voiceRoboticCallBlacklist:queryPhone', '#', 1, 0, 'admin', NOW()
  340. FROM DUAL WHERE @m_blacklist IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_blacklist AND perms = 'company:voiceRoboticCallBlacklist:queryPhone');
  341. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  342. SELECT '话术查询', @m_dialog, 1, '', '', 'F', '0', '0', 'system:companyVoiceDialog:query', '#', 1, 0, 'admin', NOW()
  343. FROM DUAL WHERE @m_dialog IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_dialog AND perms = 'system:companyVoiceDialog:query');
  344. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  345. SELECT '话术新增', @m_dialog, 2, '', '', 'F', '0', '0', 'system:companyVoiceDialog:add', '#', 1, 0, 'admin', NOW()
  346. FROM DUAL WHERE @m_dialog IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_dialog AND perms = 'system:companyVoiceDialog:add');
  347. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  348. SELECT '话术修改', @m_dialog, 3, '', '', 'F', '0', '0', 'system:companyVoiceDialog:edit', '#', 1, 0, 'admin', NOW()
  349. FROM DUAL WHERE @m_dialog IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_dialog AND perms = 'system:companyVoiceDialog:edit');
  350. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  351. SELECT '话术删除', @m_dialog, 4, '', '', 'F', '0', '0', 'system:companyVoiceDialog:remove', '#', 1, 0, 'admin', NOW()
  352. FROM DUAL WHERE @m_dialog IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_dialog AND perms = 'system:companyVoiceDialog:remove');
  353. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  354. SELECT '话术导出', @m_dialog, 5, '', '', 'F', '0', '0', 'system:companyVoiceDialog:export', '#', 1, 0, 'admin', NOW()
  355. FROM DUAL WHERE @m_dialog IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_dialog AND perms = 'system:companyVoiceDialog:export');
  356. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  357. SELECT '克隆查询', @m_clone, 1, '', '', 'F', '0', '0', 'company:voiceCloneRef:list', '#', 1, 0, 'admin', NOW()
  358. FROM DUAL WHERE @m_clone IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_clone AND perms = 'company:voiceCloneRef:list');
  359. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  360. SELECT '克隆上传', @m_clone, 2, '', '', 'F', '0', '0', 'company:voiceCloneRef:add', '#', 1, 0, 'admin', NOW()
  361. FROM DUAL WHERE @m_clone IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_clone AND perms = 'company:voiceCloneRef:add');
  362. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  363. SELECT '克隆修改', @m_clone, 3, '', '', 'F', '0', '0', 'company:voiceCloneRef:update', '#', 1, 0, 'admin', NOW()
  364. FROM DUAL WHERE @m_clone IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_clone AND perms = 'company:voiceCloneRef:update');
  365. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  366. SELECT '克隆删除', @m_clone, 4, '', '', 'F', '0', '0', 'company:voiceCloneRef:remove', '#', 1, 0, 'admin', NOW()
  367. FROM DUAL WHERE @m_clone IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_clone AND perms = 'company:voiceCloneRef:remove');
  368. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  369. SELECT '呼入配置查询', @m_inbound, 1, '', '', 'F', '0', '0', 'inboundCallManage:list', '#', 1, 0, 'admin', NOW()
  370. FROM DUAL WHERE @m_inbound IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_inbound AND perms = 'inboundCallManage:list');
  371. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  372. SELECT '呼入配置新增', @m_inbound, 2, '', '', 'F', '0', '0', 'inboundCallManage:add', '#', 1, 0, 'admin', NOW()
  373. FROM DUAL WHERE @m_inbound IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_inbound AND perms = 'inboundCallManage:add');
  374. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  375. SELECT '呼入配置修改', @m_inbound, 3, '', '', 'F', '0', '0', 'inboundCallManage:edit', '#', 1, 0, 'admin', NOW()
  376. FROM DUAL WHERE @m_inbound IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_inbound AND perms = 'inboundCallManage:edit');
  377. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  378. SELECT '呼入配置删除', @m_inbound, 4, '', '', 'F', '0', '0', 'inboundCallManage:delete', '#', 1, 0, 'admin', NOW()
  379. FROM DUAL WHERE @m_inbound IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_inbound AND perms = 'inboundCallManage:delete');
  380. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  381. SELECT '呼入记录查询', @m_inbound, 5, '', '', 'F', '0', '0', 'inboundCallManage:inboundCallRecord:list', '#', 1, 0, 'admin', NOW()
  382. FROM DUAL WHERE @m_inbound IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_inbound AND perms = 'inboundCallManage:inboundCallRecord:list');
  383. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  384. SELECT '个微账号查询', @m_wx_account, 1, '', '', 'F', '0', '0', 'company:companyWx:query', '#', 1, 0, 'admin', NOW()
  385. FROM DUAL WHERE @m_wx_account IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_wx_account AND perms = 'company:companyWx:query');
  386. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  387. SELECT '个微账号新增', @m_wx_account, 2, '', '', 'F', '0', '0', 'company:companyWx:add', '#', 1, 0, 'admin', NOW()
  388. FROM DUAL WHERE @m_wx_account IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_wx_account AND perms = 'company:companyWx:add');
  389. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  390. SELECT '个微账号修改', @m_wx_account, 3, '', '', 'F', '0', '0', 'company:companyWx:edit', '#', 1, 0, 'admin', NOW()
  391. FROM DUAL WHERE @m_wx_account IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_wx_account AND perms = 'company:companyWx:edit');
  392. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  393. SELECT '个微账号删除', @m_wx_account, 4, '', '', 'F', '0', '0', 'company:companyWx:remove', '#', 1, 0, 'admin', NOW()
  394. FROM DUAL WHERE @m_wx_account IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_wx_account AND perms = 'company:companyWx:remove');
  395. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  396. SELECT '个微账号导出', @m_wx_account, 5, '', '', 'F', '0', '0', 'company:companyWx:export', '#', 1, 0, 'admin', NOW()
  397. FROM DUAL WHERE @m_wx_account IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_wx_account AND perms = 'company:companyWx:export');
  398. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  399. SELECT '个微用户查询', @m_wx_user, 1, '', '', 'F', '0', '0', 'company:wxUser:query', '#', 1, 0, 'admin', NOW()
  400. FROM DUAL WHERE @m_wx_user IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_wx_user AND perms = 'company:wxUser:query');
  401. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  402. SELECT '个微用户导出', @m_wx_user, 2, '', '', 'F', '0', '0', 'company:wxUser:export', '#', 1, 0, 'admin', NOW()
  403. FROM DUAL WHERE @m_wx_user IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_wx_user AND perms = 'company:wxUser:export');
  404. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  405. SELECT '个微用户新增', @m_wx_user, 3, '', '', 'F', '0', '0', 'company:wxUser:add', '#', 1, 0, 'admin', NOW()
  406. FROM DUAL WHERE @m_wx_user IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_wx_user AND perms = 'company:wxUser:add');
  407. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  408. SELECT '个微用户修改', @m_wx_user, 4, '', '', 'F', '0', '0', 'company:wxUser:edit', '#', 1, 0, 'admin', NOW()
  409. FROM DUAL WHERE @m_wx_user IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_wx_user AND perms = 'company:wxUser:edit');
  410. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  411. SELECT '个微用户删除', @m_wx_user, 5, '', '', 'F', '0', '0', 'company:wxUser:remove', '#', 1, 0, 'admin', NOW()
  412. FROM DUAL WHERE @m_wx_user IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_wx_user AND perms = 'company:wxUser:remove');
  413. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  414. SELECT '批量添加分组', @m_wx_user, 6, '', '', 'F', '0', '0', 'company:wxUser:addGroup', '#', 1, 0, 'admin', NOW()
  415. FROM DUAL WHERE @m_wx_user IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_wx_user AND perms = 'company:wxUser:addGroup');
  416. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  417. SELECT '批量移除分组', @m_wx_user, 7, '', '', 'F', '0', '0', 'company:wxUser:delGroup', '#', 1, 0, 'admin', NOW()
  418. FROM DUAL WHERE @m_wx_user IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_wx_user AND perms = 'company:wxUser:delGroup');
  419. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  420. SELECT '外呼统计查询', @m_call_log, 1, '', '', 'F', '0', '0', 'company:callphonelog:list', '#', 1, 0, 'admin', NOW()
  421. FROM DUAL WHERE @m_call_log IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_call_log AND perms = 'company:callphonelog:list');
  422. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  423. SELECT '外呼统计导出', @m_call_log, 2, '', '', 'F', '0', '0', 'company:callphonelog:export', '#', 1, 0, 'admin', NOW()
  424. FROM DUAL WHERE @m_call_log IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_call_log AND perms = 'company:callphonelog:export');
  425. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  426. SELECT '短信统计查询', @m_send_msg, 1, '', '', 'F', '0', '0', 'company:sendmsglog:list', '#', 1, 0, 'admin', NOW()
  427. FROM DUAL WHERE @m_send_msg IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_send_msg AND perms = 'company:sendmsglog:list');
  428. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  429. SELECT '短信统计导出', @m_send_msg, 2, '', '', 'F', '0', '0', 'company:sendmsglog:export', '#', 1, 0, 'admin', NOW()
  430. FROM DUAL WHERE @m_send_msg IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_send_msg AND perms = 'company:sendmsglog:export');
  431. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  432. SELECT '加微统计导出', @m_wx_client, 1, '', '', 'F', '0', '0', 'company:addwxlog:export', '#', 1, 0, 'admin', NOW()
  433. FROM DUAL WHERE @m_wx_client IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_wx_client AND perms = 'company:addwxlog:export');
  434. INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, is_frame, is_cache, create_by, create_time)
  435. SELECT '加微统计删除', @m_wx_client, 2, '', '', 'F', '0', '0', 'company:addwxlog:remove', '#', 1, 0, 'admin', NOW()
  436. FROM DUAL WHERE @m_wx_client IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @m_wx_client AND perms = 'company:addwxlog:remove');
  437. -- ---------- 3. 授权租户管理员(role_id=1,整棵任务管理树) ----------
  438. INSERT IGNORE INTO sys_role_menu (role_id, menu_id)
  439. SELECT 1, m.menu_id
  440. FROM sys_menu m
  441. WHERE m.menu_id = @task_manage_id
  442. OR m.parent_id = @task_manage_id
  443. OR m.parent_id IN (
  444. SELECT menu_id FROM (
  445. SELECT menu_id FROM sys_menu WHERE parent_id = @task_manage_id
  446. ) AS task_pages
  447. );
  448. -- ---------- 4. 执行后校验(应能看到「任务管理」及子菜单) ----------
  449. SELECT DATABASE() AS current_database;
  450. SELECT menu_id, menu_name, parent_id, path, component, menu_type, visible
  451. FROM sys_menu
  452. WHERE menu_name = '任务管理' AND parent_id = 0 AND path = 'taskManage';
  453. SELECT m.menu_id, m.menu_name, m.parent_id, m.path, m.component, m.menu_type
  454. FROM sys_menu p
  455. JOIN sys_menu m ON m.parent_id = p.menu_id
  456. WHERE p.menu_name = '任务管理' AND p.parent_id = 0 AND p.path = 'taskManage'
  457. ORDER BY m.order_num;
  458. SELECT COUNT(*) AS role_menu_grant_count
  459. FROM sys_role_menu rm
  460. JOIN sys_menu p ON p.menu_id = rm.menu_id
  461. WHERE p.menu_name = '任务管理' AND p.parent_id = 0 AND p.path = 'taskManage'
  462. OR rm.menu_id IN (
  463. SELECT menu_id FROM sys_menu WHERE parent_id IN (
  464. SELECT menu_id FROM sys_menu WHERE menu_name = '任务管理' AND parent_id = 0 AND path = 'taskManage'
  465. )
  466. );