3.5 KiB
3.5 KiB
题库功能实现总结
已完成功能
1. 数据库设计 ✅
- 文件:
log/Sql/question_bank.sql - 创建了
question_bank表(题库表) - 创建了
question_bank_item表(题库题目表) - 修改了
question表,添加了来源字段(source_type, bank_id, bank_item_id)
2. 后端实现 ✅
实体类
StudyQuestionBank.java- 题库实体StudyQuestionBankItem.java- 题库题目实体- 修改了
StudyQuestion.java- 添加来源字段
Mapper层
StudyQuestionBankMapper.java+ XMLStudyQuestionBankItemMapper.java+ XML- 实现了随机抽题的SQL(使用
ORDER BY RAND())
Service层
IStudyQuestionBankService.java- 服务接口StudyQuestionBankServiceImpl.java- 服务实现- 实现了随机抽题、批量操作等功能
Controller层
StudyQuestionBankController.java- 题库管理接口- 修改了
StudyExamController.java- 添加从题库抽题接口
3. 前端实现 ✅
API文件
ruoyi-ui/src/api/study/questionBank.js- 题库API- 修改了
ruoyi-ui/src/api/study/exam.js- 添加抽题API
页面文件
ruoyi-ui/src/views/study/questionBank/index.vue- 题库列表页面ruoyi-ui/src/views/study/questionBank/detail.vue- 题库详情页面(题目管理)- 修改了
ruoyi-ui/src/views/study/exam/create.vue- 增加从题库抽题功能
4. 菜单配置 ✅
- 文件:
log/Sql/question_bank_menu.sql - 添加了题库管理菜单和权限
核心功能
1. 题库管理
- ✅ 创建、编辑、删除题库
- ✅ 查看题库详情
- ✅ 按科目筛选题库
2. 题目管理
- ✅ 手动添加题目(支持所有题型)
- ✅ 编辑、删除题目
- ✅ 按题型筛选题目
- ⏳ Excel批量导入(待实现)
3. 随机抽题
- ✅ 创建考试时选择"从题库抽取"
- ✅ 选择题库
- ✅ 配置题型和数量
- ✅ 随机抽取题目并保存到考试
- ✅ 题目预览和确认
使用流程
-
创建题库
- 进入"学习系统" → "题库管理"
- 点击"新增",填写题库信息
- 保存后进入题库详情页
-
添加题目
- 在题库详情页点击"添加题目"
- 填写题目信息(题型、题干、选项、答案、分值)
- 保存题目
-
创建考试并抽题
- 进入"考试管理" → "新增"
- 填写考试基本信息
- 选择"从题库抽取"
- 选择题库
- 配置题型和数量
- 点击"从题库抽取"
- 预览题目后保存
待实现功能
Excel导入功能
- 需要实现Excel文件解析
- 支持批量导入题目
- 数据验证和错误提示
建议实现方式:
- 前端:使用
xlsx库解析Excel - 后端:使用
EasyExcel或Apache POI解析 - 提供模板下载功能
数据库执行顺序
- 执行
log/Sql/question_bank.sql- 创建表和修改表结构 - 执行
log/Sql/question_bank_menu.sql- 添加菜单配置
注意事项
- 权限配置:确保教师角色有
study:questionBank:*权限 - 数据一致性:删除题库时会同时删除题库下的所有题目
- 随机抽题:如果题库中题目不足,会提示错误
- 题目来源:从题库抽取的题目会记录来源信息(bank_id, bank_item_id)
测试建议
- 创建题库并添加题目
- 创建考试并从题库抽题
- 验证题目是否正确保存
- 验证题目来源信息是否正确
- 测试题目不足时的错误提示
实现完成时间: 2025-11-12 核心功能: ✅ 已完成 Excel导入: ⏳ 待实现(可选)