guoyu/显示所有题库的修改说明.md
2025-12-06 20:11:36 +08:00

4.7 KiB
Raw Blame History

题库显示修改:显示所有题库

🎯 修改内容

将考试管理中的题库选择从**"只显示我创建的题库"改为"显示所有题库"**。

📝 修改的文件

后端修改

文件位置

Study-Vue-redis/ry-study-admin/src/main/java/com/ddnai/web/controller/study/StudyQuestionBankController.java

修改内容

// 修改前:只返回当前用户创建的题库
@GetMapping("/my-banks")
public AjaxResult getMyBanks() {
    Long teacherId = getUserId();
    List<StudyQuestionBank> list = questionBankService.selectQuestionBankListByTeacherId(teacherId);
    return success(list);
}

// 修改后:返回所有题库
@GetMapping("/my-banks")
public AjaxResult getMyBanks() {
    StudyQuestionBank query = new StudyQuestionBank();
    List<StudyQuestionBank> list = questionBankService.selectQuestionBankList(query);
    return success(list);
}

前端

无需修改,前端仍使用同一个接口 /study/questionBank/my-banks

🚀 部署步骤

第1步编译后端

在项目根目录(Study-Vue-redis)下打开命令行:

Windows

cd Study-Vue-redis
mvn clean package -DskipTests

或者使用IDEA

  1. 打开 Maven 面板
  2. 展开 Lifecycle
  3. 依次点击:cleanpackage
  4. 勾选 Skip Tests

第2步停止后端服务

找到正在运行的后端服务:

方法A如果在IDEA中运行

点击 IDEA 右上角的红色停止按钮

方法B如果在命令行运行

Ctrl+C 停止服务

方法C任务管理器

  1. 打开任务管理器 (Ctrl+Shift+Esc)
  2. 找到 java.exe 进程
  3. 结束进程

第3步启动后端服务

方法A使用IDEA

  1. 找到 RuoYiApplication.java
  2. 右键 → Run 'RuoYiApplication'

方法B使用命令行

cd Study-Vue-redis/ry-study-admin
java -jar target/ry-study-admin.jar

第4步验证修改

  1. 等待服务启动约30秒
  2. 打开浏览器,访问:http://localhost:30091
  3. 登录后台管理系统
  4. 进入【考试管理】→【创建考试】
  5. 选择出题方式:从题库抽取
  6. 查看题库下拉框:应该能看到所有题库

📊 数据库检查(可选)

为了确保数据完整性,建议运行:

-- 检查题库数据
SELECT 
    id,
    bank_name,
    subject_name,
    question_count,
    create_by
FROM study_question_bank
ORDER BY create_time DESC;

如果有题库的 create_user_id 为空,可以执行:

-- 自动关联用户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;

详细的数据库检查和修复脚本在:清理题库create_user_id限制.sql

验证清单

部署完成后,请验证:

  • 后端服务成功启动
  • 登录后台管理系统
  • 进入考试管理 → 创建考试
  • 题库下拉框显示所有题库(不只是我创建的)
  • 可以选择任何题库
  • 可以成功抽取题目

🔄 回退方案

如果需要恢复原来的行为(只显示我的题库),修改代码:

@GetMapping("/my-banks")
public AjaxResult getMyBanks() {
    Long teacherId = getUserId();
    List<StudyQuestionBank> list = questionBankService.selectQuestionBankListByTeacherId(teacherId);
    return success(list);
}

然后重新编译和部署。

💡 优势

修改前

  • 只能看到自己创建的题库
  • 无法使用其他教师的题库
  • 需要重复创建相同的题目

修改后

  • 可以看到所有题库
  • 可以使用任何教师创建的题库
  • 共享题库资源,提高效率

📌 注意事项

  1. 权限控制:所有用户都能看到所有题库,但删除和修改仍需相应权限
  2. 数据安全:题库内容对所有教师可见
  3. 后续优化:可以考虑添加"公开/私有"题库的设置

🆘 常见问题

Q1: 编译失败

A: 检查是否有Java编译错误确保Maven依赖完整

Q2: 服务启动失败

A: 检查端口 30091 是否被占用,查看后端日志

Q3: 仍然看不到题库

A:

  1. 确认后端服务已重启
  2. 清除浏览器缓存(Ctrl+Shift+Delete
  3. 检查浏览器控制台是否有错误
  4. 检查数据库中是否有题库数据

Q4: 只看到部分题库

A: 检查数据库 study_question_bank 表,确认题库数据完整


📝 快速操作指南

# 1. 编译
cd Study-Vue-redis
mvn clean package -DskipTests

# 2. 停止旧服务Ctrl+C

# 3. 启动新服务
cd ry-study-admin
java -jar target/ry-study-admin.jar

# 4. 打开浏览器验证
# http://localhost:30091

完成!🎉