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