Explorar o código

返回有效模拟卷,修正bug

mingfu hai 1 semana
pai
achega
b0672d9fb4

+ 1 - 0
ie-admin/src/main/java/com/ruoyi/web/controller/front/FrontPaperController.java

@@ -140,6 +140,7 @@ public class FrontPaperController {
         learnPaper.setLocations(sysUser.getLocation());
         learnPaper.setDirectKey(sysUser.getExamType().name() + "_" + subjectKey);
         learnPaper.setSubjectId(null);
+        learnPaper.setStatus(1);
         List<LearnPaper> list = learnPaperService.selectLearnPaperList(learnPaper);
         Map<Long, String> subjectMap = dzSubjectService.selectDzSubjectList(new DzSubject()).stream().collect(Collectors.toMap(DzSubject::getSubjectId, DzSubject::getSubjectName));
         List<JSONObject> jsonList = list.stream().map(t -> {

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

@@ -471,15 +471,16 @@ public class ExamService {
         return answerSheet;
     }
     private AnswerSheet openExamineeByPaper(Long paperId) {
+        LearnPaper learnPaper = paperMapper.selectLearnPaperById(paperId);
+
         LearnExaminee examinee = new LearnExaminee();
         examinee.setStudentId(SecurityUtils.getLoginUser().getUser().getUserId());
         examinee.setPaperType(PaperType.Simulated.getVal());
-        examinee.setPaperKey("P" + "_" + paperId);
+        examinee.setPaperKey("P" + "_" + paperId + "_" + learnPaper.getSubjectId());
         examinee.setState(ExamineeStatus.Sign.getVal());
         List<LearnExaminee> examineeList = examineeMapper.selectLearnExamineeList(examinee);
-        LearnPaper learnPaper = paperMapper.selectLearnPaperById(paperId);
         if(CollectionUtils.isNotEmpty(examineeList)) {
-            return buildAnswerSheet(learnPaper, examineeList.get(0), loadQuestionAnswers(examinee, true));
+            return buildAnswerSheet(learnPaper, examineeList.get(0), loadQuestionAnswers(examineeList.get(0), true));
         }
         return openNewExamineeByPaper(examinee, learnPaper);
     }

+ 2 - 1
ie-admin/src/main/java/com/ruoyi/web/service/StudentService.java

@@ -111,7 +111,8 @@ public class StudentService {
 
         List<JSONObject> list = learnExamineeMapper.selectLearnExamineeList(eCond).stream().map(t -> {
             JSONObject info = JSONObject.parseObject(t.getPaperInfo());
-            DzSubject dzSubject = dzSubjectService.selectDzSubjectBySubjectId(Long.parseLong(t.getPaperKey()));
+            String[] paperKey = t.getPaperKey().split("_");
+            DzSubject dzSubject = dzSubjectService.selectDzSubjectBySubjectId(Long.parseLong(paperKey[paperKey.length - 1]));
             String name = info.getString("universityName") + "-" + info.getString("majorName");
             return JSONObject.of("id", t.getExamineeId(), "state", t.getState()
                     , "subjectName", dzSubject.getSubjectName()