|
|
@@ -44,8 +44,7 @@ public class EvalDataAnalysisServiceImpl implements EvalDataAnalysisService {
|
|
|
@Override
|
|
|
public CompetencyTree getTreeAfterExam(int exam_id){
|
|
|
//TODO 测试检查
|
|
|
- //TODO 修改Question的对应关系
|
|
|
- //TODO 修改成逐条添加的形式
|
|
|
+
|
|
|
EvalExamRecord evalExamRecord = evalExamRecordDao.findById(exam_id).get();
|
|
|
EvalExamInfo evalExamInfo = evalExamInfoDao.findById(exam_id).get();
|
|
|
CompetencyTree competencyTree;
|
|
|
@@ -180,8 +179,25 @@ public class EvalDataAnalysisServiceImpl implements EvalDataAnalysisService {
|
|
|
|
|
|
@Override
|
|
|
public Map<String, Double> getStudentErrorQuestions(int userId){
|
|
|
- //TODO 需要综合题目总分考虑
|
|
|
-
|
|
|
- return null;
|
|
|
+ List<EvalExamRecord> evalExamRecordList = evalExamRecordDao.findByUserId(userId);
|
|
|
+ Map<String,Double> res = new HashMap<>();
|
|
|
+ for(EvalExamRecord evalExamRecord : evalExamRecordList){
|
|
|
+ Map<String,Double> errorQuestions = evalExamRecord.getErrorQuestions();
|
|
|
+ for(String questionId : errorQuestions.keySet()){
|
|
|
+ Optional<Question> result = questionDao.findById(questionId);
|
|
|
+ if(!result.isPresent()){
|
|
|
+ System.out.println("题号不存在");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Question question = questionDao.findById(questionId).get();
|
|
|
+ //如果题目分数为0,则跳过该题不做分析
|
|
|
+ if(question.getQuestionScore() == 0){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Double scorePercent = errorQuestions.get(questionId) / question.getQuestionScore();
|
|
|
+ res.put(questionId,res.getOrDefault(questionId,0.0)+scorePercent);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return res;
|
|
|
}
|
|
|
}
|