guoyu/Test/md/显示所有题库的修改说明.md

200 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 题库显示修改:显示所有题库
## 🎯 修改内容
将考试管理中的题库选择从**"只显示我创建的题库"**改为**"显示所有题库"**。
## 📝 修改的文件
### 后端修改
**文件位置**
```
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<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
```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<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` 表,确认题库数据完整
---
## 📝 快速操作指南
```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
```
完成!🎉