Files
zhgh_zjvtit/target/classes/db/sys_user_role_add_enable.sql
T
2026-08-26 14:25:17 +08:00

42 lines
1.4 KiB
SQL

-- 用户角色关系增加启用状态,并按当前开启的教代会届次初始化历史数据。
-- 脚本支持重复执行:字段已存在时不再重复修改表结构。
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;