feat(enlish-service): 新增自动判卷功能及学生单词记忆管理模块
- 支持数据库多语句查询,修改数据源连接配置增加allowMultiQueries参数 - 添加定时任务AutoJudgeExamWordsTask,实现每5秒自动触发判卷 - 增加ExamWordsJudge接口及其实现类ExamWordsJudgeImpl,完成考试判卷逻辑 - 新增多张数据库映射文件及对应Mapper,如ExamWordsDOMapper、ExamWordsJudgeResultDOMapper、StudentExamWordsDOMapper和WordMasteryLogDOMapper,支持相关数据操作 - 扩展PngUtil工具类,支持从答题卡图片中解析学生考试信息和识别未记忆单词 - 修改数据库表结构映射,新增word_mastery_log表和相关字段,管理学生单词记忆强度及复习次数 - 配置@EnableScheduling以启用定时任务调度功能 - 增加测试用例包括ExamWordsJudgeTest和WordMasteryLogInsertTest,验证判卷和学生单词记忆初始化功能 - 重命名测试类TestInsert为TestVocabularyBankInsert,提升代码语义清晰度
This commit is contained in:
@@ -4,6 +4,7 @@ import com.yinlihupo.enlish.service.domain.dataobject.UnitDO;
|
||||
import com.yinlihupo.enlish.service.domain.dataobject.VocabularyBankDO;
|
||||
import com.yinlihupo.enlish.service.domain.mapper.UnitDOMapper;
|
||||
import com.yinlihupo.enlish.service.domain.mapper.VocabularyBankDOMapper;
|
||||
import com.yinlihupo.enlish.service.domain.mapper.WordMasteryLogDOMapper;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
@@ -20,12 +21,14 @@ import java.util.HashMap;
|
||||
|
||||
@SpringBootTest
|
||||
@Slf4j
|
||||
public class TestInsert {
|
||||
public class TestVocabularyBankInsert {
|
||||
|
||||
@Resource
|
||||
private VocabularyBankDOMapper vocabularyBankMapper;
|
||||
@Resource
|
||||
private UnitDOMapper unitDOMapper;
|
||||
@Resource
|
||||
private WordMasteryLogDOMapper wordMasteryLogDOMapper;
|
||||
|
||||
@Test
|
||||
void test() {
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.yinlihupo.enlish.service.mapper;
|
||||
|
||||
import com.yinlihupo.enlish.service.domain.mapper.UnitDOMapper;
|
||||
import com.yinlihupo.enlish.service.domain.mapper.VocabularyBankDOMapper;
|
||||
import com.yinlihupo.enlish.service.domain.mapper.WordMasteryLogDOMapper;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@SpringBootTest
|
||||
public class WordMasteryLogInsertTest {
|
||||
|
||||
|
||||
@Resource
|
||||
private VocabularyBankDOMapper vocabularyBankMapper;
|
||||
@Resource
|
||||
private UnitDOMapper unitDOMapper;
|
||||
@Resource
|
||||
private WordMasteryLogDOMapper wordMasteryLogDOMapper;
|
||||
|
||||
@Test
|
||||
void test() {
|
||||
List<Integer> integers = vocabularyBankMapper.selectAllIds();
|
||||
wordMasteryLogDOMapper.batchInsertInitialization(integers, 1);
|
||||
}
|
||||
}
|
||||
@@ -42,7 +42,7 @@ public class TestOmr {
|
||||
public void testInteger(){
|
||||
String filePath = "C:\\project\\java\\enlish_edu\\enlish\\enlish-service\\src\\main\\resources\\templates\\p3.png";
|
||||
List<CoordinatesXY> coordinatesXIES = PngUtil.analysisXY(filePath);
|
||||
StudentExamId studentExamId = PngUtil.analyzeExamWordsId(filePath, tessdataPath, coordinatesXIES);
|
||||
StudentExamId studentExamId = PngUtil.analyzeExamWordsIdAndStudentId(filePath, tessdataPath, coordinatesXIES);
|
||||
log.info("studentExamId:{}",studentExamId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.yinlihupo.enlish.service.service.exam;
|
||||
|
||||
import com.yinlihupo.enlish.service.service.ExamWordsJudge;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
@SpringBootTest
|
||||
public class ExamWordsJudgeTest {
|
||||
|
||||
|
||||
@Resource
|
||||
private ExamWordsJudge examWordsJudge;
|
||||
|
||||
@Test
|
||||
public void judgeExamWords() {
|
||||
examWordsJudge.judgeExamWords(1);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user