use school_news; -- 部门表 DROP TABLE IF EXISTS `tb_sys_dept`; CREATE TABLE `tb_sys_dept` ( `id` VARCHAR(50) NOT NULL COMMENT 'id', `dept_id` VARCHAR(50) NOT NULL COMMENT '部门ID', `name` VARCHAR(100) NOT NULL COMMENT '部门名称', `parent_id` VARCHAR(50) DEFAULT NULL COMMENT '父部门ID', `description` VARCHAR(255) DEFAULT NULL COMMENT '部门描述', `creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者', `updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者', `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_dept_id` (`dept_id`), KEY `idx_dept_parent` (`parent_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; INSERT INTO `tb_sys_dept` (id,dept_id,name, description) VALUES ('1','root_department', '超级部门', '系统超级部门'); INSERT INTO `tb_sys_dept` (id,dept_id,name, parent_id, description) VALUES ('2','default_department', '默认部门', 'root_department', '系统默认创建的部门'); -- 角色表 DROP TABLE IF EXISTS `tb_sys_role`; CREATE TABLE `tb_sys_role` ( `id` VARCHAR(50) NOT NULL COMMENT 'id', `role_id` VARCHAR(50) NOT NULL COMMENT '角色ID', `name` VARCHAR(100) NOT NULL COMMENT '角色名称', `description` VARCHAR(255) DEFAULT NULL COMMENT '角色描述', `creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者', `updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者', `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_role_id` (`role_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; INSERT INTO `tb_sys_role` (id,role_id, name, description) VALUES ('1','admin', '管理员', '系统管理员角色'); INSERT INTO `tb_sys_role` (id,role_id, name, description) VALUES ('2','freedom', '自由角色', '自由角色'); -- 部门-角色关联 DROP TABLE IF EXISTS `tb_sys_dept_role`; CREATE TABLE `tb_sys_dept_role` ( `id` VARCHAR(50) NOT NULL COMMENT '部门角色ID', `dept_id` VARCHAR(50) NOT NULL COMMENT '部门ID', `role_id` VARCHAR(50) NOT NULL COMMENT '角色ID', `creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者', `updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者', `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_dept_role` (`dept_id`, `role_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; INSERT INTO `tb_sys_dept_role` (id, dept_id, role_id, creator, create_time) VALUES ('1', 'root_department', 'admin', '1', now()), ('2', 'default_department', 'freedom', '1', now()); -- 用户-角色关联 DROP TABLE IF EXISTS `tb_sys_user_dept_role`; CREATE TABLE `tb_sys_user_dept_role` ( `id` VARCHAR(50) NOT NULL COMMENT '用户角色ID', `user_id` VARCHAR(50) NOT NULL COMMENT '用户ID', `dept_id` VARCHAR(50) NOT NULL COMMENT '部门ID', `role_id` VARCHAR(50) NOT NULL COMMENT '角色ID', `creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者', `updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者', `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_user_dept_role` (`user_id`, `dept_id`, `role_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; INSERT INTO `tb_sys_user_dept_role` (id, user_id, dept_id, role_id, creator, create_time) VALUES ('1', '1', 'root_department', 'admin', '1', now()); -- 权限表 DROP TABLE IF EXISTS `tb_sys_permission`; CREATE TABLE `tb_sys_permission` ( `id` VARCHAR(50) NOT NULL COMMENT 'id', `permission_id` VARCHAR(50) NOT NULL COMMENT '权限ID', `name` VARCHAR(100) NOT NULL COMMENT '权限名称', `code` VARCHAR(100) NOT NULL COMMENT '权限代码', `description` VARCHAR(255) DEFAULT NULL COMMENT '权限描述', `creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者', `updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者', `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_permission_id` (`permission_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; INSERT INTO `tb_sys_permission` (id,permission_id, name, code, description, creator, create_time) VALUES ('0','perm_default', '默认权限', 'default', '默认权限', '1', now()), ('1','perm_system_manage', '系统管理', 'system:manage', '系统管理权限', '1', now()), ('2','perm_system_dept_manage', '系统部门查看', 'system:dept:manage', '系统部门查看权限', '1', now()), ('3','perm_system_menu_manage', '系统菜单查看', 'system:menu:manage', '系统菜单查看权限', '1', now()), ('4','perm_system_permission_manage', '系统权限查看', 'system:permission:manage', '系统权限查看权限', '1', now()), ('5','perm_system_role_manage', '系统角色查看', 'system:role:manage', '系统角色查看权限', '1', now()), ('6','perm_system_user_manage', '系统用户查看', 'system:user:manage', '系统用户查看权限', '1', now()), ('7','perm_news_manage', '新闻管理', 'news:manage', '新闻管理权限', '1', now()), ('8','perm_study_manage', '学习管理', 'study:manage', '学习管理权限', '1', now()), ('9','perm_ai_manage', 'AI管理', 'ai:manage', 'AI管理权限', '1', now()), ('10','perm_usercenter_manage', '用户中心管理', 'usercenter:manage', '用户中心管理权限', '1', now()); -- 角色-权限关联 DROP TABLE IF EXISTS `tb_sys_role_permission`; CREATE TABLE `tb_sys_role_permission` ( `id` VARCHAR(50) NOT NULL COMMENT '角色权限ID', `role_id` VARCHAR(50) NOT NULL COMMENT '角色ID', `permission_id` VARCHAR(50) NOT NULL COMMENT '权限ID', `creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者', `updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者', `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_role_permission` (`role_id`, `permission_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; INSERT INTO `tb_sys_role_permission` (id, role_id, permission_id, creator, create_time) VALUES ('0', 'admin', 'perm_default', '1', now()), ('1', 'admin', 'perm_system_manage', '1', now()), ('2', 'admin', 'perm_system_dept_manage', '1', now()), ('3', 'admin', 'perm_system_menu_manage', '1', now()), ('4', 'admin', 'perm_system_permission_manage', '1', now()), ('5', 'admin', 'perm_system_role_manage', '1', now()), ('6', 'admin', 'perm_system_user_manage', '1', now()), ('7', 'admin', 'perm_news_manage', '1', now()), ('8', 'admin', 'perm_study_manage', '1', now()), ('9', 'admin', 'perm_ai_manage', '1', now()), ('10', 'admin', 'perm_usercenter_manage', '1', now()), ('11', 'freedom', 'perm_default', '1', now()); -- 菜单表 DROP TABLE IF EXISTS `tb_sys_menu`; CREATE TABLE `tb_sys_menu` ( `id` VARCHAR(50) NOT NULL COMMENT 'id', `menu_id` VARCHAR(50) NOT NULL COMMENT '菜单ID', `name` VARCHAR(100) NOT NULL COMMENT '菜单名称', `parent_id` VARCHAR(50) DEFAULT NULL COMMENT '父菜单ID', `url` VARCHAR(255) DEFAULT NULL COMMENT '菜单URL', `component` VARCHAR(255) DEFAULT NULL COMMENT '菜单组件', `icon` VARCHAR(100) DEFAULT NULL COMMENT '菜单图标', `order_num` INT(4) DEFAULT 0 COMMENT '菜单排序号', `type` INT(4) DEFAULT 0 COMMENT '菜单类型(0目录 1菜单 2按钮)', `layout` VARCHAR(100) DEFAULT 'BasicLayout' COMMENT '布局组件路径名称(如:BasicLayout、BlankLayout、NavigationLayout、PageLayout)', `creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者', `updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者', `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_menu_id` (`menu_id`), KEY `idx_menu_parent` (`parent_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; -- Insert default menus INSERT INTO `tb_sys_menu` (id,menu_id, name, parent_id, url, component, icon, order_num, type, layout, creator, create_time) VALUES ('1','menu_system_manage', '系统管理', NULL, '', '', 'el-icon-setting', 1, 1, '', '1', now()), ('2','menu_system_dept', '部门管理', 'menu_system_manage', '/manage/system/dept', 'manage/system/DeptManageView', 'el-icon-office-building', 2, 1, 'NavigationLayout', '1', now()), ('3','menu_system_menu', '菜单管理', 'menu_system_manage', '/manage/system/menu', 'manage/system/MenuManageView', 'el-icon-menu', 2, 1, 'NavigationLayout', '1', now()), ('4','menu_system_permission', '权限管理', 'menu_system_manage', '/manage/system/permission', 'manage/system/PermissionManageView', 'el-icon-key', 3, 1, 'NavigationLayout', '1', now()), ('5','menu_system_role', '角色管理', 'menu_system_manage', '/manage/system/role', 'manage/system/RoleManageView', 'el-icon-user', 4, 1, 'NavigationLayout', '1', now()), ('6','menu_system_user', '用户管理', 'menu_system_manage', '/manage/system/user', 'manage/system/UserManageView', 'el-icon-user', 5, 1, 'NavigationLayout', '1', now()); -- ('7','menu_news_manage', '新闻管理', NULL, '', '', 'el-icon-document', 2, 1, '', '1', now()), -- ('8','menu_news_resource', '资源管理', 'menu_news_manage', '/manage/news/resource', 'manage/news/ResourceManageView', 'el-icon-folder', 1, 1, 'NavigationLayout', '1', now()), -- ('9','menu_news_category', '分类管理', 'menu_news_manage', '/manage/news/category', 'manage/news/CategoryManageView', 'el-icon-menu', 2, 1, 'NavigationLayout', '1', now()), -- ('10','menu_news_tag', '标签管理', 'menu_news_manage', '/manage/news/tag', 'manage/news/TagManageView', 'el-icon-price-tag', 3, 1, 'NavigationLayout', '1', now()), -- ('11','menu_news_banner', '横幅管理', 'menu_news_manage', '/manage/news/banner', 'manage/news/BannerManageView', 'el-icon-picture', 4, 1, 'NavigationLayout', '1', now()), -- ('12','menu_study_manage', '学习管理', NULL, '', '', 'el-icon-reading', 3, 1, '', '1', now()), -- ('13','menu_study_course', '课程管理', 'menu_study_manage', '/manage/study/course', 'manage/study/CourseManageView', 'el-icon-video-play', 1, 1, 'NavigationLayout', '1', now()), -- ('14','menu_study_task', '任务管理', 'menu_study_manage', '/manage/study/task', 'manage/study/TaskManageView', 'el-icon-s-order', 2, 1, 'NavigationLayout', '1', now()), -- ('15','menu_study_record', '学习记录', 'menu_study_manage', '/manage/study/record', 'manage/study/RecordManageView', 'el-icon-document', 3, 1, 'NavigationLayout', '1', now()), -- ('16','menu_ai_manage', 'AI管理', NULL, '', '', 'el-icon-cpu', 4, 1, '', '1', now()), -- ('17','menu_ai_agent', 'AI代理', 'menu_ai_manage', '/manage/ai/agent', 'manage/ai/AgentManageView', 'el-icon-robot', 1, 1, 'NavigationLayout', '1', now()), -- ('18','menu_ai_conversation', '对话管理', 'menu_ai_manage', '/manage/ai/conversation', 'manage/ai/ConversationManageView', 'el-icon-chat-line-round', 2, 1, 'NavigationLayout', '1', now()), -- ('19','menu_ai_knowledge', '知识库', 'menu_ai_manage', '/manage/ai/knowledge', 'manage/ai/KnowledgeManageView', 'el-icon-collection', 3, 1, 'NavigationLayout', '1', now()), -- ('20','menu_usercenter_manage', '用户中心', NULL, '', '', 'el-icon-user', 5, 1, '', '1', now()), -- ('21','menu_usercenter_points', '积分管理', 'menu_usercenter_manage', '/manage/usercenter/points', 'manage/usercenter/PointsManageView', 'el-icon-coin', 1, 1, 'NavigationLayout', '1', now()), -- ('22','menu_usercenter_achievement', '成就管理', 'menu_usercenter_manage', '/manage/usercenter/achievement', 'manage/usercenter/AchievementManageView', 'el-icon-trophy', 2, 1, 'NavigationLayout', '1', now()), -- ('23','menu_usercenter_collection', '收藏管理', 'menu_usercenter_manage', '/manage/usercenter/collection', 'manage/usercenter/CollectionManageView', 'el-icon-star-on', 3, 1, 'NavigationLayout', '1', now()); DROP TABLE IF EXISTS `tb_sys_menu_permission`; CREATE TABLE `tb_sys_menu_permission` ( `id` VARCHAR(50) NOT NULL COMMENT '菜单权限ID', `permission_id` VARCHAR(50) NOT NULL COMMENT '权限ID', `menu_id` VARCHAR(50) NOT NULL COMMENT '菜单ID', `creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者', `updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者', `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_menu_permission` (`menu_id`, `permission_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; -- Insert menu-permission associations INSERT INTO `tb_sys_menu_permission` (id, permission_id, menu_id, creator, create_time) VALUES ('1', 'perm_system_manage', 'menu_system_manage', '1', now()), ('2', 'perm_system_dept_manage', 'menu_system_dept', '1', now()), ('3', 'perm_system_menu_manage', 'menu_system_menu', '1', now()), ('4', 'perm_system_permission_manage', 'menu_system_permission', '1', now()), ('5', 'perm_system_role_manage', 'menu_system_role', '1', now()), ('6', 'perm_system_user_manage', 'menu_system_user', '1', now());