-- ============================================= -- 星撰个人综合平台 - 基础用户系统数据库结构导出 -- 版本: M2 基础用户系统 -- 生成时间: 2024-12-30 -- 数据库: MySQL 8.0+ -- ============================================= SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ============================================= -- 1. 用户表 (sys_users) -- ============================================= DROP TABLE IF EXISTS `sys_users`; CREATE TABLE `sys_users` ( `id` BIGINT NOT NULL COMMENT '主键,雪花ID', `username` VARCHAR(50) NOT NULL COMMENT '用户名,唯一', `email` VARCHAR(100) NOT NULL COMMENT '邮箱,唯一', `mobile` VARCHAR(20) NULL COMMENT '手机号', `password_hash` VARCHAR(255) NOT NULL COMMENT '密码哈希值', `avatar` VARCHAR(255) NULL COMMENT '头像URL', `nickname` VARCHAR(100) NULL COMMENT '昵称', `status` VARCHAR(20) NOT NULL DEFAULT 'active' COMMENT '状态:active-正常,inactive-未激活,locked-锁定,disabled-禁用', `gender` TINYINT NULL DEFAULT 0 COMMENT '性别:0-未知,1-男,2-女', `birthday` DATE NULL COMMENT '生日', `bio` VARCHAR(500) NULL COMMENT '个人简介', `login_count` INT NOT NULL DEFAULT 0 COMMENT '登录次数', `last_login_at` DATETIME NULL COMMENT '最后登录时间', `last_login_ip` VARCHAR(45) NULL COMMENT '最后登录IP', `failed_attempts` INT NOT NULL DEFAULT 0 COMMENT '连续失败尝试次数', `locked_until` DATETIME NULL COMMENT '锁定截止时间', `is_root` BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否超级管理员', `extra` JSON NULL COMMENT '扩展信息,JSON格式', `created_by` BIGINT NULL COMMENT '创建人ID', `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updated_by` BIGINT NULL COMMENT '更新人ID', `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted_at` DATETIME NULL COMMENT '删除时间,软删除标记', `version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表'; -- 用户表索引 CREATE UNIQUE INDEX `uk_username` ON `sys_users` (`username`, `deleted_at`); CREATE UNIQUE INDEX `uk_email` ON `sys_users` (`email`, `deleted_at`); CREATE INDEX `idx_mobile` ON `sys_users` (`mobile`); CREATE INDEX `idx_status` ON `sys_users` (`status`); CREATE INDEX `idx_created_at` ON `sys_users` (`created_at`); CREATE INDEX `idx_deleted_at` ON `sys_users` (`deleted_at`); CREATE INDEX `idx_is_root` ON `sys_users` (`is_root`); CREATE INDEX `idx_last_login` ON `sys_users` (`last_login_at`); -- ============================================= -- 2. 角色表 (sys_roles) -- ============================================= DROP TABLE IF EXISTS `sys_roles`; CREATE TABLE `sys_roles` ( `id` BIGINT NOT NULL COMMENT '主键', `code` VARCHAR(50) NOT NULL COMMENT '角色代码,唯一', `name` VARCHAR(100) NOT NULL COMMENT '角色名称', `description` TEXT NULL COMMENT '角色描述', `pid` BIGINT NULL DEFAULT 0 COMMENT '父角色ID,0表示顶级', `path` VARCHAR(500) NULL COMMENT '层级路径,如:/1/2/3/', `level` INT NOT NULL DEFAULT 1 COMMENT '层级深度', `sort_order` INT NOT NULL DEFAULT 0 COMMENT '同级排序号', `status` VARCHAR(20) NOT NULL DEFAULT 'active' COMMENT '状态:active-启用,inactive-禁用', `is_system` BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否系统内置角色', `permissions_snapshot` JSON NULL COMMENT '权限快照,用于优化查询', `extra` JSON NULL COMMENT '扩展信息', `created_by` BIGINT NULL COMMENT '创建人ID', `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updated_by` BIGINT NULL COMMENT '更新人ID', `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted_at` DATETIME NULL COMMENT '删除时间', `version` INT NOT NULL DEFAULT 1 COMMENT '版本号', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色表'; -- 角色表索引 CREATE UNIQUE INDEX `uk_code` ON `sys_roles` (`code`, `deleted_at`); CREATE INDEX `idx_name` ON `sys_roles` (`name`); CREATE INDEX `idx_pid` ON `sys_roles` (`pid`); CREATE INDEX `idx_path` ON `sys_roles` (`path`); CREATE INDEX `idx_status` ON `sys_roles` (`status`); CREATE INDEX `idx_deleted_at` ON `sys_roles` (`deleted_at`); CREATE INDEX `idx_is_system` ON `sys_roles` (`is_system`); CREATE INDEX `idx_sort` ON `sys_roles` (`pid`, `sort_order`); -- ============================================= -- 3. 权限表 (sys_permissions) -- ============================================= DROP TABLE IF EXISTS `sys_permissions`; CREATE TABLE `sys_permissions` ( `id` BIGINT NOT NULL COMMENT '主键', `code` VARCHAR(100) NOT NULL COMMENT '权限代码,唯一', `name` VARCHAR(100) NOT NULL COMMENT '权限名称', `type` VARCHAR(20) NOT NULL COMMENT '权限类型:menu-菜单,button-按钮,api-接口,data-数据', `resource` VARCHAR(50) NULL COMMENT '资源标识,如:user,role,post', `action` VARCHAR(50) NULL COMMENT '操作标识,如:read,create,update,delete', `description` TEXT NULL COMMENT '权限描述', `pid` BIGINT NULL DEFAULT 0 COMMENT '父权限ID', `path` VARCHAR(500) NULL COMMENT '层级路径', `level` INT NOT NULL DEFAULT 1 COMMENT '层级深度', `sort_order` INT NOT NULL DEFAULT 0 COMMENT '排序号', `status` VARCHAR(20) NOT NULL DEFAULT 'active' COMMENT '状态', `meta` JSON NULL COMMENT '元数据,如:图标、路由等', `created_by` BIGINT NULL COMMENT '创建人ID', `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updated_by` BIGINT NULL COMMENT '更新人ID', `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted_at` DATETIME NULL COMMENT '删除时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='权限表'; -- 权限表索引 CREATE UNIQUE INDEX `uk_code` ON `sys_permissions` (`code`, `deleted_at`); CREATE INDEX `idx_type` ON `sys_permissions` (`type`); CREATE INDEX `idx_resource_action` ON `sys_permissions` (`resource`, `action`); CREATE INDEX `idx_pid` ON `sys_permissions` (`pid`); CREATE INDEX `idx_deleted_at` ON `sys_permissions` (`deleted_at`); CREATE INDEX `idx_status` ON `sys_permissions` (`status`); CREATE INDEX `idx_sort` ON `sys_permissions` (`pid`, `sort_order`); -- ============================================= -- 4. 组织架构表 (sys_organizations) -- ============================================= DROP TABLE IF EXISTS `sys_organizations`; CREATE TABLE `sys_organizations` ( `id` BIGINT NOT NULL COMMENT '主键', `code` VARCHAR(100) NOT NULL COMMENT '组织代码,唯一', `name` VARCHAR(200) NOT NULL COMMENT '组织名称', `full_name` VARCHAR(200) NULL COMMENT '组织全称', `description` TEXT NULL COMMENT '组织描述', `pid` BIGINT NULL DEFAULT 0 COMMENT '父组织ID', `path` VARCHAR(500) NULL COMMENT '层级路径', `level` INT NOT NULL DEFAULT 1 COMMENT '层级深度', `type` VARCHAR(20) NULL COMMENT '组织类型:company,department,team', `status` VARCHAR(20) NOT NULL DEFAULT 'active' COMMENT '状态', `sort_order` INT NOT NULL DEFAULT 0 COMMENT '排序号', `leader_id` BIGINT NULL COMMENT '负责人ID', `address` VARCHAR(200) NULL COMMENT '地址', `phone` VARCHAR(50) NULL COMMENT '联系电话', `extra` JSON NULL COMMENT '扩展信息', `created_by` BIGINT NULL COMMENT '创建人ID', `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updated_by` BIGINT NULL COMMENT '更新人ID', `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted_at` DATETIME NULL COMMENT '删除时间', `version` INT NOT NULL DEFAULT 1 COMMENT '版本号', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='组织架构表'; -- 组织架构表索引 CREATE UNIQUE INDEX `uk_code` ON `sys_organizations` (`code`, `deleted_at`); CREATE INDEX `idx_name` ON `sys_organizations` (`name`); CREATE INDEX `idx_pid` ON `sys_organizations` (`pid`); CREATE INDEX `idx_path` ON `sys_organizations` (`path`); CREATE INDEX `idx_type` ON `sys_organizations` (`type`); CREATE INDEX `idx_leader_id` ON `sys_organizations` (`leader_id`); CREATE INDEX `idx_deleted_at` ON `sys_organizations` (`deleted_at`); CREATE INDEX `idx_status` ON `sys_organizations` (`status`); CREATE INDEX `idx_sort` ON `sys_organizations` (`pid`, `sort_order`); -- ============================================= -- 5. 字典类型表 (sys_dict_types) -- ============================================= DROP TABLE IF EXISTS `sys_dict_types`; CREATE TABLE `sys_dict_types` ( `id` BIGINT NOT NULL COMMENT '主键', `code` VARCHAR(50) NOT NULL COMMENT '字典类型代码,唯一', `name` VARCHAR(100) NOT NULL COMMENT '字典类型名称', `description` TEXT NULL COMMENT '描述', `pid` BIGINT NULL DEFAULT 0 COMMENT '父字典类型ID,支持字典分类', `path` VARCHAR(500) NULL COMMENT '层级路径', `level` INT NOT NULL DEFAULT 1 COMMENT '层级深度', `status` VARCHAR(20) NOT NULL DEFAULT 'active' COMMENT '状态:active-启用,inactive-禁用', `is_system` BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否系统内置', `sort_order` INT NOT NULL DEFAULT 0 COMMENT '排序号', `created_by` BIGINT NULL COMMENT '创建人ID', `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updated_by` BIGINT NULL COMMENT '更新人ID', `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted_at` DATETIME NULL COMMENT '删除时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='字典类型表'; -- 字典类型表索引 CREATE UNIQUE INDEX `uk_code` ON `sys_dict_types` (`code`, `deleted_at`); CREATE INDEX `idx_name` ON `sys_dict_types` (`name`); CREATE INDEX `idx_pid` ON `sys_dict_types` (`pid`); CREATE INDEX `idx_path` ON `sys_dict_types` (`path`); CREATE INDEX `idx_status` ON `sys_dict_types` (`status`); CREATE INDEX `idx_deleted_at` ON `sys_dict_types` (`deleted_at`); CREATE INDEX `idx_is_system` ON `sys_dict_types` (`is_system`); CREATE INDEX `idx_sort` ON `sys_dict_types` (`pid`, `sort_order`); -- ============================================= -- 6. 字典项表 (sys_dict_items) -- ============================================= DROP TABLE IF EXISTS `sys_dict_items`; CREATE TABLE `sys_dict_items` ( `id` BIGINT NOT NULL COMMENT '主键', `type_id` BIGINT NOT NULL COMMENT '字典类型ID', `item_key` VARCHAR(50) NOT NULL COMMENT '字典项键', `item_value` VARCHAR(200) NOT NULL COMMENT '字典项值', `label` VARCHAR(100) NOT NULL COMMENT '显示标签', `label_en` VARCHAR(200) NULL COMMENT '英文标签', `description` TEXT NULL COMMENT '描述', `pid` BIGINT NULL DEFAULT 0 COMMENT '父字典项ID,支持树形字典', `path` VARCHAR(500) NULL COMMENT '层级路径', `level` INT NOT NULL DEFAULT 1 COMMENT '层级深度', `sort_order` INT NOT NULL DEFAULT 0 COMMENT '排序号', `status` VARCHAR(20) NOT NULL DEFAULT 'active' COMMENT '状态', `css_class` VARCHAR(50) NULL COMMENT 'CSS样式类', `color` VARCHAR(50) NULL COMMENT '颜色值,如:#FF0000', `extra` JSON NULL COMMENT '扩展属性', `created_by` BIGINT NULL COMMENT '创建人ID', `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updated_by` BIGINT NULL COMMENT '更新人ID', `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted_at` DATETIME NULL COMMENT '删除时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='字典项表'; -- 字典项表索引 CREATE UNIQUE INDEX `uk_type_key` ON `sys_dict_items` (`type_id`, `item_key`, `deleted_at`); CREATE INDEX `idx_type_id` ON `sys_dict_items` (`type_id`); CREATE INDEX `idx_pid` ON `sys_dict_items` (`pid`); CREATE INDEX `idx_status` ON `sys_dict_items` (`status`); CREATE INDEX `idx_deleted_at` ON `sys_dict_items` (`deleted_at`); CREATE INDEX `idx_sort` ON `sys_dict_items` (`type_id`, `sort_order`); CREATE INDEX `idx_key` ON `sys_dict_items` (`item_key`); -- ============================================= -- 7. 标签表 (sys_tags) -- ============================================= DROP TABLE IF EXISTS `sys_tags`; CREATE TABLE `sys_tags` ( `id` BIGINT NOT NULL COMMENT '主键', `name` VARCHAR(50) NOT NULL COMMENT '标签名称', `type` VARCHAR(50) NULL DEFAULT 'user' COMMENT '标签类型:user-用户标签,role-角色标签,content-内容标签', `color` VARCHAR(50) NULL COMMENT '标签颜色,如:#FF0000', `description` TEXT NULL COMMENT '描述', `usage_count` INT NOT NULL DEFAULT 0 COMMENT '使用次数统计', `created_by` BIGINT NULL COMMENT '创建人ID', `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `deleted_at` DATETIME NULL COMMENT '删除时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='标签表'; -- 标签表索引 CREATE UNIQUE INDEX `uk_name_type` ON `sys_tags` (`name`, `type`, `deleted_at`); CREATE INDEX `idx_type` ON `sys_tags` (`type`); CREATE INDEX `idx_usage_count` ON `sys_tags` (`usage_count` DESC); CREATE INDEX `idx_deleted_at` ON `sys_tags` (`deleted_at`); CREATE INDEX `idx_name` ON `sys_tags` (`name`); -- ============================================= -- 8. 用户角色关联表 (sys_user_roles) -- ============================================= DROP TABLE IF EXISTS `sys_user_roles`; CREATE TABLE `sys_user_roles` ( `id` BIGINT NOT NULL COMMENT '主键', `user_id` BIGINT NOT NULL COMMENT '用户ID', `role_id` BIGINT NOT NULL COMMENT '角色ID', `expired_at` DATETIME NULL COMMENT '过期时间,NULL表示永久', `created_by` BIGINT NULL COMMENT '创建人ID', `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户角色关联表'; -- 用户角色关联表索引 CREATE UNIQUE INDEX `uk_user_role` ON `sys_user_roles` (`user_id`, `role_id`); CREATE INDEX `idx_user_id` ON `sys_user_roles` (`user_id`); CREATE INDEX `idx_role_id` ON `sys_user_roles` (`role_id`); CREATE INDEX `idx_expired_at` ON `sys_user_roles` (`expired_at`); CREATE INDEX `idx_created_at` ON `sys_user_roles` (`created_at`); -- ============================================= -- 9. 角色权限关联表 (sys_role_permissions) -- ============================================= DROP TABLE IF EXISTS `sys_role_permissions`; CREATE TABLE `sys_role_permissions` ( `id` BIGINT NOT NULL COMMENT '主键', `role_id` BIGINT NOT NULL COMMENT '角色ID', `permission_id` BIGINT NOT NULL COMMENT '权限ID', `is_half` BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否半选状态(树形权限)', `created_by` BIGINT NULL COMMENT '创建人ID', `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色权限关联表'; -- 角色权限关联表索引 CREATE UNIQUE INDEX `uk_role_permission` ON `sys_role_permissions` (`role_id`, `permission_id`); CREATE INDEX `idx_role_id` ON `sys_role_permissions` (`role_id`); CREATE INDEX `idx_permission_id` ON `sys_role_permissions` (`permission_id`); CREATE INDEX `idx_is_half` ON `sys_role_permissions` (`is_half`); -- ============================================= -- 10. 用户组织关联表 (sys_user_organizations) -- ============================================= DROP TABLE IF EXISTS `sys_user_organizations`; CREATE TABLE `sys_user_organizations` ( `id` BIGINT NOT NULL COMMENT '主键', `user_id` BIGINT NOT NULL COMMENT '用户ID', `organization_id` BIGINT NOT NULL COMMENT '组织ID', `is_primary` BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否主组织', `position` VARCHAR(100) NULL COMMENT '职位', `joined_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '加入时间', `created_by` BIGINT NULL COMMENT '创建人ID', `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户组织关联表'; -- 用户组织关联表索引 CREATE UNIQUE INDEX `uk_user_org` ON `sys_user_organizations` (`user_id`, `organization_id`); CREATE INDEX `idx_user_id` ON `sys_user_organizations` (`user_id`); CREATE INDEX `idx_organization_id` ON `sys_user_organizations` (`organization_id`); CREATE INDEX `idx_is_primary` ON `sys_user_organizations` (`is_primary`); CREATE INDEX `idx_joined_at` ON `sys_user_organizations` (`joined_at`); -- ============================================= -- 11. 用户标签关联表 (sys_user_tags) -- ============================================= DROP TABLE IF EXISTS `sys_user_tags`; CREATE TABLE `sys_user_tags` ( `id` BIGINT NOT NULL COMMENT '主键', `user_id` BIGINT NOT NULL COMMENT '用户ID', `tag_id` BIGINT NOT NULL COMMENT '标签ID', `created_by` BIGINT NULL COMMENT '创建人ID', `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户标签关联表'; -- 用户标签关联表索引 CREATE UNIQUE INDEX `uk_user_tag` ON `sys_user_tags` (`user_id`, `tag_id`); CREATE INDEX `idx_user_id` ON `sys_user_tags` (`user_id`); CREATE INDEX `idx_tag_id` ON `sys_user_tags` (`tag_id`); CREATE INDEX `idx_created_at` ON `sys_user_tags` (`created_at`); -- ============================================= -- 12. 操作日志表 (sys_operation_logs) -- ============================================= DROP TABLE IF EXISTS `sys_operation_logs`; CREATE TABLE `sys_operation_logs` ( `id` BIGINT NOT NULL COMMENT '主键', `user_id` BIGINT NULL COMMENT '操作用户ID', `username` VARCHAR(100) NULL COMMENT '操作用户名', `module` VARCHAR(50) NOT NULL COMMENT '操作模块', `action` VARCHAR(50) NOT NULL COMMENT '操作类型', `target` VARCHAR(200) NULL COMMENT '操作对象描述', `target_id` BIGINT NULL COMMENT '操作对象ID', `request_data` TEXT NULL COMMENT '请求数据', `response_data` TEXT NULL COMMENT '响应数据', `status` VARCHAR(20) NOT NULL COMMENT '操作状态:success-成功,fail-失败', `ip` VARCHAR(45) NULL COMMENT 'IP地址', `user_agent` VARCHAR(200) NULL COMMENT '用户代理', `duration` BIGINT NULL COMMENT '操作耗时(毫秒)', `error_msg` TEXT NULL COMMENT '错误信息', `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='操作日志表'; -- 操作日志表索引 CREATE INDEX `idx_user_id` ON `sys_operation_logs` (`user_id`); CREATE INDEX `idx_module_action` ON `sys_operation_logs` (`module`, `action`); CREATE INDEX `idx_target` ON `sys_operation_logs` (`target_id`); CREATE INDEX `idx_status` ON `sys_operation_logs` (`status`); CREATE INDEX `idx_created_at` ON `sys_operation_logs` (`created_at`); CREATE INDEX `idx_ip` ON `sys_operation_logs` (`ip`); -- ============================================= -- 初始化数据 -- ============================================= -- -- 1. 系统初始用户 -- INSERT INTO `sys_users` (`id`, `username`, `email`, `password_hash`, `nickname`, `is_root`, `status`) -- VALUES (1, 'root', 'root@system.local', '$2b$12$LQv3c1yqBWVHxkd0LHAkCOYz6TtxMQJqhN8/LewYpfQaXUIkRrPJK', '超级管理员', TRUE, 'active'); -- INSERT INTO `sys_users` (`id`, `username`, `email`, `password_hash`, `nickname`, `status`) -- VALUES (2, 'admin', 'admin@system.local', '$2b$12$LQv3c1yqBWVHxkd0LHAkCOYz6TtxMQJqhN8/LewYpfQaXUIkRrPJK', '系统管理员', 'active'); -- -- 2. 系统初始角色 -- INSERT INTO `sys_roles` (`id`, `code`, `name`, `description`, `is_system`, `status`) -- VALUES (1, 'super_admin', '超级管理员', '拥有系统所有权限', TRUE, 'active'); -- INSERT INTO `sys_roles` (`id`, `code`, `name`, `description`, `is_system`, `status`, `pid`, `path`, `level`) -- VALUES (2, 'admin', '系统管理员', '负责系统配置和用户管理', TRUE, 'active', 1, '/1/2/', 2); -- INSERT INTO `sys_roles` (`id`, `code`, `name`, `description`, `is_system`, `status`) -- VALUES (3, 'user', '普通用户', '普通注册用户默认角色', TRUE, 'active'); -- -- 3. 分配角色 -- INSERT INTO `sys_user_roles` (`user_id`, `role_id`) VALUES (1, 1); -- INSERT INTO `sys_user_roles` (`user_id`, `role_id`) VALUES (2, 2); -- -- 4. 字典分类 -- INSERT INTO `sys_dict_types` (`id`, `code`, `name`, `is_system`) VALUES -- (1, 'system', '系统字典', TRUE), -- (2, 'business', '业务字典', TRUE); -- -- 5. 用户状态字典 -- INSERT INTO `sys_dict_types` (`id`, `code`, `name`, `is_system`, `pid`, `path`) VALUES -- (10, 'user_status', '用户状态', TRUE, 1, '/1/10/'); -- INSERT INTO `sys_dict_items` (`type_id`, `item_key`, `item_value`, `label`, `color`, `sort_order`) VALUES -- (10, 'active', 'active', '正常', '#52c41a', 1), -- (10, 'inactive', 'inactive', '未激活', '#faad14', 2), -- (10, 'locked', 'locked', '锁定', '#ff4d4f', 3), -- (10, 'disabled', 'disabled', '禁用', '#d9d9d9', 4); -- -- 6. 组织类型字典 -- INSERT INTO `sys_dict_types` (`id`, `code`, `name`, `is_system`, `pid`, `path`) VALUES -- (11, 'org_type', '组织类型', TRUE, 1, '/1/11/'); -- INSERT INTO `sys_dict_items` (`type_id`, `item_key`, `item_value`, `label`, `sort_order`) VALUES -- (11, 'company', 'company', '公司', 1), -- (11, 'department', 'department', '部门', 2), -- (11, 'team', 'team', '团队', 3), -- (11, 'group', 'group', '小组', 4); -- -- 7. 性别字典 -- INSERT INTO `sys_dict_types` (`id`, `code`, `name`, `is_system`, `pid`, `path`) VALUES -- (12, 'gender', '性别', TRUE, 1, '/1/12/'); -- INSERT INTO `sys_dict_items` (`type_id`, `item_key`, `item_value`, `label`, `sort_order`) VALUES -- (12, '0', '0', '未知', 1), -- (12, '1', '1', '男', 2), -- (12, '2', '2', '女', 3); -- -- 8. 权限类型字典 -- INSERT INTO `sys_dict_types` (`id`, `code`, `name`, `is_system`, `pid`, `path`) VALUES -- (13, 'permission_type', '权限类型', TRUE, 1, '/1/13/'); -- INSERT INTO `sys_dict_items` (`type_id`, `item_key`, `item_value`, `label`, `color`, `sort_order`) VALUES -- (13, 'menu', 'menu', '菜单', '#1890ff', 1), -- (13, 'button', 'button', '按钮', '#52c41a', 2), -- (13, 'api', 'api', '接口', '#fa8c16', 3), -- (13, 'data', 'data', '数据', '#722ed1', 4); -- -- 9. 标签类型字典 -- INSERT INTO `sys_dict_types` (`id`, `code`, `name`, `is_system`, `pid`, `path`) VALUES -- (14, 'tag_type', '标签类型', TRUE, 1, '/1/14/'); -- INSERT INTO `sys_dict_items` (`type_id`, `item_key`, `item_value`, `label`, `sort_order`) VALUES -- (14, 'user', 'user', '用户标签', 1), -- (14, 'role', 'role', '角色标签', 2), -- (14, 'content', 'content', '内容标签', 3); -- -- 10. 地区字典(示例) -- INSERT INTO `sys_dict_types` (`id`, `code`, `name`, `is_system`, `pid`, `path`) VALUES -- (20, 'region', '地区', TRUE, 2, '/2/20/'); -- INSERT INTO `sys_dict_items` (`type_id`, `item_key`, `item_value`, `label`, `sort_order`) VALUES -- (20, 'CN', 'CN', '中国', 1); -- -- 11. 基础权限数据 -- INSERT INTO `sys_permissions` (`id`, `code`, `name`, `type`, `resource`, `action`) VALUES -- (1, 'system:manage', '系统管理', 'menu', 'system', 'manage'), -- (2, 'user:read', '查看用户', 'api', 'user', 'read'), -- (3, 'user:create', '创建用户', 'api', 'user', 'create'), -- (4, 'user:update', '更新用户', 'api', 'user', 'update'), -- (5, 'user:delete', '删除用户', 'api', 'user', 'delete'), -- (6, 'role:read', '查看角色', 'api', 'role', 'read'), -- (7, 'role:create', '创建角色', 'api', 'role', 'create'), -- (8, 'role:update', '更新角色', 'api', 'role', 'update'), -- (9, 'role:delete', '删除角色', 'api', 'role', 'delete'); -- -- 12. 为超级管理员角色分配所有权限 -- INSERT INTO `sys_role_permissions` (`role_id`, `permission_id`) -- SELECT 1, id FROM `sys_permissions`; -- -- 13. 初始组织架构 -- INSERT INTO `sys_organizations` (`id`, `code`, `name`, `type`, `status`) VALUES -- (1, 'ROOT', '星撰集团', 'company', 'active'); -- INSERT INTO `sys_organizations` (`id`, `code`, `name`, `type`, `pid`, `path`, `level`, `status`) VALUES -- (2, 'TECH', '技术部', 'department', 1, '/1/2/', 2, 'active'), -- (3, 'PRODUCT', '产品部', 'department', 1, '/1/3/', 2, 'active'), -- (4, 'OPERATE', '运营部', 'department', 1, '/1/4/', 2, 'active'); -- -- 14. 示例标签数据 -- INSERT INTO `sys_tags` (`name`, `type`, `color`, `description`) VALUES -- ('VIP', 'user', '#ff4d4f', 'VIP用户'), -- ('活跃用户', 'user', '#52c41a', '经常登录的用户'), -- ('内容创作者', 'user', '#1890ff', '发布优质内容的用户'), -- ('新用户', 'user', '#faad14', '注册不满30天的用户'), -- ('核心角色', 'role', '#ff4d4f', '系统核心角色'), -- ('业务角色', 'role', '#1890ff', '业务相关角色'); -- SET FOREIGN_KEY_CHECKS = 1; -- -- ============================================= -- -- 导出完成 -- -- 说明: -- -- 1. 默认密码哈希对应的明文密码是 "123456" -- -- 2. 所有ID使用雪花算法生成,这里为演示使用了简单数字 -- -- 3. 建议在生产环境中修改默认密码 -- -- 4. 可根据实际需求调整初始化数据 -- -- =============================================