-- ========================================
-- 清理题库 create_user_id 限制
-- 目的：让所有用户都能看到所有题库
-- ========================================

-- 说明：
-- 现在后端已修改为返回所有题库，不再按用户过滤
-- 但为了保证数据完整性，仍建议为题库设置 create_user_id

-- ========================================
-- 第1步：检查题库数据状态
-- ========================================

-- 查看所有题库
SELECT 
    id AS 题库ID,
    bank_name AS 题库名称,
    subject_name AS 科目,
    question_count AS 题目数量,
    create_user_id AS 创建用户ID,
    create_by AS 创建者,
    create_time AS 创建时间
FROM study_question_bank
ORDER BY create_time DESC;

-- 检查哪些题库的 create_user_id 为空
SELECT 
    id,
    bank_name,
    create_by,
    create_time
FROM study_question_bank
WHERE create_user_id IS NULL
ORDER BY create_time DESC;


-- ========================================
-- 第2步：修复空的 create_user_id（可选但推荐）
-- ========================================

-- 虽然现在接口不依赖 create_user_id 过滤
-- 但为了数据完整性，建议仍然填充这个字段

-- 方法1：根据 create_by 自动关联用户ID
UPDATE study_question_bank b
INNER JOIN sys_user u ON b.create_by = u.user_name
SET b.create_user_id = u.user_id
WHERE b.create_user_id IS NULL;

-- 方法2：如果没有 create_by，设置为默认管理员
-- UPDATE study_question_bank 
-- SET create_user_id = 1  -- admin用户ID
-- WHERE create_user_id IS NULL;


-- ========================================
-- 第3步：同步题目数量
-- ========================================

-- 确保 question_count 准确
UPDATE study_question_bank b
SET question_count = (
    SELECT COUNT(*) 
    FROM study_question_bank_item i 
    WHERE i.bank_id = b.id
);


-- ========================================
-- 第4步：验证结果
-- ========================================

-- 查看所有题库（应该都有 create_user_id）
SELECT 
    id,
    bank_name,
    subject_name,
    question_count,
    create_user_id,
    create_by,
    CASE 
        WHEN create_user_id IS NULL THEN '⚠️ 缺少用户ID'
        WHEN question_count = 0 THEN '⚠️ 没有题目'
        ELSE '✓ 正常'
    END AS 状态
FROM study_question_bank
ORDER BY create_time DESC;

-- 统计题库状态
SELECT 
    COUNT(*) AS 总题库数,
    SUM(CASE WHEN create_user_id IS NOT NULL THEN 1 ELSE 0 END) AS 已关联用户,
    SUM(CASE WHEN create_user_id IS NULL THEN 1 ELSE 0 END) AS 未关联用户,
    SUM(CASE WHEN question_count > 0 THEN 1 ELSE 0 END) AS 有题目,
    SUM(CASE WHEN question_count = 0 THEN 1 ELSE 0 END) AS 无题目
FROM study_question_bank;


-- ========================================
-- 完成！
-- ========================================
-- 
-- ✓ 后端已修改：/study/questionBank/my-banks 现在返回所有题库
-- ✓ 前端不需要修改：仍使用同一个接口
-- ✓ 现在所有用户都能看到所有题库
-- 
-- 注意：
-- 1. 需要重新编译后端（mvn clean package）
-- 2. 重启后端服务
-- 3. 刷新前端页面
-- 4. 进入考试管理 → 创建考试，应该能看到所有题库
