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

200 lines
4.7 KiB
Markdown
Raw Normal View History

2025-12-06 20:11:36 +08:00
# 题库显示修改:显示所有题库
## 🎯 修改内容
将考试管理中的题库选择从**"只显示我创建的题库"**改为**"显示所有题库"**。
## 📝 修改的文件
### 后端修改
**文件位置**
```
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
```
完成!🎉