|
@@ -5,10 +5,7 @@ import edu.math.diagnosis.config.Constants;
|
|
|
import edu.math.diagnosis.dao.PaperCommitRepo;
|
|
|
import edu.math.diagnosis.dao.PaperResultRepo;
|
|
|
import edu.math.diagnosis.entity.*;
|
|
|
-import edu.math.diagnosis.model.Answer;
|
|
|
-import edu.math.diagnosis.model.KnowledgeKeepVo;
|
|
|
-import edu.math.diagnosis.model.Result;
|
|
|
-import edu.math.diagnosis.model.SectionInfoVo;
|
|
|
+import edu.math.diagnosis.model.*;
|
|
|
import edu.math.diagnosis.util.NumberUtil;
|
|
|
import edu.math.diagnosis.util.ObjectUtil;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
@@ -141,7 +138,14 @@ public class PaperResultService {
|
|
|
r.setChapterRate(chapterRate(r, paper));
|
|
|
r.setKnowledgeKeepStatus(ObjectUtil.object2Json(knowledgeKeepStatus(r, paper)));
|
|
|
r.setUseTime(useTime(paper, commit));
|
|
|
+ //TODO 还没做的
|
|
|
r.setSectionInfo(sectionInfo(r, paper));
|
|
|
+
|
|
|
+ //第二部分 学科能力
|
|
|
+ r.setChapterAbility(chapterAbility(r, paper));
|
|
|
+ r.setAbilityEvaluate(abilityEvaluate(r, paper));
|
|
|
+ r.setQuestionMatter(questionMatter(r, paper));
|
|
|
+
|
|
|
// paperResultRepo.save(r);
|
|
|
}
|
|
|
|
|
@@ -415,7 +419,41 @@ public class PaperResultService {
|
|
|
return ObjectUtil.object2Json(list);
|
|
|
}
|
|
|
|
|
|
- private List<Answer> convertAnswer(String json){
|
|
|
+ public String chapterAbility(PaperResult result, Paper paper) {
|
|
|
+ List<SubjectKnowledge> knowledge = knowledgeService.list(paper.getSubjectId(), paper.getGrade());
|
|
|
+ //根据章节分组 Map<chapter,List<SubjectKnowledge>>
|
|
|
+// Map<String, List<SubjectKnowledge>> group = knowledge.stream().collect(Collectors.groupingBy(SubjectKnowledge::getChapter));
|
|
|
+
|
|
|
+ List<Integer> collects = convertCollectQuestion(result.getCollectQuestion());
|
|
|
+ //Map<tag,Set<number>> 知识点与题目对应
|
|
|
+ Map<String, Set<Integer>> tagNumbers = tagNumbers(paper);
|
|
|
+ //Map<tag,keep> 每个知识点的掌握情况
|
|
|
+ Map<String, Integer> tagKeep = tagKeep(collects, tagNumbers);
|
|
|
+
|
|
|
+ List<ChapterAbilityVo> vos = new ArrayList<>();
|
|
|
+ knowledge.forEach(k -> {
|
|
|
+ ChapterAbilityVo vo = new ChapterAbilityVo();
|
|
|
+ vo.setChapter(k.getChapter());
|
|
|
+ vo.setKnowledgeCode(k.getCode());
|
|
|
+ vo.setKnowledgeContent(k.getContent());
|
|
|
+ // 设置该知识点掌握程度
|
|
|
+ vo.setKeep(tagKeep.getOrDefault(k.getCode(), 0));
|
|
|
+ vo.setAbilityCodes(k.getAbilityCodes());
|
|
|
+ vos.add(vo);
|
|
|
+ });
|
|
|
+ Map<String, List<ChapterAbilityVo>> group = vos.stream().collect(Collectors.groupingBy(ChapterAbilityVo::getChapter));
|
|
|
+ return ObjectUtil.object2Json(group);
|
|
|
+ }
|
|
|
+
|
|
|
+ public String abilityEvaluate(PaperResult result, Paper paper) {
|
|
|
+ return "{}";
|
|
|
+ }
|
|
|
+
|
|
|
+ public String questionMatter(PaperResult result, Paper paper) {
|
|
|
+ return "{}";
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<Answer> convertAnswer(String json) {
|
|
|
return ObjectUtil.getGson().fromJson(json, new TypeToken<List<Answer>>() {
|
|
|
}.getType());
|
|
|
}
|