112 lines
3.2 KiB
SQL
112 lines
3.2 KiB
SQL
-- ========================================
|
||
-- 清理题库 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. 进入考试管理 → 创建考试,应该能看到所有题库
|