-- 用户角色关系增加启用状态,并按当前开启的教代会届次初始化历史数据。 -- 脚本支持重复执行:字段已存在时不再重复修改表结构。 SET @sys_user_role_enable_column_count = ( SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sys_user_role' AND COLUMN_NAME = 'enable' ); SET @sys_user_role_enable_ddl = IF( @sys_user_role_enable_column_count = 0, 'ALTER TABLE sys_user_role ADD COLUMN enable TINYINT(1) NOT NULL DEFAULT 1 COMMENT ''是否启用:1启用,0禁用'' AFTER userId', 'SELECT 1' ); PREPARE sys_user_role_enable_stmt FROM @sys_user_role_enable_ddl; EXECUTE sys_user_role_enable_stmt; DEALLOCATE PREPARE sys_user_role_enable_stmt; -- 普通角色不受教代会届次切换影响,历史数据统一保持启用。 UPDATE sys_user_role SET enable = 1 WHERE tcSessionId IS NULL OR tcSessionId = ''; -- 历史教代会届次角色先全部禁用,再只启用当前开启的最新届次。 UPDATE sys_user_role SET enable = 0 WHERE tcSessionId IS NOT NULL AND tcSessionId <> ''; SET @current_teacher_congress_session_id = ( SELECT id FROM teacher_congress_session WHERE enable = 1 ORDER BY startDate DESC, createdAt DESC, id DESC LIMIT 1 ); UPDATE sys_user_role SET enable = 1 WHERE tcSessionId = @current_teacher_congress_session_id;