-- 运营端权限改造:super_admin + 多区域 + 菜单 code 授权 -- 1) 角色迁移:admin -> super_admin UPDATE sys_user SET role = 'super_admin', update_at = NOW() WHERE is_del = 0 AND role = 'admin'; -- 2) 用户-区域权限表 CREATE TABLE IF NOT EXISTS sys_user_region_scope ( id VARCHAR(32) NOT NULL COMMENT '主键ID', user_id VARCHAR(32) NOT NULL COMMENT '用户ID', region_id VARCHAR(32) NOT NULL COMMENT '区域ID', is_del TINYINT NOT NULL DEFAULT 0 COMMENT '是否删除', create_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', create_by VARCHAR(32) DEFAULT NULL COMMENT '创建人ID', create_name VARCHAR(100) DEFAULT NULL COMMENT '创建人姓名', update_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', update_by VARCHAR(32) DEFAULT NULL COMMENT '修改人ID', PRIMARY KEY (id), UNIQUE KEY uk_user_region_scope (user_id, region_id, is_del), KEY idx_user_region_scope_user (user_id, is_del), KEY idx_user_region_scope_region (region_id, is_del) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户区域权限'; -- 3) 用户-区域权限历史表(无索引、无 is_del) CREATE TABLE IF NOT EXISTS sys_user_region_scope_his ( id VARCHAR(32) NOT NULL COMMENT '主键ID', user_id VARCHAR(32) NOT NULL COMMENT '用户ID', region_id VARCHAR(32) NOT NULL COMMENT '区域ID', create_at DATETIME DEFAULT NULL COMMENT '创建时间', create_by VARCHAR(32) DEFAULT NULL COMMENT '创建人ID', create_name VARCHAR(100) DEFAULT NULL COMMENT '创建人姓名', update_at DATETIME DEFAULT NULL COMMENT '修改时间', update_by VARCHAR(32) DEFAULT NULL COMMENT '修改人ID', his_create_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '历史记录创建时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户区域权限历史'; -- 4) 用户-菜单 code 权限表 CREATE TABLE IF NOT EXISTS sys_user_menu_scope ( id VARCHAR(32) NOT NULL COMMENT '主键ID', user_id VARCHAR(32) NOT NULL COMMENT '用户ID', menu_code VARCHAR(100) NOT NULL COMMENT '菜单编码', is_del TINYINT NOT NULL DEFAULT 0 COMMENT '是否删除', create_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', create_by VARCHAR(32) DEFAULT NULL COMMENT '创建人ID', create_name VARCHAR(100) DEFAULT NULL COMMENT '创建人姓名', update_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', update_by VARCHAR(32) DEFAULT NULL COMMENT '修改人ID', PRIMARY KEY (id), UNIQUE KEY uk_user_menu_scope (user_id, menu_code, is_del), KEY idx_user_menu_scope_user (user_id, is_del), KEY idx_user_menu_scope_code (menu_code, is_del) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户菜单权限'; -- 5) 用户-菜单 code 权限历史表(无索引、无 is_del) CREATE TABLE IF NOT EXISTS sys_user_menu_scope_his ( id VARCHAR(32) NOT NULL COMMENT '主键ID', user_id VARCHAR(32) NOT NULL COMMENT '用户ID', menu_code VARCHAR(100) NOT NULL COMMENT '菜单编码', create_at DATETIME DEFAULT NULL COMMENT '创建时间', create_by VARCHAR(32) DEFAULT NULL COMMENT '创建人ID', create_name VARCHAR(100) DEFAULT NULL COMMENT '创建人姓名', update_at DATETIME DEFAULT NULL COMMENT '修改时间', update_by VARCHAR(32) DEFAULT NULL COMMENT '修改人ID', his_create_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '历史记录创建时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户菜单权限历史';