guoyu/log/题库功能实现总结.md
2025-12-03 18:58:36 +08:00

3.5 KiB
Raw Blame History

题库功能实现总结

已完成功能

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 + XML
  • StudyQuestionBankItemMapper.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. 随机抽题

  • 创建考试时选择"从题库抽取"
  • 选择题库
  • 配置题型和数量
  • 随机抽取题目并保存到考试
  • 题目预览和确认

使用流程

  1. 创建题库

    • 进入"学习系统" → "题库管理"
    • 点击"新增",填写题库信息
    • 保存后进入题库详情页
  2. 添加题目

    • 在题库详情页点击"添加题目"
    • 填写题目信息(题型、题干、选项、答案、分值)
    • 保存题目
  3. 创建考试并抽题

    • 进入"考试管理" → "新增"
    • 填写考试基本信息
    • 选择"从题库抽取"
    • 选择题库
    • 配置题型和数量
    • 点击"从题库抽取"
    • 预览题目后保存

待实现功能

Excel导入功能

  • 需要实现Excel文件解析
  • 支持批量导入题目
  • 数据验证和错误提示

建议实现方式

  • 前端:使用 xlsx 库解析Excel
  • 后端:使用 EasyExcelApache POI 解析
  • 提供模板下载功能

数据库执行顺序

  1. 执行 log/Sql/question_bank.sql - 创建表和修改表结构
  2. 执行 log/Sql/question_bank_menu.sql - 添加菜单配置

注意事项

  1. 权限配置:确保教师角色有 study:questionBank:* 权限
  2. 数据一致性:删除题库时会同时删除题库下的所有题目
  3. 随机抽题:如果题库中题目不足,会提示错误
  4. 题目来源从题库抽取的题目会记录来源信息bank_id, bank_item_id

测试建议

  1. 创建题库并添加题目
  2. 创建考试并从题库抽题
  3. 验证题目是否正确保存
  4. 验证题目来源信息是否正确
  5. 测试题目不足时的错误提示

实现完成时间: 2025-11-12 核心功能: 已完成 Excel导入: 待实现(可选)