-- ============================================= -- 常见问题管理模块 - 兼容版SQL脚本 -- 适用于所有MySQL版本 -- ============================================= -- ========== 第一部分:创建数据表 ========== -- 删除旧表(如果存在) DROP TABLE IF EXISTS `sys_faq`; -- 创建常见问题表 CREATE TABLE `sys_faq` ( `faq_id` bigint NOT NULL AUTO_INCREMENT COMMENT '问题ID', `question` varchar(500) NOT NULL COMMENT '问题标题', `answer` text NULL COMMENT '问题答案', `sort_order` int NULL DEFAULT 0 COMMENT '排序号', `status` char(1) NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', `create_by` varchar(64) NULL DEFAULT '' COMMENT '创建者', `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) NULL DEFAULT '' COMMENT '更新者', `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) NULL DEFAULT NULL COMMENT '备注', `del_flag` char(1) NULL DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)', PRIMARY KEY (`faq_id`) ) ENGINE = InnoDB COMMENT = '常见问题表'; -- 插入示例数据 INSERT INTO `sys_faq` (`faq_id`, `question`, `answer`, `sort_order`, `status`, `create_by`, `create_time`, `remark`, `del_flag`) VALUES (1, '如何使用充电桩?', '1. 停好车辆;2. 扫码启动充电桩;3. 连接充电枪;4. 开始充电。', 1, '0', 'admin', NOW(), NULL, '0'); INSERT INTO `sys_faq` (`faq_id`, `question`, `answer`, `sort_order`, `status`, `create_by`, `create_time`, `remark`, `del_flag`) VALUES (2, '充电费用如何计算?', '充电费用=充电电量×电价+服务费,具体以实际订单为准。', 2, '0', 'admin', NOW(), NULL, '0'); INSERT INTO `sys_faq` (`faq_id`, `question`, `answer`, `sort_order`, `status`, `create_by`, `create_time`, `remark`, `del_flag`) VALUES (3, '充电过程中可以拔枪吗?', '充电过程中请勿随意拔枪,如需停止充电请先在APP或充电桩上停止充电后再拔枪。', 3, '0', 'admin', NOW(), NULL, '0'); -- 验证表创建 SELECT '=== 表创建成功 ===' as status, COUNT(*) as data_count FROM sys_faq; -- ========== 第二部分:配置菜单(分步执行)========== -- 1. 先查询系统管理的menu_id SELECT menu_id, menu_name FROM sys_menu WHERE menu_name = '系统管理' AND parent_id = 0; -- 记下返回的 menu_id,通常是 1 -- 2. 删除旧菜单 DELETE FROM sys_role_menu WHERE menu_id IN (SELECT menu_id FROM sys_menu WHERE menu_name LIKE '%常见问题%'); DELETE FROM sys_menu WHERE menu_name LIKE '%常见问题%'; -- 3. 插入主菜单(请将 parent_id 改为上面查询到的实际值,通常是1) INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) VALUES('常见问题管理', 1, 10, 'faq', 'system/faq/index', 1, 0, 'C', '0', '0', 'system:faq:list', 'question', 'admin', NOW(), '常见问题管理菜单'); -- 4. 查询刚插入的主菜单ID SELECT menu_id, menu_name FROM sys_menu WHERE menu_name = '常见问题管理'; -- 记下返回的 menu_id,假设是 2000 -- 5. 插入按钮权限(请将所有 parent_id 改为上面查询到的主菜单ID) -- 查询权限 INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) VALUES('常见问题查询', 2000, 1, '#', '', 1, 0, 'F', '0', '0', 'system:faq:query', '#', 'admin', NOW(), ''); -- 新增权限 INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) VALUES('常见问题新增', 2000, 2, '#', '', 1, 0, 'F', '0', '0', 'system:faq:add', '#', 'admin', NOW(), ''); -- 修改权限 INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) VALUES('常见问题修改', 2000, 3, '#', '', 1, 0, 'F', '0', '0', 'system:faq:edit', '#', 'admin', NOW(), ''); -- 删除权限 INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) VALUES('常见问题删除', 2000, 4, '#', '', 1, 0, 'F', '0', '0', 'system:faq:remove', '#', 'admin', NOW(), ''); -- 导出权限 INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) VALUES('常见问题导出', 2000, 5, '#', '', 1, 0, 'F', '0', '0', 'system:faq:export', '#', 'admin', NOW(), ''); -- 6. 分配权限给管理员角色(role_id=1) INSERT INTO sys_role_menu (role_id, menu_id) SELECT 1, menu_id FROM sys_menu WHERE menu_name LIKE '%常见问题%'; -- 7. 验证 SELECT '=== 菜单创建验证 ===' as status; SELECT menu_id, menu_name, parent_id, menu_type, perms FROM sys_menu WHERE menu_name LIKE '%常见问题%' ORDER BY parent_id, order_num; SELECT '=== 权限分配验证 ===' as status; SELECT COUNT(*) as assigned_count FROM sys_role_menu WHERE menu_id IN (SELECT menu_id FROM sys_menu WHERE menu_name LIKE '%常见问题%'); -- ============================================= -- 执行说明: -- 1. 先执行"第一部分"(创建表和数据) -- 2. 再逐步执行"第二部分"的每个步骤 -- 3. 注意替换parent_id为实际查询到的值 -- =============================================