feat(student): 实现学生学习分析功能

- 新增AnalyzeStudentStudyReqVO用于分析请求参数封装
- StudentService接口新增analyzeStudentStudy方法及其实现
- 实现分析逻辑,查询最近7天学生考试及单词掌握记录,构造分析数据
- 通过DifyArticleClient调用外部AI服务生成学习分析结果
- 使用Redis缓存分析结果,设置3天过期
- 新增ExamWordsJudgeResultDetail和WordMasteryDetail数据模型
- Mapper新增支持根据学生ID和时间范围查询考试结果和单词掌握日志
- DifyArticleClient新增sendStudentAnalyze方法调用分析接口
- 前端学生页面新增学习分析面板及调用接口,支持超时设置
- 修改路由权限配置,允许访问学习分析接口
- 添加markdown-it库支持分析结果富文本渲染
- 移除RoleServiceImpl中redis设置过期时间,改为永久保存
This commit is contained in:
lbw
2025-12-24 15:22:18 +08:00
parent 4135b72648
commit 260c2c79f1
19 changed files with 342 additions and 11 deletions

View File

@@ -2,6 +2,8 @@ package com.yinlihupo.enlish.service.service.exam;
import com.yinlihupo.enlish.service.domain.dataobject.ExamWordsJudgeResultDO;
import com.yinlihupo.enlish.service.service.ExamWordsJudgeService;
import com.yinlihupo.enlish.service.service.StudentService;
import com.yinlihupo.enlish.service.utils.DifyArticleClient;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
@@ -16,7 +18,10 @@ public class ExamWordsJudgeServiceTest {
@Resource
private ExamWordsJudgeService examWordsJudgeService;
@Resource
private StudentService studentService;
@Resource
private DifyArticleClient difyArticleClient;
@Test
public void judgeExamWords() {
examWordsJudgeService.judgeExamWords(1);
@@ -27,4 +32,17 @@ public class ExamWordsJudgeServiceTest {
List<ExamWordsJudgeResultDO> examWordsJudgeResult = examWordsJudgeService.getExamWordsJudgeResult(1, 10);
log.info("examWordsJudgeResult:{}", examWordsJudgeResult);
}
@Test
public void selectExamWordsJudgeResult2() {
String s = studentService.analyzeStudentStudy(1);
try {
DifyArticleClient.DifyResponse difyResponse = difyArticleClient.sendStudentAnalyze(s);
String answer = difyResponse.getAnswer();
log.info("answer:{}", answer);
} catch (Exception e) {
throw new RuntimeException(e);
}
log.info("s:{}", s);
}
}