# 题库显示修改:显示所有题库 ## 🎯 修改内容 将考试管理中的题库选择从**"只显示我创建的题库"**改为**"显示所有题库"**。 ## 📝 修改的文件 ### 后端修改 **文件位置**: ``` Study-Vue-redis/ry-study-admin/src/main/java/com/ddnai/web/controller/study/StudyQuestionBankController.java ``` **修改内容**: ```java // 修改前:只返回当前用户创建的题库 @GetMapping("/my-banks") public AjaxResult getMyBanks() { Long teacherId = getUserId(); List list = questionBankService.selectQuestionBankListByTeacherId(teacherId); return success(list); } // 修改后:返回所有题库 @GetMapping("/my-banks") public AjaxResult getMyBanks() { StudyQuestionBank query = new StudyQuestionBank(); List list = questionBankService.selectQuestionBankList(query); return success(list); } ``` ### 前端 **无需修改**,前端仍使用同一个接口 `/study/questionBank/my-banks`。 ## 🚀 部署步骤 ### 第1步:编译后端 在项目根目录(`Study-Vue-redis`)下打开命令行: #### Windows ```cmd cd Study-Vue-redis mvn clean package -DskipTests ``` #### 或者使用IDEA 1. 打开 Maven 面板 2. 展开 `Lifecycle` 3. 依次点击:`clean` → `package` 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:使用命令行 ```cmd 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. **查看题库下拉框**:应该能看到**所有题库** ## 📊 数据库检查(可选) 为了确保数据完整性,建议运行: ```sql -- 检查题库数据 SELECT id, bank_name, subject_name, question_count, create_by FROM study_question_bank ORDER BY create_time DESC; ``` 如果有题库的 `create_user_id` 为空,可以执行: ```sql -- 自动关联用户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` ## ✅ 验证清单 部署完成后,请验证: - [ ] 后端服务成功启动 - [ ] 登录后台管理系统 - [ ] 进入考试管理 → 创建考试 - [ ] 题库下拉框显示所有题库(不只是我创建的) - [ ] 可以选择任何题库 - [ ] 可以成功抽取题目 ## 🔄 回退方案 如果需要恢复原来的行为(只显示我的题库),修改代码: ```java @GetMapping("/my-banks") public AjaxResult getMyBanks() { Long teacherId = getUserId(); List 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` 表,确认题库数据完整 --- ## 📝 快速操作指南 ```bash # 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 ``` 完成!🎉