EvalDataAnalysisService.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package com.seecoder.dataanalysis.analysis;
  2. import cn.seecoder.bok.common.vo.QuestionVO;
  3. import com.seecoder.dataanalysis.data.entity.competency.CompetencyTree;
  4. import com.seecoder.dataanalysis.data.entity.eval.Question;
  5. import com.seecoder.dataanalysis.data.entity.eval.display.FormatQuestion;
  6. import com.seecoder.dataanalysis.vo.EvalExamRecordDTO;
  7. import java.util.List;
  8. import java.util.Map;
  9. /**
  10. * @author Peng Yiyan
  11. * @since 2022/02/03
  12. */
  13. public interface EvalDataAnalysisService {
  14. /**
  15. * 根据学生id,分析该学生的能力树,返回可用于可视化的结果
  16. * @param userId 学生id
  17. * @return competency_tree 返回能力树
  18. */
  19. CompetencyTree getTreeById(int userId);
  20. /**
  21. * 学生提交试卷得到提交日志,根据考试结果分析KSD并入库
  22. * @param recordId 学生提交试卷的试卷id
  23. * @return competency_tree 返回能力树
  24. */
  25. CompetencyTree getTreeAfterExam(int recordId);
  26. /**
  27. * 和getTreeAfterExam类似的方法,但此处使用考试记录DTO直接对能力树进行更新
  28. * @param evalExamRecordDTO op_type=2的日志
  29. * @return competency_tree 对应的能力树
  30. */
  31. CompetencyTree updateCompetencyTreeType2(EvalExamRecordDTO evalExamRecordDTO);
  32. /**
  33. * 根据学生id,获得学生的错题列表,用于推荐系统
  34. * @param userId 学生id
  35. * @return Map<String, Double> errorQuestions 返回学生的错误题目
  36. * 其中String代表题号,Double代表 学生得分/总分,值越高,说明学生掌握程度越高
  37. */
  38. Map<String, Double> getStudentErrorQuestions(int userId);
  39. /**
  40. * 根据学生id和指定的知识点返回做过的题目列表
  41. * @param userId 学生id
  42. * @param types 要显示的题目类型,由知识点来分类
  43. * @return questionsList 用于展示的题目列表
  44. */
  45. List<FormatQuestion> getStudentQuestionsList(int userId, List<String> types);
  46. }