Преглед на файлове

阅卷代码修改已完成

yuanjunhao преди 2 седмици
родител
ревизия
d28f04a2c4

+ 12 - 7
web/src/main/java/com/ynfy/buss/exam/exam/controller/ExamController.java

@@ -456,7 +456,6 @@ public class ExamController extends JeecgController<Exam, IExamService> {
             return Result.ok(examService.userExamResultDetail(userExamId));
         }else {
             return Result.ok(examService.userExamPaperResultDetail(userExamId,paperId));
-
         }
     }
 //    /**
@@ -478,14 +477,20 @@ public class ExamController extends JeecgController<Exam, IExamService> {
      */
     @ApiOperation(value = "考试-用户考试成绩详情-阅卷切换下一套")
     @GetMapping(value = "/userExamResultDetails")
-    public Result<?> userExamResultDetails(@RequestParam(name = "userExamId") String userExamId,@RequestParam(name = "paperId") String paperId) {
-        if (UserExamPapersService.UserExamIdAllUserExamPapers2(userExamId).isEmpty()){
-            return Result.ok(examService.userExamResultDetail(userExamId));
+    public Result<?> userExamResultDetails(String userExamId,@RequestParam(name = "examId") String examId,@RequestParam(name = "paperId") String paperId) {
+        if(!Objects.equals(userExamId, null)){
+            if (UserExamPapersService.UserExamIdAllUserExamPapers2(userExamId).isEmpty()){
+                return Result.ok(examService.userExamResultDetail(userExamId));
+            }else {
+                return Result.ok(examService.userExamPaperResultDetail(userExamId,paperId));
+            }
         }else {
-            return Result.ok(examService.userExamPaperResultDetail(userExamId,paperId));
-
+            if(examService.getById(examId).getPaperId()!=null){
+                return Result.ok(examService.ybuserExamResultDetails(examId,paperId));
+            }else {
+                return Result.ok(examService.userExamResultDetails(examId,paperId));
+            }
         }
-//        return Result.ok(examService.userExamResultDetails(paperId));
     }
     /**
      * 缓存考试试卷答案,用于定时任务强制交卷

+ 2 - 1
web/src/main/java/com/ynfy/buss/exam/exam/service/IExamService.java

@@ -67,7 +67,8 @@ public interface IExamService extends IService<Exam> {
      * @param userExamId
      * @return
      */
-    UserExamDTO userExamResultDetails(String userExamId);
+    UserExamDTO userExamResultDetails(String examId,String userExamId);
+    UserExamDTO ybuserExamResultDetails(String examId,String userExamId);
 
     /**
      * 找出正确答案

+ 108 - 10
web/src/main/java/com/ynfy/buss/exam/exam/service/impl/ExamServiceImpl.java

@@ -806,7 +806,7 @@ public class ExamServiceImpl extends ServiceImpl<ExamMapper, Exam> implements IE
         for (ExamPapers examPapers : examPapersList) {
             //获取是否考试状态并赋值
             userExamPapersList1 = iUserExamPapersService.UserExamPapersList(userExamId, examPapers.getPaperId());
-            if (userExamPapersList1.size() == 0) {
+            if (userExamPapersList1.isEmpty()) {
                 examPapers.setState(9);
             } else {
                 examPapers.setState(userExamPapersList1.get(0).getState());
@@ -901,21 +901,18 @@ public class ExamServiceImpl extends ServiceImpl<ExamMapper, Exam> implements IE
 //        dto.setExamPapersList(examPapersList);
 //        return dto;
     }
-    public UserExamDTO userExamResultDetails(String paperId,boolean needAnswerFlag, boolean needAnalysis, boolean needClearBlankContent, boolean needRenderBlank) {
+    public UserExamDTO userExamResultDetails(String examId,String paperId,boolean needAnswerFlag, boolean needAnalysis, boolean needClearBlankContent, boolean needRenderBlank) {
         UserExamDTO dto = new UserExamDTO();
-        List<UserExam> listuserExam = userExamService.listUserExamYueJuans(paperId);
+        List<UserExam> listuserExam = userExamService.listUserExamYueJuans(examId,paperId);
         UserExam userExam = new UserExam();
         String userExamId="";
-        if (listuserExam.size()>0) {
+        if (!listuserExam.isEmpty()) {
             userExam=listuserExam.get(0);
             userExamId=userExam.getId();
         }else {
             throw new JeecgBootException("没有可阅卷的试卷!");
         }
         //显示试卷详情
-        if (Objects.isNull(userExam)) {
-            throw new JeecgBootException("考试不存在!");
-        }
         BeanUtils.copyProperties(userExam, dto);
         List<UserExamQuestion> userExamQuestionList = dto.getUserExamQuestionList();
         List<Map<String, AnswerCardDTO>> answerCardList = new ArrayList<>();
@@ -962,10 +959,104 @@ public class ExamServiceImpl extends ServiceImpl<ExamMapper, Exam> implements IE
             }
 
         }
-
         dto.setExamPapersList(examPapersList);
         return dto;
     }
+    public UserExamDTO ybuserExamResultDetails(String examId,String paperId,boolean needAnswerFlag, boolean needAnalysis, boolean needClearBlankContent, boolean needRenderBlank) {
+        UserExamDTO dto = new UserExamDTO();
+        List<UserExam> listuserExam = userExamService.yblistUserExamYueJuans(examId,paperId);
+        UserExam userExam = new UserExam();
+        String userExamId="";
+        if (!listuserExam.isEmpty()) {
+            userExam=listuserExam.get(0);
+            userExamId=userExam.getId();
+        }else {
+            throw new JeecgBootException("没有可阅卷的试卷!");
+        }
+        System.out.println("yyz显示"+userExam);
+
+        BeanUtils.copyProperties(userExam, dto);
+        List<UserExamQuestion> userExamQuestionList = dto.getUserExamQuestionList();
+        List<Map<String, AnswerCardDTO>> answerCardList = new ArrayList<>();
+        if (!CollectionUtils.isEmpty(userExamQuestionList)) {
+            List<UserExamQuestion> rootQuestionList = userExamQuestionList.stream().filter(r -> !Objects.isNull(r.getChild()) && !r.getChild())
+                    .sorted(Comparator.comparing(UserExamQuestion::getQuestionIndex)).collect(Collectors.toList());
+            List<UserExamQuestion> childQuestionList = userExamQuestionList.stream().filter(r -> !Objects.isNull(r.getChild()) && r.getChild())
+                    .sorted(Comparator.comparing(UserExamQuestion::getQuestionIndex)).collect(Collectors.toList());
+            if (!CollectionUtils.isEmpty(rootQuestionList)) {
+                //获取题目和答案
+                assembleUserExamQuestion(userExamId, rootQuestionList, childQuestionList, needAnswerFlag, needAnalysis, false, true, needClearBlankContent);
+
+                //设置题目
+                setUserExamQuestion(rootQuestionList, needRenderBlank);
+
+                //设置答题卡
+                setAnswerCard(rootQuestionList, answerCardList);
+                dto.setUserExamQuestionList(rootQuestionList);
+            }
+        }
+        dto.setAnswerCardList(answerCardList);
+        return dto;
+//        String userExamId="";
+//        if (listuserExam.size()>0) {
+//            userExam=listuserExam.get(0);
+//            userExamId=userExam.getId();
+//        }else {
+//            throw new JeecgBootException("没有可阅卷的试卷!");
+//        }
+//        //显示试卷详情
+//        if (Objects.isNull(userExam)) {
+//            throw new JeecgBootException("考试不存在!");
+//        }
+//        BeanUtils.copyProperties(userExam, dto);
+//        List<UserExamQuestion> userExamQuestionList = dto.getUserExamQuestionList();
+//        List<Map<String, AnswerCardDTO>> answerCardList = new ArrayList<>();
+//        List< AnswerCardDTO> answerCardList2 = new ArrayList<>();
+//        if (!CollectionUtils.isEmpty(userExamQuestionList)) {
+//            List<UserExamQuestion> rootQuestionList = userExamQuestionList.stream().filter(r -> !Objects.isNull(r.getChild()) && !r.getChild())
+//                    .sorted(Comparator.comparing(UserExamQuestion::getQuestionIndex)).collect(Collectors.toList());
+//            List<UserExamQuestion> childQuestionList = userExamQuestionList.stream().filter(r -> !Objects.isNull(r.getChild()) && r.getChild())
+//                    .sorted(Comparator.comparing(UserExamQuestion::getQuestionIndex)).collect(Collectors.toList());
+//            if (!CollectionUtils.isEmpty(rootQuestionList)) {
+//                //获取题目和答案
+//                assembleUserExamQuestion(userExamId, rootQuestionList, childQuestionList, needAnswerFlag, needAnalysis, false, true, needClearBlankContent);
+//
+//                //设置题目
+//                setUserExamQuestion(rootQuestionList, needRenderBlank);
+//
+//                //设置答题卡
+//                setAnswerCard(rootQuestionList, answerCardList);
+//                setAnswerCard2(rootQuestionList, answerCardList2);
+//                dto.setUserExamQuestionList(rootQuestionList);
+//            }
+//        }
+//        dto.setAnswerCardList(answerCardList);
+//        dto.setAnswerCardList2(answerCardList2);
+////        //获取有没有正在考试的试卷信息
+////        LambdaQueryWrapper<UserExamPapers> wrapperpaper = new LambdaQueryWrapper<UserExamPapers>();
+////        wrapperpaper.eq(UserExamPapers::getUserExamId, userExam.getId())
+////                .eq(UserExamPapers::getState, PaperState.ING);
+////        List<UserExamPapers> userExamPapersList=BeanContext.getApplicationContext().getBean(IUserExamPapersService.class).list(wrapperpaper);
+////        //获取本地当前时间
+////        userExamPapersList.get(0).setSystemTime(new Date());
+////        //在返回值中添加考试试卷信息
+////        dto.setUserExamPapersList(userExamPapersList);
+//        //添加当前考试的所有试卷信息
+//        List<ExamPapers> examPapersList=iExamPapersService.getExamIdPaper(userExam.getExamId());
+//        List<UserExamPapers> userExamPapersList1=new ArrayList<UserExamPapers>();
+//        for (ExamPapers examPapers : examPapersList) {
+//            //获取是否考试状态并赋值
+//            userExamPapersList1 = iUserExamPapersService.UserExamPapersList(userExamId, examPapers.getPaperId());
+//            if (userExamPapersList1.size() == 0) {
+//                examPapers.setState(9);
+//            } else {
+//                examPapers.setState(userExamPapersList1.get(0).getState());
+//            }
+//
+//        }
+//        dto.setExamPapersList(examPapersList);
+//        return dto;
+    }
     /**
      * 用户考试成绩详情,包括答题卡,试题(包含正确答案和解析)
      *
@@ -999,8 +1090,15 @@ public class ExamServiceImpl extends ServiceImpl<ExamMapper, Exam> implements IE
      * @return
      */
     @Override
-    public UserExamDTO userExamResultDetails(String paperId) {
-        UserExamDTO userExamDTO = userExamResultDetails(paperId, true, true, false, true);
+    public UserExamDTO userExamResultDetails(String examId,String paperId) {
+        UserExamDTO userExamDTO = userExamResultDetails(examId,paperId, true, true, false, true);
+        //设置单选题/多选题/判断题的答案tag
+        setAnswerTag(userExamDTO);
+        return userExamDTO;
+    }
+    @Override
+    public UserExamDTO ybuserExamResultDetails(String examId,String paperId) {
+        UserExamDTO userExamDTO = ybuserExamResultDetails(examId,paperId, true, true, false, true);
         //设置单选题/多选题/判断题的答案tag
         setAnswerTag(userExamDTO);
         return userExamDTO;

+ 2 - 1
web/src/main/java/com/ynfy/buss/exam/userexam/mapper/UserExamMapper.java

@@ -36,7 +36,8 @@ public interface UserExamMapper extends BaseMapper<UserExam> {
      * @param paperId
      * @return
      */
-    List<UserExam> listUserExamYueJuans(@Param("paperId") String paperId);
+    List<UserExam> listUserExamYueJuans(@Param("examId")String examId,@Param("paperId") String paperId);
+    List<UserExam> yblistUserExamYueJuans(@Param("examId")String examId,@Param("paperId") String paperId);
 
 
     IPage<UserExam> selectPageList(IPage<UserExam> page, @Param("userExam") UserExam userExam);

+ 32 - 20
web/src/main/java/com/ynfy/buss/exam/userexam/mapper/xml/UserExamMapper.xml

@@ -259,21 +259,6 @@
                e.leave_time,
                e.exam_result_showtype,
                e.show_deadline,
-               ueq.ID as ueq_id,
-               ueq.user_exam_id,
-               ueq.question_id,
-               ueq.question_type,
-               ueq.sort,
-               ueq.question_score,
-               ueq.answered,
-               ueq.is_right,
-               ueq.answer,
-               ueq.question_index,
-               ueq.actual_score,
-               ueq.can_miss_option,
-               ueq.can_blank_option,
-               ueq.child,
-               ueq.parent_question_id,
                user.realname as realname
         FROM (SELECT ue.id,
                      ue.user_id,
@@ -295,13 +280,9 @@
                      ue.preview_user
               from user_exam ue
                        LEFT JOIN user_exam_papers uep on ue.id=uep.user_exam_id
-              where uep.state='1' and uep.paper_id=#{paperId}) ue
+              where uep.state='1' and uep.paper_id=#{paperId} and ue.exam_id=#{examId}) ue
                  LEFT JOIN exam e ON ue.exam_id = e.id
-                 LEFT JOIN user_exam_question ueq ON ue.ID = ueq.user_exam_id and ue.paper_id=ueq.paper_id
                  LEFT JOIN sys_user user ON user.ID = ue.user_id
-
-        ORDER BY ueq.question_type,
-            ueq.sort
     </select>
 <!-- <select id="listUserExam" resultMap="userExamMap">-->
 <!--        SELECT ue.id,-->
@@ -428,5 +409,36 @@
         </where>
         ORDER BY ue.commit_time DESC
     </select>
+    <select id="yblistUserExamYueJuans" resultType="com.ynfy.buss.exam.userexam.entity.UserExam">
+        SELECT ue.id,
+               ue.user_id,
+               ue.exam_id,
+               ue.paper_id,
+               ue.user_time,
+               ue.user_score,
+               ue.commit_time,
+               ue.state,
+               ue.limit_time,
+               ue.qualify_score,
+               ue.total_score,
+               ue.passed,
+               ue.create_time,
+               ue.has_subjective,
+               ue.subjective_score,
+               ue.objective_score,
+               ue.preview_time,
+               ue.preview_user,
+               e.title as exam_title,
+               e.leave_on,
+               e.total_leave_times,
+               e.leave_time,
+               e.exam_result_showtype,
+               e.show_deadline,
+               user.realname as realname
+        FROM user_exam ue
+                 LEFT JOIN exam e ON ue.exam_id = e.id
+                 LEFT JOIN sys_user user ON user.ID = ue.user_id
+        WHERE ue.exam_id = #{examId} and ue.paper_id=#{paperId} and ue.state='1'
+    </select>
 
 </mapper>

+ 2 - 1
web/src/main/java/com/ynfy/buss/exam/userexam/service/IUserExamService.java

@@ -77,7 +77,8 @@ public interface IUserExamService extends IService<UserExam> {
      * @param paperId
      * @return
      */
-    List<UserExam> listUserExamYueJuans(String paperId);
+    List<UserExam> listUserExamYueJuans(String examId,String paperId);
+    List<UserExam> yblistUserExamYueJuans(String examId,String paperId);
     /**
      * 根据条件分页查询
      */

+ 6 - 2
web/src/main/java/com/ynfy/buss/exam/userexam/service/impl/UserExamServiceImpl.java

@@ -133,8 +133,12 @@ public class UserExamServiceImpl extends ServiceImpl<UserExamMapper, UserExam> i
         return userExamMapper.listUserExamYueJuan(id,paperId);
     }
     @Override
-    public List<UserExam> listUserExamYueJuans(String paperId) {
-        return userExamMapper.listUserExamYueJuans(paperId);
+    public List<UserExam> listUserExamYueJuans(String examId,String paperId) {
+        return userExamMapper.listUserExamYueJuans(examId,paperId);
+    }
+    @Override
+    public List<UserExam> yblistUserExamYueJuans(String examId,String paperId) {
+        return userExamMapper.yblistUserExamYueJuans(examId,paperId);
     }
 
     /**