200 lines
4.7 KiB
Markdown
200 lines
4.7 KiB
Markdown
# 题库显示修改:显示所有题库
|
||
|
||
## 🎯 修改内容
|
||
|
||
将考试管理中的题库选择从**"只显示我创建的题库"**改为**"显示所有题库"**。
|
||
|
||
## 📝 修改的文件
|
||
|
||
### 后端修改
|
||
**文件位置**:
|
||
```
|
||
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
|
||
```
|
||
|
||
完成!🎉
|