Commit Graph

40 Commits

Author SHA1 Message Date
lbw
a50c9a2b16 feat(exam): 添加学生考试历史结果查看功能
- 新增接口获取指定学生的历史考试结果列表
- 数据库层新增根据学生ID查询历史考试记录的查询方法
- 服务层新增获取学生历史考试结果列表的实现
- 前端api新增调用学生考试历史接口的方法
- 学生详情页增加考试历史记录图表展示板块
- 新增考试历史折线图组件,展示正确词数和错误词数的时间变化
- 使用echarts实现折线图并支持点击显示详情
- 更新项目依赖,新增echarts库用于图表展示
2025-12-18 11:30:26 +08:00
lbw
eeeb48d048 feat(student): 添加学生详情页及相关路由和跳转按钮
- 在 class.vue 中增加“详情”按钮,可跳转至对应学生详情页
- 使用 vue-router 的 useRouter 实现页面跳转功能
- 添加 /student/:id 路由,绑定学生详情组件 student.vue
- 新增 student.vue 组件,展示学生详细信息
- 精简 Header.vue, 移除多余导航链接,优化界面展示
2025-12-17 17:34:41 +08:00
lbw
26674ab8a9 feat(student-plan): 添加完成学案功能
- 新增 FinishStudentPlanReqVO 类用于请求参数封装
- 学生端学习计划页面新增“完成”按钮及其交互状态
- 实现 finishLessonPlan API 调用,用于标记学案完成
- 后端新增 finishStudentPlan 接口,处理学案完成逻辑
- StudentLessonPlansDOMapper 增加 finfishStudentPlan 方法及对应 SQL 更新语句
- StudentLessonPlansService 添加 finishStudentLessonPlan 接口实现统计记忆单词数并更新学案状态
- VocabularyBankDOMapper 和 WordMasteryLogDOMapper 增加相关统计查询方法和 SQL
- 前端完善完成按钮状态和操作反馈,防止重复提交
2025-12-17 17:17:49 +08:00
lbw
fd828442b1 feat(plan): 支持学案文件下载功能
- 新增 DownLoadLessonPlanReqVO 请求类用于下载请求封装
- 在前端学案列表增加“下载”按钮,支持单条学案下载操作
- 实现前端下载接口,处理后端返回的 Blob 文件流并触发文件保存
- 后端新增下载接口,根据学案 ID 生成对应的 Word 文档并作为附件响应
- WordExportUtil 中新增按模板生成学案 Word 文档方法,支持工作日和周末模板切换
- LessonPlansService 新增根据 ID 查询学案的方法及对应 Mapper 实现
- 修改学案列表中“学案ID”标签为“计划ID”,提升表述准确性
- 下载过程中添加加载状态和错误信息提示,提升用户体验
2025-12-17 15:56:55 +08:00
lbw
dbe7312633 feat(student-plan): 实现学生学案查询功能
- 新增FindStudentPlansReqVO和FindStudentPlansRspVO定义请求和响应数据结构
- 新增LessonPlanItem用于描述单个学案项
- StudentLessonPlansDO模型新增isFinished属性
- 扩展StudentLessonPlansDOMapper,添加分页及按姓名查询学生学案列表方法及统计总数方法
- 扩展LessonPlansDOMapper,新增按学案ID列表批量查询方法
- 实现StudentLessonPlansService及LessonPlansService接口对应查询方法
- 新增StudentLessonPlansController,提供学生学案分页查询接口
- 在前端LearningPlan.vue添加学案查询界面及分页、搜索功能
- 封装studentLessonPlans接口axios方法,支持分页按姓名查询学生学案数据
- 添加单元测试更新验证数据库查询正确性
2025-12-17 15:29:36 +08:00
lbw
49cd146bc3 feat(plan): 添加生成学案功能及界面支持
- 新增 AddLessonPlanReqVO 数据模型用于生成学案请求参数封装
- 新增 LessonPlanController 提供生成学案的后端接口,支持异步任务执行
- 新增 LessonPlanDialog 组件,实现前端学案生成弹窗及交互逻辑
- 在班级页面添加生成学案按钮,支持单个学生选择后调用弹窗
- 添加 plan.js 接口调用封装,调用后端生成学案接口
- 完成前后端联动,实现生成学案操作的完整流程和提示信息
2025-12-17 11:50:23 +08:00
lbw
07b9b56e8a feat(unit): 新增单元管理功能及相关接口
- 新增单元的请求和响应VO类,实现分页查询单元列表
- 新增UnitController,提供单元列表查询、添加和删除API接口
- 实现UnitService及其实现类,完成单元相关数据库操作和业务逻辑
- 扩展UnitDOMapper及对应XML,实现单元列表和数量查询功能
- 扩展GradeUnitDOMapper,支持单元与年级关联的插入与删除
- 在enlish-vue中新增单元列表展示、分页、删除及新增对话框功能
- 编写AddUnitDialog组件,实现新增单元UI及逻辑
- 新增unit.js接口封装单元相关的API请求
- 注释掉LessonPlansServiceImpl中的导出Word文档相关代码逻辑调整
- 调整class.vue页面样式和布局,集成单元管理模块并优化查询交互
2025-12-17 11:20:04 +08:00
lbw
7f41036193 feat(lessonplan): 实现基于AI的学案自动生成与管理功能
- 新增DifyArticleClient工具类,实现基于Dify API的对话与文本生成功能
- 创建LessonPlansService接口及其实现,实现学案按天生成及存储
- 设计LessonPlansDO和StudentLessonPlansDO数据对象及对应MyBatis映射和数据库操作
- 扩展VocabularyBankDO实体及Mapper,支持查询单元词汇和学生未掌握词汇
- 利用deepoove-poi模板技术生成Word格式的学习计划文档,包含词汇、复习和练习
- 开发StringToPlanMapUtil工具类,解析AI返回结果为结构化学案内容
- 新增JUnit测试用例验证AI对话功能及学案生成逻辑正确性
- 更新Spring Boot配置,添加AI接口地址及密钥等参数
- 在前端Vue项目中新建学案页面,路由配置及导航菜单支持学案访问
2025-12-16 19:08:58 +08:00
lbw
d027c9c7e6 fix(examWords): 处理生成单词为空的异常情况
- 增加判断如果生成的单词对象为空或单词列表为空,则抛出运行时异常
- 防止后续处理中因单词缺失导致的错误
- 提升系统稳定性与异常提示的准确性
2025-12-15 17:25:00 +08:00
lbw
e5fbb445cf feat(class): 删除班级时验证是否存在学生
- 新增StudentDOMapper接口方法selectStudentCountByClassId,用于查询班级下学生数量
- 在ClassServiceImpl中注入StudentDOMapper
- 删除班级时先判断班级下是否存在学生,若存在则抛出异常防止删除
- 更新StudentDOMapper.xml,添加对应的SQL查询语句selectStudentCountByClassId
2025-12-15 16:37:42 +08:00
lbw
f8169b453e feat(student): 实现学生的新增与删除功能
- 新增AddStudentReqVO和DeleteStudentReqVO请求对象
- 在StudentController中添加新增和删除学生接口
- StudentService及其实现类增加新增和删除学生方法
- 通过StudentDOMapper新增插入和逻辑删除方法
- 新增AddStudentDialog组件,实现学生添加的表单及交互
- 在class.vue页面添加新增学生按钮及删除学生操作列
- API层新增addStudent和deleteStudent接口调用
- 删除学生时更新选中状态及重新加载学生列表
- 初始化新增学生时词汇掌握记录相关数据
2025-12-15 16:08:42 +08:00
lbw
7aebff5f6a feat(class): 添加班级删除功能
- 在班级列表表格中新增“操作”列,添加删除按钮
- 实现删除班级的接口调用逻辑
- 删除成功后刷新班级列表
- 删除当前选中班级时清空选中状态
- 添加成功和失败的用户提示信息
2025-12-15 15:36:40 +08:00
lbw
84239d0199 feat(grade): 实现年级管理的新增与删除功能
- 后端新增AddGradeReqVO和DeleteGradeReqVO请求对象
- GradeController添加新增和删除年级两个接口
- GradeService及其实现类实现新增和删除年级逻辑
- MyBatis映射新增插入和删除SQL语句
- 前端API新增addGrade和deleteGrade方法
- class.vue新增年级列表操作列及相关事件处理
- 新增AddGradeDialog组件用于输入新增年级名称
- 增加页面新增按钮及弹窗显示控制
- 实现删除年级的API调用与界面删除操作反馈
2025-12-15 15:01:07 +08:00
lbw
e3b993dd27 feat(exam): 实现按学生批量生成并下载试题功能
- 增加学生多选功能和生成试题按钮,支持批量操作
- 新增ExamGenerateDialog组件,提供选择年级和难度界面
- 设计后端接口支持多个学生ID,生成对应的试题文档
- 在后端实现批量生成Word文档并压缩打包下载
- 新增StudentDetail业务对象,完善学生信息展示
- 优化了Mapper接口及XML,支持批量查询学生和班级数据
- 提供前端API封装用于调用试题生成和下载服务
- 实现下载失败时的错误处理与提示机制
2025-12-15 14:32:53 +08:00
lbw
89df9af8c6 fix(api): 修正接口路径并优化定时任务逻辑
- 将上传考试单词图片接口路径由 /exam/words/genexam 修改为 /exam/words/submit
- AutoJudgeExamWordsTask 中注入 ExamWordsJudgeService 服务
- 定时任务中调用 examWordsJudgeService.judgeExamWords 方法实现自动判卷
- 注释掉 PngUtil 中调试用的图像保存代码,避免生成多余文件
2025-12-15 11:45:49 +08:00
lbw
e5a1ef1423 refactor(router): 调整首页路由指向班级页面
- 将首页路由组件由Index改为Class
- 修改首页路由的meta标题为“班级”
- 删除原有的/class路由配置
- 更新Header组件中“班级”链接指向根路径
- 修改全局路由守卫处理页面标题格式为“标题 - Enlish”
2025-12-15 11:22:18 +08:00
lbw
eb2c0d2f6c feat(student): 添加学生查询功能并支持按姓名过滤
- 学生查询页面新增姓名输入框及查询、重置按钮
- 实现学生列表展示与分页功能
- 支持根据选中班级和年级联动查询学生
- 学生接口新增按姓名条件查询支持
- 服务层及Mapper层方法添加姓名参数过滤功能
- Vue页面同步新增学生相关响应式状态与方法
- 优化表格交互,支持点击行选中高亮及联动查询
2025-12-15 11:15:47 +08:00
lbw
857fa85c74 feat(grade): 添加年级列表及分页功能
- 前端新增年级列表展示表格和分页组件,同时支持加载状态显示
- 新增 grade.js 接口调用,支持分页查询年级数据
- 后端新增 GradeController 提供分页查询接口 /grade/list
- 实现 GradeService 新增分页查询和总数量统计方法
- 添加 GradeDOMapper 新增分页查询及计数 SQL 语句
- 定义请求与响应VO类用于年级分页查询接口数据传输
- 页面 onMounted 时同时请求班级列表和年级列表数据,提升数据展示完整性
2025-12-15 10:45:15 +08:00
lbw
ef48923422 feat(class): 实现班级列表分页查询功能
- 新增班级后端分页接口及相关服务实现
- 实现班级与年级关联数据查询及映射
- 新增分页请求和响应VO类支持前后端数据传输
- 修改前端class.vue,增加班级列表分页展示组件
- 增加前端分页逻辑及状态管理,支持切换页码和页面大小
- 创建GradeClassDO实体及对应Mapper实现关联查询
- 优化数据库Mapper XML,增加分页查询及计数SQL语句
- 调整MyBatis配置生成grade_class表实体类和Mapper接口
2025-12-15 10:27:48 +08:00
lbw
0ad8edbac1 feat(student): 新增学生详情接口及相关服务层支持
- 优化ClassDOMapper,重命名查询方法为selectClassDOById,并移除多余CRUD方法
- 新增ClassService接口及ClassServiceImpl实现,用于通过ID查询班级信息
- 新增GradeDO及GradeDOMapper,实现根据班级ID查询年级信息
- 新增GradeService接口及GradeServiceImpl实现根据班级ID查询年级数据
- StudentDO增加isDeleted和startTime字段,补充学生实体
- StudentDOMapper新增selectStudentById方法实现单个学生信息查询
- StudentService及其实现类新增getStudentById方法提供学生单条数据查询
- StudentController新增/detail接口,实现学生详情查询,返回学生姓名、班级、年级等信息
- 创建FindStudentDetailReqVO和FindStudentDetailRspVO用于请求和响应数据传输
- enlish-vue端新增getStudentDetail接口调用 后台学生详情接口
- 修改ExamWordsDetailCard组件,展示学生姓名及其班级、年级信息,新增fetchStudent异步方法拉取学生详情数据并显示
2025-12-14 16:51:45 +08:00
lbw
6eb46f606e feat(exam): 优化单词详情展示为单词名称显示
- 新增接口通过单词ID批量获取对应单词名称
- 展示正确单词和错误单词时使用获取的单词名称替代ID
- 调整ExamWordsDetailCard组件,新增correctTitles和wrongTitles响应式数据
- 封装fetchTitles方法异步获取单词名称并存入状态
- 修改模板部分渲染,使用单词名称列表动态渲染el-tag标签
- 添加Vocabulary接口相关VO和控制层实现单词名称查询功能
- 新增前端接口调用实现词汇名称数据请求功能
2025-12-14 16:01:31 +08:00
lbw
1ace63cbe0 feat(exam): 新增词条结果详情查看功能
- 新增后端接口获取指定试卷词条判定结果详情
- 新增前端API调用对应接口
- 在上传结果列表页面点击表格行可弹出详情弹窗
- 新建ExamWordsDetailCard组件展示详细信息
- 显示正确词条和错误词条列表及相关统计信息
- 完善后端数据层及服务层支持详情查询功能
2025-12-14 15:39:41 +08:00
lbw
c1b3c92244 feat(exam): 增加试卷结果分页查询接口及前端显示功能
- 新增ExamWordsResultReqVO和ExamWordsResultRspVO用于请求与响应封装
- ExamWordsController新增getExamWordsResult方法支持分页查询试卷结果
- ExamWordsJudgeService接口及实现中添加分页获取试卷结果方法及统计总数
- Mapper层添加分页查询和统计的SQL语句支持
- Vue前端uploadpng页面优化为两列布局,新增结果集表格与分页控件
- 上传功能改用自定义http-request,上传后自动刷新结果列表
- Class页面调整布局增加额外展示内容
- 删除未使用接口ExamWordsJudge接口及相关引用
- 重命名ExamWordsJudge相关类和测试类以统一命名规范
2025-12-14 15:10:46 +08:00
lbw
9a11a7c094 feat(router): 初始化项目路由与页面结构
- 删除默认示例组件 HelloWorld.vue 及相关代码
- 使用 <router-view> 替换 App.vue 中的默认内容
- 引入并应用 Vue Router,实现基础页面路由配置
- 在 main.js 中注册路由插件
- 添加首页组件 index.vue,作为根路径路由的目标组件
- 配置 vite 别名 '@' 指向 src 目录,方便路径引用
- 添加 Element Plus、Flowbite 和 Vue Router 依赖,集成 UI 框架
- 配置自动导入和组件按需加载插件,简化开发流程
- 配置 Tailwind CSS 及 Flowbite 插件,设置样式基础
- 创建主样式文件 main.css 并导入 Tailwind 指令
- 添加 postcss 配置支持 Tailwind 和 autoprefixer
2025-12-14 12:06:08 +08:00
lbw
5585f33f95 feat(enlish-vue): 初始化 Vue 前端项目及配置相关文件
- 新增基础 Vue 项目结构,包含 App.vue 和 HelloWorld 组件
- 配置 Vite 作为构建工具,添加 package.json 和 package-lock.json
- 创建入口文件 main.js,初始化 Vue 应用并挂载
- 添加 index.html 作为项目的入口页面
- 更新 .gitignore,忽略 node_modules 和 .vscode 目录
- 添加 enlish-vue.iml 模块配置文件支持集成开发环境
2025-12-14 11:38:03 +08:00
lbw
1002eaf591 feat(enlish-service): 新增自动判卷功能及学生单词记忆管理模块
- 支持数据库多语句查询,修改数据源连接配置增加allowMultiQueries参数
- 添加定时任务AutoJudgeExamWordsTask,实现每5秒自动触发判卷
- 增加ExamWordsJudge接口及其实现类ExamWordsJudgeImpl,完成考试判卷逻辑
- 新增多张数据库映射文件及对应Mapper,如ExamWordsDOMapper、ExamWordsJudgeResultDOMapper、StudentExamWordsDOMapper和WordMasteryLogDOMapper,支持相关数据操作
- 扩展PngUtil工具类,支持从答题卡图片中解析学生考试信息和识别未记忆单词
- 修改数据库表结构映射,新增word_mastery_log表和相关字段,管理学生单词记忆强度及复习次数
- 配置@EnableScheduling以启用定时任务调度功能
- 增加测试用例包括ExamWordsJudgeTest和WordMasteryLogInsertTest,验证判卷和学生单词记忆初始化功能
- 重命名测试类TestInsert为TestVocabularyBankInsert,提升代码语义清晰度
2025-12-14 11:30:26 +08:00
lbw
a5b23057d3 feat(examWords): 新增识别题目图片上传接口及相关功能
- 添加ExamWordsJudgeResultDO及对应数据库表映射与Mapper接口
- 实现ExamWordsJudgeResultType枚举,管理判题状态
- 在ExamWordsService及实现类中新增保存图片并记录数据库的方法
- 在ExamWordsController中新增上传图片接口submit,处理上传文件并返回操作结果
- 调整application-dev.yml中的png临时文件目录路径配置
- 更新MyBatis生成配置,新增exam_words_judge_result表支持
- 优化ExamWordsConstant,清理未使用常量和注释内容
2025-12-12 18:41:19 +08:00
lbw
feabb6d4b1 refactor(pngutil): 优化试卷id识别为学生和试卷组合对象
- 将分析试卷id方法返回类型改为StudentExamId,包含学生id和试卷id
- 修改正则匹配逻辑,从单个id提取改为依次提取试卷id和学生id
- 增加StudentExamId类,封装学生id和试卷id字段
- 试卷生成与接口数据构建均添加学生相关信息,完善数据结构
- 相关测试调用修改为使用StudentExamId类型并打印对象信息
2025-12-12 17:37:28 +08:00
lbw
e729ddc829 feat(omr): 新增基于OCR的试卷ID识别功能
- 集成Tess4J实现OCR识别,新增analyzeExamWordsId方法提取试卷ID
- 对试卷图片左上角区域进行裁剪和预处理以提升识别准确率
- 添加Mat到BufferedImage的转换辅助方法,支持OCR读取
- 在测试用例中增加对OCR识别功能的集成测试
- 修改配置文件添加OCR数据路径,完善依赖引入OpenCV和Tess4J库
2025-12-12 17:04:02 +08:00
lbw
e0258c7ddf refactor(exam): 重构摸底测试为考试词汇模块
- 删除原 Assessment 相关的实体、Mapper、Service 接口及实现和 Controller
- 重命名常量类 AssessmentConstant 为 ExamWordsConstant 并调整相关常量值
- 新增 ExamWordsController 替代 AssessmentController,使用新模板生成试卷
- 新增 ExamWordsService 及其实现,实现按年级、等级和学生列表生成考试词汇
- 新增 ListWordIdTypeHandler 处理 List<Integer> 与数据库间的 JSON 转换
- 调整 PngUtil 中常量引用改为 ExamWordsConstant
- 修改配置文件新增模板路径及临时目录设置
- 新增单元测试 ExamTest 验证考试词汇生成及文档导出功能
- 修改生成配置文件,支持 student_exam_words 表的数据操作
- 清理未使用的 Assessment 相关代码,精简项目结构
2025-12-12 16:12:17 +08:00
lbw
d1349137b6 test(service): 添加考试评测相关单元测试
- 新增AssessmentService相关测试,生成学生单词测试卷文档
- 实现Excel文件单词数据导入及写入数据库的测试
- 新增OMR测试,加载OpenCV库并分析PNG文件坐标数据
- 测试未记忆单词识别功能,输出对应单词ID日志
- 更新.gitignore,移除对测试目录的忽略规则
2025-12-12 11:53:24 +08:00
lbw
b01810191e feat(assessment): 添加图片分析及生成摸底测试文档功能
- 新增AssessmentConstant常量接口,定义文件暂存目录及列数常量
- AssessmentController新增上传图片分析接口,支持将上传的PNG文件暂存并解析坐标
- 新增CoordinatesXY数据模型,封装坐标及宽高信息
- 引入OpenCV依赖,新增PngUtil工具类,实现黑色块检测并计算坐标列表
- PngUtil实现对未背熟单词的图片标记分析方法
- 优化AssessmentController使用新版Word模板文件assessment_v3.docx
- 删除冗余旧的StudentServiceImpl代码,整合至student包内实现
- 迁移和完善StudentServiceImpl,实现学生分页查询及总数统计接口
2025-12-12 11:51:30 +08:00
lbw
d424f72183 feat:新增查询学生列表功能 2025-12-10 19:30:08 +08:00
lbw
d777437e82 feat:生成评测docx 2025-12-10 18:33:52 +08:00
lbw
81f44376c5 feat:把单词导入到数据库 2025-12-10 13:50:21 +08:00
lbw
8d1e2a5b75 feat:引入redis 2025-12-10 10:38:45 +08:00
lbw
0d0cf2ef5b feat:数据库连接、序列化日期 2025-12-09 19:27:04 +08:00
lbw
247a3c9a5e feat:引入切面记录日志 2025-12-09 18:51:31 +08:00
lbw
7ef76d2386 feat:引入常量方法 2025-12-09 18:42:50 +08:00
lbw
46fc80223b 初始化 2025-12-09 18:42:25 +08:00