42 lines
1.4 KiB
SQL
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;
|