-- Rule management: top-level sibling of data management (not nested under data) SET NAMES utf8mb4; -- locate data top menu to place rule management next to it SET @dataMenuId := ( SELECT menu_id FROM sys_menu WHERE path = 'data' AND menu_type = 'M' AND parent_id = 0 ORDER BY menu_id ASC LIMIT 1 ); SET @dataMenuId := IFNULL(@dataMenuId, ( SELECT menu_id FROM sys_menu WHERE path = 'data' AND menu_type = 'M' ORDER BY menu_id ASC LIMIT 1 )); SET @dataOrderNum := (SELECT IFNULL(order_num, 10) FROM sys_menu WHERE menu_id = @dataMenuId LIMIT 1); SET @ruleOrderNum := IFNULL(@dataOrderNum, 10) + 1; -- directory: rule management (parent_id = 0, sibling of data) INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) SELECT 2480, N'规则管理', 0, @ruleOrderNum, 'rule', NULL, '', '', 1, 0, 'M', '0', '0', '', 'edit', 'admin', sysdate(), N'业务规则管理' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2480 OR (path = 'rule' AND parent_id = 0 AND menu_type = 'M')); -- if already inserted under data, move to top level UPDATE sys_menu SET parent_id = 0, order_num = @ruleOrderNum, path = 'rule', menu_type = 'M', component = NULL, update_time = sysdate() WHERE menu_id = 2480 OR (menu_name = N'规则管理' AND menu_type = 'M' AND path = 'rule'); SET @ruleParentId := (SELECT menu_id FROM sys_menu WHERE menu_id = 2480 LIMIT 1); SET @ruleParentId := IFNULL(@ruleParentId, ( SELECT menu_id FROM sys_menu WHERE path = 'rule' AND menu_type = 'M' AND parent_id = 0 ORDER BY menu_id ASC LIMIT 1 )); INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) SELECT 2481, N'规则配置', @ruleParentId, 1, 'config', 'data/rule/config/index', '', 'BizRuleConfig', 1, 0, 'C', '0', '0', 'data:bizRule:list', 'list', 'admin', sysdate(), N'计费重取值等业务规则' FROM DUAL WHERE @ruleParentId IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2481 OR perms = 'data:bizRule:list'); -- ensure page menu hangs under top-level rule management UPDATE sys_menu SET parent_id = @ruleParentId, path = 'config', component = 'data/rule/config/index', update_time = sysdate() WHERE @ruleParentId IS NOT NULL AND (menu_id = 2481 OR perms = 'data:bizRule:list'); INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time) SELECT 2482, N'查询', 2481, 1, '', NULL, 1, 0, 'F', '0', '0', 'data:bizRule:query', '#', 'admin', sysdate() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2482 OR perms = 'data:bizRule:query'); INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time) SELECT 2483, N'新增', 2481, 2, '', NULL, 1, 0, 'F', '0', '0', 'data:bizRule:add', '#', 'admin', sysdate() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2483 OR perms = 'data:bizRule:add'); INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time) SELECT 2484, N'修改', 2481, 3, '', NULL, 1, 0, 'F', '0', '0', 'data:bizRule:edit', '#', 'admin', sysdate() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2484 OR perms = 'data:bizRule:edit'); INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time) SELECT 2485, N'删除', 2481, 4, '', NULL, 1, 0, 'F', '0', '0', 'data:bizRule:remove', '#', 'admin', sysdate() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2485 OR perms = 'data:bizRule:remove'); INSERT INTO sys_role_menu (role_id, menu_id) SELECT 1, m.menu_id FROM (SELECT 2480 AS menu_id UNION SELECT 2481 UNION SELECT 2482 UNION SELECT 2483 UNION SELECT 2484 UNION SELECT 2485) m WHERE NOT EXISTS (SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = 1 AND rm.menu_id = m.menu_id);