-- inquiry_robot:账号/角色/菜单/权限 精简字段(对齐后台「账号管理」「角色管理」) -- 只保留页面用到的列;破坏 Jeecg 官方实体兼容属预期(当前只要这套管理能力)。 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------- 账号 ---------- DROP TABLE IF EXISTS `sys_user_new`; CREATE TABLE `sys_user_new` ( `id` varchar(32) NOT NULL, `username` varchar(100) NOT NULL COMMENT '账号', `realname` varchar(100) DEFAULT NULL COMMENT '姓名', `password` varchar(255) DEFAULT NULL COMMENT '密码哈希', `salt` varchar(45) DEFAULT NULL COMMENT '盐', `wecom_id` varchar(64) DEFAULT NULL COMMENT '企微 userid', `phone` varchar(45) DEFAULT NULL COMMENT '手机号', `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1启用 0禁用', `last_login_time` datetime DEFAULT NULL COMMENT '最后登录', `create_time` datetime DEFAULT NULL, `update_time` datetime DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_username` (`username`), KEY `idx_wecom_id` (`wecom_id`), KEY `idx_phone` (`phone`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='账号'; INSERT INTO `sys_user_new` (`id`,`username`,`realname`,`password`,`salt`,`wecom_id`,`phone`,`status`,`last_login_time`,`create_time`,`update_time`) SELECT `id`,`username`,`realname`,`password`,`salt`, NULLIF(`third_id`,''), `phone`, IFNULL(`status`,1), NULL, `create_time`,`update_time` FROM `sys_user`; DROP TABLE `sys_user`; RENAME TABLE `sys_user_new` TO `sys_user`; -- ---------- 角色 ---------- DROP TABLE IF EXISTS `sys_role_new`; CREATE TABLE `sys_role_new` ( `id` varchar(32) NOT NULL, `role_name` varchar(100) NOT NULL COMMENT '角色名称', `role_code` varchar(100) NOT NULL COMMENT '角色编码', `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1启用 0禁用', `description` varchar(255) DEFAULT NULL COMMENT '说明', `create_time` datetime DEFAULT NULL, `update_time` datetime DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_role_code` (`role_code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色'; INSERT INTO `sys_role_new` (`id`,`role_name`,`role_code`,`status`,`description`,`create_time`,`update_time`) SELECT `id`,`role_name`,`role_code`,1,`description`,`create_time`,`update_time` FROM `sys_role`; DROP TABLE `sys_role`; RENAME TABLE `sys_role_new` TO `sys_role`; -- ---------- 账号-角色 ---------- DROP TABLE IF EXISTS `sys_user_role_new`; CREATE TABLE `sys_user_role_new` ( `id` varchar(32) NOT NULL, `user_id` varchar(32) NOT NULL, `role_id` varchar(32) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_user_role` (`user_id`,`role_id`), KEY `idx_role_id` (`role_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='账号角色关联'; INSERT INTO `sys_user_role_new` (`id`,`user_id`,`role_id`) SELECT `id`,`user_id`,`role_id` FROM `sys_user_role`; DROP TABLE `sys_user_role`; RENAME TABLE `sys_user_role_new` TO `sys_user_role`; -- ---------- 菜单+权限 ---------- DROP TABLE IF EXISTS `sys_permission_new`; CREATE TABLE `sys_permission_new` ( `id` varchar(32) NOT NULL, `parent_id` varchar(32) DEFAULT NULL COMMENT '父菜单', `name` varchar(100) NOT NULL COMMENT '菜单/权限名称', `path` varchar(255) DEFAULT NULL COMMENT '路由或URL', `menu_type` tinyint NOT NULL DEFAULT 0 COMMENT '0目录 1菜单 2按钮', `perms` varchar(100) DEFAULT NULL COMMENT '权限码', `icon` varchar(64) DEFAULT NULL COMMENT '图标', `sort_no` int NOT NULL DEFAULT 0 COMMENT '排序', `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1启用 0禁用', PRIMARY KEY (`id`), KEY `idx_parent` (`parent_id`), KEY `idx_perms` (`perms`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='菜单与权限'; INSERT INTO `sys_permission_new` (`id`,`parent_id`,`name`,`path`,`menu_type`,`perms`,`icon`,`sort_no`,`status`) SELECT `id`,`parent_id`,`name`,`url`,IFNULL(`menu_type`,0),`perms`,`icon`, IFNULL(CAST(`sort_no` AS SIGNED),0), CASE WHEN `status` IN ('1','0') THEN CAST(`status` AS SIGNED) ELSE 1 END FROM `sys_permission`; DROP TABLE `sys_permission`; RENAME TABLE `sys_permission_new` TO `sys_permission`; -- ---------- 角色-权限 ---------- DROP TABLE IF EXISTS `sys_role_permission_new`; CREATE TABLE `sys_role_permission_new` ( `id` varchar(32) NOT NULL, `role_id` varchar(32) NOT NULL, `permission_id` varchar(32) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_role_perm` (`role_id`,`permission_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色权限关联'; INSERT INTO `sys_role_permission_new` (`id`,`role_id`,`permission_id`) SELECT MIN(`id`),`role_id`,`permission_id` FROM `sys_role_permission` GROUP BY `role_id`,`permission_id`; DROP TABLE `sys_role_permission`; RENAME TABLE `sys_role_permission_new` TO `sys_role_permission`; SET FOREIGN_KEY_CHECKS = 1;