-- 渠道扁平化:将子渠道用户归并到顶级渠道,删除子渠道,更新表注释 -- 执行前请备份数据库 -- 1. 表及字段注释改为「渠道」 ALTER TABLE `sa_system_dept` COMMENT = '渠道表'; ALTER TABLE `sa_system_dept` MODIFY COLUMN `parent_id` bigint(20) UNSIGNED NULL DEFAULT 0 COMMENT '父级ID(扁平渠道固定为0)', MODIFY COLUMN `name` varchar(64) NOT NULL COMMENT '渠道名称', MODIFY COLUMN `code` varchar(64) NULL DEFAULT NULL COMMENT '渠道编码', MODIFY COLUMN `leader_id` bigint(20) UNSIGNED NULL DEFAULT NULL COMMENT '渠道负责人ID'; -- 2. 菜单名称(按实际 id 调整,id=5 为渠道管理菜单) UPDATE `sa_system_menu` SET `name` = '渠道管理' WHERE `id` = 5 OR `name` LIKE '%渠道(部门)%' OR `name` = '部门管理'; -- 3. 将子渠道下的用户 dept_id 提升到顶级渠道(需配合 run_dept_flatten_channels.php 处理多级) -- 以下为单级子渠道快速迁移(parent_id != 0 的直接挂到父级) UPDATE `sa_system_user` u INNER JOIN `sa_system_dept` d ON u.dept_id = d.id AND d.parent_id > 0 INNER JOIN `sa_system_dept` p ON d.parent_id = p.id SET u.dept_id = p.id; -- 4. 删除所有子渠道(parent_id > 0) DELETE FROM `sa_system_dept` WHERE `parent_id` > 0; -- 5. 剩余渠道统一为顶级 UPDATE `sa_system_dept` SET `parent_id` = 0, `level` = '0';