package com.seecoder.dataanalysis.analysis; import cn.seecoder.bok.common.vo.QuestionVO; import com.seecoder.dataanalysis.data.entity.competency.CompetencyTree; import com.seecoder.dataanalysis.data.entity.eval.Question; import com.seecoder.dataanalysis.data.entity.eval.display.FormatQuestion; import com.seecoder.dataanalysis.vo.EvalExamRecordDTO; import java.util.List; import java.util.Map; /** * @author Peng Yiyan * @since 2022/02/03 */ public interface EvalDataAnalysisService { /** * 根据学生id,分析该学生的能力树,返回可用于可视化的结果 * @param userId 学生id * @return competency_tree 返回能力树 */ CompetencyTree getTreeById(int userId); /** * 学生提交试卷得到提交日志,根据考试结果分析KSD并入库 * @param recordId 学生提交试卷的试卷id * @return competency_tree 返回能力树 */ CompetencyTree getTreeAfterExam(int recordId); /** * 和getTreeAfterExam类似的方法,但此处使用考试记录DTO直接对能力树进行更新 * @param evalExamRecordDTO op_type=2的日志 * @return competency_tree 对应的能力树 */ CompetencyTree updateCompetencyTreeType2(EvalExamRecordDTO evalExamRecordDTO); /** * 根据学生id,获得学生的错题列表,用于推荐系统 * @param userId 学生id * @return Map errorQuestions 返回学生的错误题目 * 其中String代表题号,Double代表 学生得分/总分,值越高,说明学生掌握程度越高 */ Map getStudentErrorQuestions(int userId); /** * 根据学生id和指定的知识点返回做过的题目列表 * @param userId 学生id * @param types 要显示的题目类型,由知识点来分类 * @return questionsList 用于展示的题目列表 */ List getStudentQuestionsList(int userId, List types); }