-- 创建数据库
CREATE DATABASE IF NOT EXISTS vber_admin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

USE vber_admin;

-- 系统用户表
CREATE TABLE `sys_user` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    `dept_id` bigint(20) DEFAULT NULL COMMENT '部门ID',
    `username` varchar(30) NOT NULL COMMENT '用户账号',
    `nick_name` varchar(30) NOT NULL COMMENT '用户昵称',
    `user_type` varchar(2) DEFAULT '00' COMMENT '用户类型（00系统用户）',
    `email` varchar(50) DEFAULT '' COMMENT '用户邮箱',
    `phonenumber` varchar(11) DEFAULT '' COMMENT '手机号码',
    `sex` tinyint(1) DEFAULT '0' COMMENT '用户性别（0男 1女 2未知）',
    `avatar` varchar(100) DEFAULT '' COMMENT '头像地址',
    `password` varchar(100) DEFAULT '' COMMENT '密码',
    `status` tinyint(1) DEFAULT '0' COMMENT '帐号状态（0正常 1停用）',
    `is_lock` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否锁定，0:未锁定,1:锁定',
    `lock_at` datetime DEFAULT NULL COMMENT '锁定时间',
    `login_fail_count` int(11) NOT NULL DEFAULT '0' COMMENT '登录失败次数',
    `remark` varchar(500) DEFAULT NULL COMMENT '备注',
    `created_by` varchar(64) DEFAULT '' COMMENT '创建者',
    `updated_by` varchar(64) DEFAULT '' COMMENT '更新者',
    `created_at` datetime DEFAULT NULL COMMENT '创建时间',
    `updated_at` datetime DEFAULT NULL COMMENT '更新时间',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户信息表';

-- 部门表
CREATE TABLE `sys_dept` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    `parent_id` bigint(20) DEFAULT '0' COMMENT '父部门id',
    `ancestors` varchar(50) DEFAULT '' COMMENT '祖级列表',
    `dept_name` varchar(30) DEFAULT '' COMMENT '部门名称',
    `order_num` int(4) DEFAULT '0' COMMENT '显示顺序',
    `leader` varchar(20) DEFAULT NULL COMMENT '负责人',
    `phone` varchar(11) DEFAULT NULL COMMENT '联系电话',
    `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
    `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '部门状态（0正常 1停用）',
    `created_by` varchar(64) DEFAULT '' COMMENT '创建者',
    `updated_by` varchar(64) DEFAULT '' COMMENT '更新者',
    `created_at` datetime DEFAULT NULL COMMENT '创建时间',
    `updated_at` datetime DEFAULT NULL COMMENT '更新时间',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门表';

-- 角色表
CREATE TABLE `sys_role` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    `role_name` varchar(30) NOT NULL COMMENT '角色名称',
    `role_key` varchar(100) NOT NULL COMMENT '角色权限字符串',
    `order_num` int(4) NOT NULL COMMENT '显示顺序',
    `data_scope` tinyint(1) NOT NULL DEFAULT '5' COMMENT '数据范围（1：全部数据权限 2：自定数据权限 3：本部门数据权限 4：本部门及以下数据权限 5:自己的数据）',
    `menu_check_strictly` tinyint(1) DEFAULT '1' COMMENT '菜单树选择项是否关联显示',
    `dept_check_strictly` tinyint(1) DEFAULT '1' COMMENT '部门树选择项是否关联显示',
    `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '角色状态（0正常 1停用）',
    `remark` varchar(500) DEFAULT NULL COMMENT '备注',
    `created_by` varchar(64) DEFAULT '' COMMENT '创建者',
    `updated_by` varchar(64) DEFAULT '' COMMENT '更新者',
    `created_at` datetime DEFAULT NULL COMMENT '创建时间',
    `updated_at` datetime DEFAULT NULL COMMENT '更新时间',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色信息表';

-- 菜单表
CREATE TABLE `sys_menu` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    `menu_name` varchar(50) NOT NULL DEFAULT '' COMMENT '菜单名称',
    `parent_id` bigint(20) DEFAULT '0' COMMENT '父菜单ID',
    `order_num` int(4) DEFAULT '0' COMMENT '显示顺序',
    `path` varchar(200) DEFAULT '' COMMENT '路由地址',
    `component` varchar(255) DEFAULT NULL COMMENT '组件路径',
    `query` varchar(255) DEFAULT NULL COMMENT '路由参数',
    `route_name` varchar(50) DEFAULT '' COMMENT '路由名称',
    `is_frame` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否为外链（0是 1否）',
    `is_cache` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否缓存（0缓存 1不缓存）',
    `menu_type` char(1) DEFAULT '' COMMENT '菜单类型（C目录 M菜单 F按钮）',
    `hide` tinyint(1) NOT NULL DEFAULT '0' COMMENT '菜单状态（0显示 1隐藏）',
    `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '菜单状态（0正常 1停用）',
    `perms` varchar(100) DEFAULT NULL COMMENT '权限标识',
    `icon` varchar(100) DEFAULT '#' COMMENT '菜单图标',
    `btn_class` varchar(200) DEFAULT NULL COMMENT '按钮样式',
    `btn_script` varchar(200) DEFAULT NULL COMMENT '按钮脚本',
    `remark` varchar(500) DEFAULT '' COMMENT '备注',
    `created_by` varchar(64) DEFAULT '' COMMENT '创建者',
    `updated_by` varchar(64) DEFAULT '' COMMENT '更新者',
    `created_at` datetime DEFAULT NULL COMMENT '创建时间',
    `updated_at` datetime DEFAULT NULL COMMENT '更新时间',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='菜单权限表';

-- 用户和角色关联表
CREATE TABLE `sys_user_role` (
    `user_id` bigint(20) NOT NULL COMMENT '用户ID',
    `role_id` bigint(20) NOT NULL COMMENT '角色ID',
    PRIMARY KEY (`user_id`,`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户和角色关联表';

-- 角色和部门关联表
CREATE TABLE `sys_role_dept` (
    `role_id` bigint(20) NOT NULL COMMENT '角色ID',
    `dept_id` bigint(20) NOT NULL COMMENT '部门ID',
    PRIMARY KEY (`role_id`,`dept_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色和部门关联表';

-- 岗位表
CREATE TABLE `sys_post` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    `post_code` varchar(64) NOT NULL COMMENT '岗位编码',
    `post_name` varchar(50) NOT NULL COMMENT '岗位名称',
    `post_sort` int(4) NOT NULL COMMENT '显示顺序',
    `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态（0正常 1停用）',
    `remark` varchar(500) DEFAULT NULL COMMENT '备注',
    `created_by` varchar(64) DEFAULT '' COMMENT '创建者',
    `updated_by` varchar(64) DEFAULT '' COMMENT '更新者',
    `created_at` datetime DEFAULT NULL COMMENT '创建时间',
    `updated_at` datetime DEFAULT NULL COMMENT '更新时间',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='岗位信息表';

-- 用户与岗位关联表
CREATE TABLE `sys_user_post` (
    `user_id` bigint(20) NOT NULL COMMENT '用户ID',
    `post_id` bigint(20) NOT NULL COMMENT '岗位ID',
    PRIMARY KEY (`user_id`,`post_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户与岗位关联表';

-- 字典类型表
CREATE TABLE `sys_dict_type` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    `dict_name` varchar(100) DEFAULT '' COMMENT '字典名称',
    `dict_type` varchar(100) DEFAULT '' COMMENT '字典类型',
    `status` char(1) DEFAULT '0' COMMENT '状态（0正常 1停用）',
    `remark` varchar(500) DEFAULT NULL COMMENT '备注',
    `created_by` varchar(64) DEFAULT '' COMMENT '创建者',
    `updated_by` varchar(64) DEFAULT '' COMMENT '更新者',
    `created_at` datetime DEFAULT NULL COMMENT '创建时间',
    `updated_at` datetime DEFAULT NULL COMMENT '更新时间',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uq_sys_dict_type_dict_type` (`dict_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典类型表';

-- 字典数据表
CREATE TABLE `sys_dict_data` (
    `dict_code` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典编码',
    `dict_label` varchar(100) DEFAULT '' COMMENT '字典标签',
    `dict_value` varchar(100) DEFAULT '' COMMENT '字典键值',
    `dict_type` varchar(100) DEFAULT '' COMMENT '字典类型',
    `css_class` varchar(100) DEFAULT NULL COMMENT '样式属性（其他样式扩展）',
    `list_class` varchar(100) DEFAULT NULL COMMENT '表格回显样式',
    `is_default` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否默认（1是 0否）',
    `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态（0正常 1停用）',
    `order_num` int(4) DEFAULT '0' COMMENT '字典排序',
    `remark` varchar(500) DEFAULT NULL COMMENT '备注',
    `created_by` varchar(64) DEFAULT '' COMMENT '创建者',
    `updated_by` varchar(64) DEFAULT '' COMMENT '更新者',
    `created_at` datetime DEFAULT NULL COMMENT '创建时间',
    `updated_at` datetime DEFAULT NULL COMMENT '更新时间',
    PRIMARY KEY (`dict_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典数据表';

-- 参数配置表
CREATE TABLE `sys_config` (
    `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '参数主键',
    `config_name` varchar(100) DEFAULT '' COMMENT '参数名称',
    `config_key` varchar(100) DEFAULT '' COMMENT '参数键名',
    `config_value` varchar(500) DEFAULT '' COMMENT '参数键值',
    `config_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '系统内置（1是 0否）',
    `remark` varchar(500) DEFAULT NULL COMMENT '备注',
    `created_by` varchar(64) DEFAULT '' COMMENT '创建者',
    `updated_by` varchar(64) DEFAULT '' COMMENT '更新者',
    `created_at` datetime DEFAULT NULL COMMENT '创建时间',
    `updated_at` datetime DEFAULT NULL COMMENT '更新时间',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='参数配置表';

-- 系统访问记录
CREATE TABLE `sys_login_log` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    `username` varchar(50) DEFAULT '' COMMENT '用户账号',
    `ipaddr` varchar(128) DEFAULT '' COMMENT '登录IP地址',
    `login_location` varchar(255) DEFAULT '' COMMENT '登录地点',
    `browser` varchar(50) DEFAULT '' COMMENT '浏览器类型',
    `os` varchar(50) DEFAULT '' COMMENT '操作系统',
    `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '登录状态（0成功 1失败）',
    `msg` varchar(255) DEFAULT '' COMMENT '提示消息',
    `login_time` datetime DEFAULT NULL COMMENT '访问时间',
    PRIMARY KEY (`id`),
    KEY `idx_sys_login_log_s` (`status`),
    KEY `idx_sys_login_log_lt` (`login_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统访问记录';

-- 操作日志记录
CREATE TABLE `sys_oper_log` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    `title` varchar(50) DEFAULT '' COMMENT '模块标题',
    `business_type` int(2) DEFAULT '0' COMMENT '业务类型（0其它 1新增 2修改 3删除）',
    `method` varchar(100) DEFAULT '' COMMENT '方法名称',
    `request_method` varchar(10) DEFAULT '' COMMENT '请求方式',
    `operator_type` int(1) DEFAULT '0' COMMENT '操作类别（0其它 1后台用户 2手机端用户）',
    `oper_name` varchar(50) DEFAULT '' COMMENT '操作人员',
    `dept_id` varchar(50) DEFAULT '' COMMENT '部门ID',
    `dept_name` varchar(50) DEFAULT '' COMMENT '部门名称',
    `oper_url` varchar(255) DEFAULT '' COMMENT '请求URL',
    `oper_ip` varchar(128) DEFAULT '' COMMENT '主机地址',
    `oper_location` varchar(255) DEFAULT '' COMMENT '操作地点',
    `oper_param` varchar(2000) DEFAULT '' COMMENT '请求参数',
    `json_result` varchar(2000) DEFAULT '' COMMENT '返回参数',
    `status` int(1) DEFAULT '0' COMMENT '操作状态（0正常 1异常）',
    `error_msg` varchar(2000) DEFAULT '' COMMENT '错误消息',
    `oper_time` datetime DEFAULT NULL COMMENT '操作时间',
    `cost_time` bigint(20) DEFAULT '0' COMMENT '消耗时间',
    PRIMARY KEY (`id`),
    KEY `idx_sys_oper_log_bt` (`business_type`),
    KEY `idx_sys_oper_log_s` (`status`),
    KEY `idx_sys_oper_log_ot` (`oper_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='操作日志记录';

-- 定时任务调度表
CREATE TABLE `sys_job` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    `job_name` varchar(64) DEFAULT '' COMMENT '任务名称',
    `job_group` varchar(64) DEFAULT 'default' COMMENT '任务组名',
    `job_executor` varchar(64) DEFAULT 'default' COMMENT '任务执行器',
    `invoke_target` varchar(500) NOT NULL COMMENT '调用目标字符串',
    `job_args` varchar(255) DEFAULT '' COMMENT '位置参数',
    `job_kwargs` varchar(255) DEFAULT '' COMMENT '关键字参数',
    `cron_expression` varchar(255) DEFAULT '' COMMENT 'cron执行表达式',
    `misfire_policy` varchar(20) DEFAULT '3' COMMENT '计划执行错误策略（1立即执行 2执行一次 3放弃执行）',
    `concurrent` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否并发执行（0允许 1禁止）',
    `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态（0正常 1暂停）',
    `remark` varchar(500) DEFAULT '' COMMENT '备注信息',
    `created_by` varchar(64) DEFAULT '' COMMENT '创建者',
    `updated_by` varchar(64) DEFAULT '' COMMENT '更新者',
    `created_at` datetime DEFAULT NULL COMMENT '创建时间',
    `updated_at` datetime DEFAULT NULL COMMENT '更新时间',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='定时任务调度表';

-- 定时任务调度日志表
CREATE TABLE `sys_job_log` (
    `job_log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务日志ID',
    `job_name` varchar(64) NOT NULL COMMENT '任务名称',
    `job_group` varchar(64) NOT NULL COMMENT '任务组名',
    `job_executor` varchar(64) NOT NULL COMMENT '任务执行器',
    `invoke_target` varchar(500) NOT NULL COMMENT '调用目标字符串',
    `job_args` varchar(255) DEFAULT '' COMMENT '位置参数',
    `job_kwargs` varchar(255) DEFAULT '' COMMENT '关键字参数',
    `job_trigger` varchar(255) DEFAULT '' COMMENT '任务触发器',
    `job_message` varchar(500) DEFAULT '' COMMENT '日志信息',
    `status` char(1) DEFAULT '0' COMMENT '执行状态（0正常 1失败）',
    `exception_info` varchar(2000) DEFAULT '' COMMENT '异常信息',
    `create_time` datetime DEFAULT NULL COMMENT '创建时间',
    PRIMARY KEY (`job_log_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='定时任务调度日志表';

-- 权限表
CREATE TABLE `sys_permission` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    `name` varchar(100) NOT NULL COMMENT '权限名称',
    `master` char(1) NOT NULL DEFAULT 'R' COMMENT '权限主体类型（U用户 R角色）',
    `master_value` varchar(100) NOT NULL COMMENT '主体值',
    `is_granted` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否授权',
    `created_by` varchar(64) DEFAULT '' COMMENT '创建者',
    `created_at` datetime DEFAULT NULL COMMENT '创建时间',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='权限表';

-- 插入初始数据
-- 初始化部门
INSERT INTO `sys_dept` (`id`, `parent_id`, `ancestors`, `dept_name`, `order_num`, `leader`, `phone`, `email`, `status`, `created_by`, `created_at`) VALUES 
(1, 0, '0', '总公司', 1, 'admin', '15888888888', 'admin@example.com', 0, 'admin', NOW());

-- 初始化岗位
INSERT INTO `sys_post` (`id`, `post_code`, `post_name`, `post_sort`, `status`, `created_by`, `created_at`) VALUES
(1, 'admin', '系统管理员', 1, 0, 'admin', NOW());

-- 初始化角色
INSERT INTO `sys_role` (
    `id`, `role_name`, `role_key`, `order_num`, `data_scope`,
    `menu_check_strictly`, `dept_check_strictly`, `status`,`remark`, `created_by`, `created_at`
) VALUES
    (    1, '超级管理员', 'admin', 1, 1, 1, 1, 0,'超级管理员，拥有所有权限',  'admin', NOW()),
    (2, '普通用户', 'user', 1, 5, 1,1,0, '普通用户，仅拥有基本权限','system', NOW());

-- 插入默认管理员用户 (123iwb)
INSERT INTO `sys_user` (
    `id`, `dept_id`, `username`, `nick_name`, `user_type`, `email`, 
    `phonenumber`, `sex`, `avatar`, `password`, `status`, `created_by`, `created_at`
) VALUES (
    1, 1, 'admin', '系统管理员', '00', 'admin@example.com',
    '15888888888', 0, '', '$2b$12$8KQxmYf7HBSgUy.xi9HBk.k2ROZwZn1JCg6y2YGYUYqB8HAzCfXf6', 0, 'admin', NOW()
);



-- 初始化用户和角色关联
INSERT INTO `sys_user_role` (`user_id`, `role_id`) VALUES (1, 1);

-- 初始化用户和岗位关联
INSERT INTO `sys_user_post` (`user_id`, `post_id`) VALUES (1, 1);

-- 初始化菜单
INSERT INTO `sys_menu` (
    `id`, `menu_name`, `parent_id`, `order_num`, `path`,
    `component`, `is_frame`, `is_cache`, `menu_type`, `hide`,
    `status`, `perms`, `icon`, `created_by`, `created_at`
) VALUES 
(1, '系统管理', 0, 1, 'system', NULL, 1, 0, 'C', 0, 0, '', 'system', 'admin', NOW()),

(11, '用户管理', 1, 1, 'user', 'system/user', 1, 0, 'M', 0, 0, 'VAPY.system.user', 'user', 'admin', NOW()),
(12, '角色管理', 1, 2, 'role', 'system/role', 1, 0, 'M', 0, 0, 'VAPY.system.role', 'role', 'admin', NOW()),
(13, '部门管理', 1, 3, 'dept', 'system/dept', 1, 0, 'M', 0, 0, 'VAPY.system.org', 'diagram-3', 'admin', NOW()),
(14, '岗位管理', 1, 4, 'post', 'system/post', 1, 0, 'M', 0, 0, 'VAPY.system.post', 'briefcase', 'admin', NOW()),
(15, '参数配置', 1, 5, 'config', 'system/config', 1, 0, 'M', 0, 0, 'VAPY.system.config', 'gear', 'admin', NOW()),
(16, '字典管理', 1, 6, 'dict', 'system/dict', 1, 0, 'M', 0, 0, 'VAPY.system.dict', 'book', 'admin', NOW()),
(17, '菜单管理', 1, 7, 'menu', 'system/menu', 1, 0, 'M', 0, 0, 'VAPY.system.menu', 'list-task', 'admin', NOW()),
(18, '日志管理', 1, 8, 'log', '', 1, 0, 'C', 0, 0, 'VAPY.system.log', 'journal-text', 'admin', NOW()),

(101, '用户查询', 11, 1, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.user.query', 'eye', 'admin', NOW()),
(102, '用户新增', 11, 2, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.user.create', 'plus-square', 'admin', NOW()),
(103, '用户修改', 11, 3, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.user.update', 'pencil-square', 'admin', NOW()),
(104, '用户删除', 11, 4, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.user.delete', 'dash-square', 'admin', NOW()),
(105, '重置密码', 11, 5, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.user.reset_password', 'file-lock2', 'admin', NOW()),
(106, '解锁用户', 11, 6, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.user.unlock', 'unlock', 'admin', NOW()),

(111, '角色查询', 12, 1, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.role.query', 'eye', 'admin', NOW()),
(112, '角色新增', 12, 2, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.role.create', 'plus-square', 'admin', NOW()),
(113, '角色修改', 12, 3, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.role.update', 'pencil-square', 'admin', NOW()),
(114, '角色删除', 12, 4, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.role.delete', 'dash-square', 'admin', NOW()),

(121, '部门查询', 13, 1, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.dept.query', 'eye', 'admin', NOW()),
(122, '部门新增', 13, 2, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.dept.create', 'plus-square', 'admin', NOW()),
(123, '部门修改', 13, 3, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.dept.update', 'pencil-square', 'admin', NOW()),
(124, '部门删除', 13, 4, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.dept.delete', 'dash-square', 'admin', NOW()),

(131, '岗位查询', 14, 1, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.post.query', 'eye', 'admin', NOW()),
(132, '岗位新增', 14, 2, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.post.create', 'plus-square', 'admin', NOW()),
(133, '岗位修改', 14, 3, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.post.update', 'pencil-square', 'admin', NOW()),
(134, '岗位删除', 14, 4, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.post.delete', 'dash-square', 'admin', NOW()),

(141, '参数查询', 15, 1, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.config.query', 'eye', 'admin', NOW()),
(142, '参数修改', 15, 3, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.config.update', 'pencil-square', 'admin', NOW()),

(146, '字典查询', 16, 1, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.dict.query', 'eye', 'admin', NOW()),
(147, '字典修改', 16, 3, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.dict.update', 'pencil-square', 'admin', NOW()),

(151, '菜单查询', 17, 1, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.menu.query', 'eye', 'admin', NOW()),
(152, '菜单修改', 17, 3, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.menu.update', 'pencil-square', 'admin', NOW()),

(161, '登录日志', 18, 1, 'login', 'system/log/login', 1, 0, 'M', 0, 0, 'VAPY.system.log.login', 'journal-text', 'admin', NOW()),
(162, '日志查询', 161, 1, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.log.login.query', 'eye', 'admin', NOW()),
(166, '操作日志', 18, 2, 'oper', 'system/log/oper', 1, 0, 'M', 0, 0, 'VAPY.system.log.oper', 'journal-text', 'admin', NOW()),
(167, '日志查询', 166, 1, '', NULL, 1, 0, 'F', 0, 0, 'VAPY.system.log.oper.query', 'eye', 'admin', NOW());


-- 初始化配置
INSERT INTO `sys_config` (
    `id`, `config_name`, `config_key`, `config_value`,
    `config_type`, `created_by`, `created_at`
) VALUES 
(1, '用户默认密码', 'sys.user.initPassword', '123456', 1, 'admin', NOW()),
(2, '系统名称', 'sys.name', 'VberAdmin', 1, 'admin', NOW());

-- 初始化字典类型
INSERT INTO `sys_dict_type` (
    `id`, `dict_name`, `dict_type`, `status`, `created_by`, `created_at`
) VALUES 
(1, '用户性别', 'sys_user_sex', '0', 'admin', NOW()),
(2, '系统状态', 'sys_normal_disable', '0', 'admin', NOW());

-- 初始化字典数据
INSERT INTO `sys_dict_data` (
    `dict_code`, `dict_label`, `dict_value`, `dict_type`,
    `status`, `created_by`, `created_at`
) VALUES 
(1, '男', '0', 'sys_user_sex', 0, 'admin', NOW()),
(2, '女', '1', 'sys_user_sex', 0, 'admin', NOW()),
(3, '未知', '2', 'sys_user_sex', 0, 'admin', NOW()),
(4, '正常', '0', 'sys_normal_disable', 0, 'admin', NOW()),
(5, '停用', '1', 'sys_normal_disable', 0, 'admin', NOW());

-- 初始化权限 (赋予超级管理员角色 role_id=1 所有权限)
INSERT INTO `sys_permission` (`name`, `master`, `master_value`, `is_granted`, `created_by`, `created_at`) VALUES
('VAPY.system.user', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.user.query', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.user.create', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.user.update', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.user.delete', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.user.reset_password', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.user.unlock', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.role', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.role.query', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.role.create', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.role.update', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.role.delete', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.dept', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.dept.query', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.dept.create', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.dept.update', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.dept.delete', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.post', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.post.query', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.post.create', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.post.update', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.post.delete', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.config', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.config.query', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.config.update', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.dict', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.dict.query', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.dict.update', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.menu', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.menu.query', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.menu.update', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.log', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.log.login', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.log.login.query', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.log.oper', 'R', '1', 1, 'admin', NOW()),
('VAPY.system.log.oper.query', 'R', '1', 1, 'admin', NOW());
-- 为普通用户角色添加基本权限
INSERT INTO `sys_permission` (`name`, `master`, `master_value`, `is_granted`, `created_by`, `created_at`)
VALUES     ('VAPY.system.user', 'R', '2', 1, 'system', NOW()),
    ('VAPY.system.user.query', 'R', '2', 1, 'system', NOW()),
       ('VAPY.system.role', 'R', '2', 1, 'system', NOW()),
       ('VAPY.system.role.query', 'R', '2', 1, 'system', NOW()),
       ('VAPY.system.menu', 'R', '2', 1, 'system', NOW()),
       ('VAPY.system.menu.query', 'R', '2', 1, 'system', NOW());