Selaa lähdekoodia

修正标准分错误

mingfu 3 viikkoa sitten
vanhempi
commit
a40eb632da

+ 1 - 5
ie-admin/src/main/java/com/ruoyi/web/controller/front/FrontExamController.java

@@ -95,11 +95,7 @@ public class FrontExamController {
 
     @ApiOperation("04 取答卷")
     @GetMapping(value = "loadExaminee")
-    public AjaxResult loadExaminee(@ApiParam("答卷ID") @RequestParam(required = false) Long examineeId, @RequestBody JSONObject body) {
-        // 检查状态,以决定是否返回答案
-        if(null == examineeId) {
-            examineeId = body.getLongValue("examineeId");
-        }
+    public AjaxResult loadExaminee(@ApiParam("答卷ID") @RequestParam(required = false) Long examineeId) {
         return AjaxResult.success(examService.loadExaminee(examineeId, false));
     }
 

+ 6 - 4
ie-admin/src/main/java/com/ruoyi/web/service/ExamService.java

@@ -182,9 +182,10 @@ public class ExamService {
         for(PaperVO.QuestionAnswer question : answerSheet.getQuestions()) {
             if(CollectionUtils.isNotEmpty(question.getSubQuestions())) {
                 for(PaperVO.QuestionAnswer sq : question.getSubQuestions()) {
+                    PaperVO.QuestionAnswer stdAnswer = questionMap.get(sq.getId());
                     LearnAnswer answer = buildAnswer(answerSheet, questionMap, sq, answersList);
                     if(answerSheet.getIsDone()) {
-                        totalScore += sq.getScore();
+                        totalScore += stdAnswer.getTotalScore();
                         score += answer.getScore();
                         if(!answer.getState().equals(1)) {
                             wrongCount++;
@@ -192,9 +193,10 @@ public class ExamService {
                     }
                 }
             } else {
+                PaperVO.QuestionAnswer stdAnswer = questionMap.get(question.getId());
                 LearnAnswer answer = buildAnswer(answerSheet, questionMap, question, answersList);
                 if(answerSheet.getIsDone()) {
-                    totalScore += question.getScore();
+                    totalScore += stdAnswer.getTotalScore();
                     score += answer.getScore();
                     if(!answer.getState().equals(1)) {
                         wrongCount++;
@@ -334,8 +336,8 @@ public class ExamService {
         answer.setNotKnow(null != question.getIsNotKnow() && question.getIsNotKnow());
         answer.setState(question.calcState(stdAnswer, answerSheet.getIsDone()));
         if (answerSheet.getIsDone()) {
-            answer.setScore(answer.getState() == 1 ? stdAnswer.getScore() : 0);
-            answer.setScoreRate(answer.getScore() * 100 / stdAnswer.getScore());
+            answer.setScore(answer.getState() == 1 ? stdAnswer.getTotalScore() : 0);
+            answer.setScoreRate(answer.getScore() * 100 / stdAnswer.getTotalScore());
         }
         return answer;
     }

+ 2 - 0
ie-system/src/main/java/com/ruoyi/learn/domain/PaperVO.java

@@ -76,6 +76,8 @@ public class PaperVO {
         @ApiModelProperty("答题正确状态 0 默认 1正确 2错误 3不会 4 未答")
         Integer state;
         @ApiModelProperty("试题标准分")
+        Integer totalScore;
+        @ApiModelProperty("学生得分")
         Integer score;
 
         List<QuestionAnswer> subQuestions;