-- 短信验证码记录表 CREATE TABLE IF NOT EXISTS `sys_sms_code` ( `id` BIGINT PRIMARY KEY AUTO_INCREMENT, `phone` VARCHAR(20) NOT NULL, `code` VARCHAR(10) NOT NULL, `expire_time` DATETIME NOT NULL, `used` TINYINT NOT NULL DEFAULT 0, `used_time` DATETIME DEFAULT NULL, `request_ip` VARCHAR(64) DEFAULT NULL, `send_status` TINYINT NOT NULL DEFAULT 1, `send_msg` VARCHAR(255) DEFAULT NULL, `create_time` DATETIME NOT NULL ) COMMENT='短信验证码记录'; -- 用户表 CREATE TABLE `sys_user` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID', `username` VARCHAR(50) NOT NULL COMMENT '用户名', `password` VARCHAR(100) NOT NULL COMMENT '密码', `nickname` VARCHAR(50) DEFAULT NULL COMMENT '昵称', `email` VARCHAR(100) DEFAULT NULL COMMENT '邮箱', `phone` VARCHAR(20) DEFAULT NULL COMMENT '手机号', `avatar` VARCHAR(255) DEFAULT NULL COMMENT '头像', `status` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '状态:0-禁用,1-正常', `create_by` VARCHAR(50) DEFAULT NULL COMMENT '创建人', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(50) DEFAULT NULL COMMENT '更新人', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志:0-正常,1-删除', `remark` VARCHAR(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`), UNIQUE KEY `uk_username` (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统用户表'; -- 角色表 CREATE TABLE `sys_role` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '角色ID', `role_name` VARCHAR(50) NOT NULL COMMENT '角色名称', `role_key` VARCHAR(50) NOT NULL COMMENT '角色权限字符串', `role_sort` INT(4) NOT NULL DEFAULT 0 COMMENT '显示顺序', `status` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '状态:0-禁用,1-正常', `create_by` VARCHAR(50) DEFAULT NULL COMMENT '创建人', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(50) DEFAULT NULL COMMENT '更新人', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志:0-正常,1-删除', `remark` VARCHAR(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`), UNIQUE KEY `uk_role_key` (`role_key`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统角色表'; -- 菜单表(支持2级菜单) CREATE TABLE `sys_menu` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID', `menu_name` VARCHAR(50) NOT NULL COMMENT '菜单名称', `parent_id` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '父菜单ID,0表示顶级菜单', `menu_type` CHAR(1) NOT NULL COMMENT '菜单类型:M-目录,C-菜单,F-按钮', `path` VARCHAR(200) DEFAULT NULL COMMENT '路由地址', `component` VARCHAR(255) DEFAULT NULL COMMENT '组件路径', `perms` VARCHAR(100) DEFAULT NULL COMMENT '权限标识', `icon` VARCHAR(100) DEFAULT NULL COMMENT '菜单图标', `order_num` INT(4) NOT NULL DEFAULT 0 COMMENT '显示顺序', `visible` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否可见:0-隐藏,1-显示', `status` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '状态:0-禁用,1-正常', `create_by` VARCHAR(50) DEFAULT NULL COMMENT '创建人', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(50) DEFAULT NULL COMMENT '更新人', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志:0-正常,1-删除', `remark` VARCHAR(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`), KEY `idx_parent_id` (`parent_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统菜单表'; -- 用户角色关联表 CREATE TABLE `sys_user_role` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', `user_id` BIGINT(20) NOT NULL COMMENT '用户ID', `role_id` BIGINT(20) NOT NULL COMMENT '角色ID', PRIMARY KEY (`id`), UNIQUE KEY `uk_user_role` (`user_id`, `role_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户角色关联表'; -- 角色菜单关联表 CREATE TABLE `sys_role_menu` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', `role_id` BIGINT(20) NOT NULL COMMENT '角色ID', `menu_id` BIGINT(20) NOT NULL COMMENT '菜单ID', PRIMARY KEY (`id`), UNIQUE KEY `uk_role_menu` (`role_id`, `menu_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色菜单关联表'; -- 初始化数据 -- 插入超级管理员用户 (密码: admin123,需要BCrypt加密) INSERT INTO `sys_user` (`id`, `username`, `password`, `nickname`, `status`) VALUES (1, 'admin', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE/TU9v8ffdQ6q', '超级管理员', 1); -- 插入普通用户 (密码: user123) INSERT INTO `sys_user` (`id`, `username`, `password`, `nickname`, `status`) VALUES (2, 'user', '$2a$10$N.ZOn9G6/YLFixAOPMg/h.z7pCu6v2XyFDtC4q.jeeGm/TEZySmDu', '普通用户', 1); -- 插入角色 INSERT INTO `sys_role` (`id`, `role_name`, `role_key`, `role_sort`) VALUES (1, '超级管理员', 'admin', 1); INSERT INTO `sys_role` (`id`, `role_name`, `role_key`, `role_sort`) VALUES (2, '普通用户', 'user', 2); -- 插入一级菜单(目录) INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `icon`, `order_num`, `perms`) VALUES (1, '系统管理', 0, 'M', '/system', 'system', 1, NULL); INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `icon`, `order_num`, `perms`) VALUES (2, '用户中心', 0, 'M', '/user', 'user', 2, NULL); -- 插入二级菜单 INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `order_num`, `perms`) VALUES (101, '用户管理', 1, 'C', '/system/user', 'system/user/index', 1, 'system:user:list'); INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `order_num`, `perms`) VALUES (102, '角色管理', 1, 'C', '/system/role', 'system/role/index', 2, 'system:role:list'); INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `order_num`, `perms`) VALUES (103, '菜单管理', 1, 'C', '/system/menu', 'system/menu/index', 3, 'system:menu:list'); INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `order_num`, `perms`) VALUES (201, '个人信息', 2, 'C', '/user/profile', 'user/profile/index', 1, 'user:profile:view'); -- 插入按钮权限 INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `order_num`, `perms`) VALUES (1011, '用户新增', 101, 'F', 1, 'system:user:add'); INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `order_num`, `perms`) VALUES (1012, '用户修改', 101, 'F', 2, 'system:user:edit'); INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `order_num`, `perms`) VALUES (1013, '用户删除', 101, 'F', 3, 'system:user:remove'); INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `order_num`, `perms`) VALUES (1021, '角色新增', 102, 'F', 1, 'system:role:add'); INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `order_num`, `perms`) VALUES (1022, '角色修改', 102, 'F', 2, 'system:role:edit'); INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `order_num`, `perms`) VALUES (1023, '角色删除', 102, 'F', 3, 'system:role:remove'); -- 用户角色关联 INSERT INTO `sys_user_role` (`user_id`, `role_id`) VALUES (1, 1); INSERT INTO `sys_user_role` (`user_id`, `role_id`) VALUES (2, 2); -- 角色菜单关联(超级管理员拥有所有权限) INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (1, 1), (1, 2), (1, 101), (1, 102), (1, 103), (1, 201), (1, 1011), (1, 1012), (1, 1013), (1, 1021), (1, 1022), (1, 1023); -- 普通用户只有查看权限 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 2), (2, 201);