Forráskód Böngészése

考试新老合并

yuanjunhao 3 hete
szülő
commit
373c8c3041

+ 35 - 6
web/src/main/java/com/ynfy/buss/exam/exam/controller/ExamController.java

@@ -123,7 +123,6 @@ public class ExamController extends JeecgController<Exam, IExamService> {
         }
         return Result.OK("添加成功!");
     }
-
     /**
      * 编辑
      *
@@ -135,6 +134,25 @@ public class ExamController extends JeecgController<Exam, IExamService> {
     @RequiresPermissions("exam:edit")
     @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
     public Result<String> edit(@RequestBody Exam exam) {
+        //如果考试的试卷没有主观题,清空阅卷相关信息
+        if (!Objects.isNull(exam.getPaper()) && !Objects.isNull(exam.getPaper().getHasSubjective()) && !exam.getPaper().getHasSubjective()) {
+            exam.setReviewer(null);
+            exam.setReviewerType(null);
+        }
+        examService.updateById(exam);
+        return Result.OK("编辑成功!");
+    }
+    /**
+     * 编辑
+     *
+     * @param exam
+     * @return
+     */
+    @AutoLog(value = "考试-编辑")
+    @ApiOperation(value = "考试-编辑", notes = "考试-编辑")
+    @RequiresPermissions("exam:editPapers")
+    @RequestMapping(value = "/editPapers", method = {RequestMethod.PUT, RequestMethod.POST})
+    public Result<String> editPapers(@RequestBody Exam exam) {
         //如果考试的试卷没有主观题,清空阅卷相关信息
         if (!Objects.isNull(exam.getPaper()) && !Objects.isNull(exam.getPaper().getHasSubjective()) && !exam.getPaper().getHasSubjective()) {
             exam.setReviewer(null);
@@ -347,7 +365,7 @@ public class ExamController extends JeecgController<Exam, IExamService> {
     @ApiOperation(value = "考试-考试及试卷详情")
     @GetMapping(value = "/examPaperDetail")
     public Result<?> examPaperDetail(@RequestParam(name = "userExamId") String userExamId) {
-        return Result.ok(examService.examDetail(userExamId));
+        return Result.ok(examService.examDetailPapers(userExamId));
     }
     /**
      * 考试提交单个试卷
@@ -364,9 +382,9 @@ public class ExamController extends JeecgController<Exam, IExamService> {
             //开启下一套试卷
             LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
             UserExam userExam= examService.createExamPapers(user.getId(), userExamService.getById(dto.getUserExamId()).getExamId());
-        return Result.ok(examService.examDetail(userExam.getId()));
+        return Result.ok(examService.examDetailPapers(userExam.getId()));
         }else {
-            return Result.ok(examService.examDetail(dto.getUserExamId()));
+            return Result.ok(examService.examDetailPapers(dto.getUserExamId()));
         }
     }
     /**
@@ -388,9 +406,20 @@ public class ExamController extends JeecgController<Exam, IExamService> {
      */
     @ApiOperation(value = "考试-用户考试成绩详情")
     @GetMapping(value = "/userExamResultDetail")
-    public Result<?> userExamResultDetail(@RequestParam(name = "userExamId") String userExamId,@RequestParam(name = "paperId") String paperId) {
-        return Result.ok(examService.userExamResultDetail(userExamId,paperId));
+    public Result<?> userExamResultDetail(@RequestParam(name = "userExamId") String userExamId) {
+        return Result.ok(examService.userExamResultDetail(userExamId));
     }
+//    /**
+//     * 用户考试成绩详情,包括答题卡,试题(包含正确答案)
+//     *
+//     * @param userExamId
+//     * @return
+//     */
+//    @ApiOperation(value = "考试-用户考试成绩详情")
+//    @GetMapping(value = "/userExamResultDetail")
+//    public Result<?> userExamResultDetail(@RequestParam(name = "userExamId") String userExamId,@RequestParam(name = "paperId") String paperId) {
+//        return Result.ok(examService.userExamResultDetail(userExamId,paperId));
+//    }
     /**
      * 用户考试成绩详情,下一张试卷阅卷
      *

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

@@ -46,6 +46,7 @@ public interface IExamService extends IService<Exam> {
 
     UserExamDTO examDetail(String userExamId);
 
+    UserExamDTO examDetailPapers(String userExamId);
 
     void submitExam(ExamSubmitDTO dto);
 
@@ -58,7 +59,8 @@ public interface IExamService extends IService<Exam> {
      * @param userExamId
      * @return
      */
-    UserExamDTO userExamResultDetail(String userExamId,String paperId);
+    UserExamDTO userExamResultDetail(String userExamId);
+//    UserExamDTO userExamResultDetail(String userExamId,String paperId);
     /**
      * 用户考试成绩详情,
      *

+ 102 - 52
web/src/main/java/com/ynfy/buss/exam/exam/service/impl/ExamServiceImpl.java

@@ -215,10 +215,10 @@ public class ExamServiceImpl extends ServiceImpl<ExamMapper, Exam> implements IE
             wrapperpaper.eq(UserExamPapers::getUserExamId, userExam.getId())
                     .eq(UserExamPapers::getState, PaperState.ING);
             userExamPapersList=BeanContext.getApplicationContext().getBean(IUserExamPapersService.class).list(wrapperpaper);
-        if (userExamPapersList.size()>0){
+        if (!userExamPapersList.isEmpty()){
             throw new JeecgBootException("有正在进行的考试!");
         }
-            //获取已经考了几张试卷开始考下一张
+        //获取已经考了几张试卷开始考下一张
             paper=iPaperService.getById(examPapersList.get(iUserExamPapersService.UserExamIdAllUserExamPapers2(userExam.getId()).size()).getPaperId());
         }
 
@@ -712,6 +712,15 @@ public class ExamServiceImpl extends ServiceImpl<ExamMapper, Exam> implements IE
 
 
     /**
+     * 在线考试试卷详情,包括答题卡,试题(不包含正确答案和解析)  新
+     *
+     * @param userExamId
+     * @return
+     */
+    @Override
+    public UserExamDTO examDetailPapers(String userExamId) {
+        return examDetailPapers(userExamId, false, false, true, false);
+    } /**
      * 在线考试试卷详情,包括答题卡,试题(不包含正确答案和解析)
      *
      * @param userExamId
@@ -721,10 +730,40 @@ public class ExamServiceImpl extends ServiceImpl<ExamMapper, Exam> implements IE
     public UserExamDTO examDetail(String userExamId) {
         return examDetail(userExamId, false, false, true, false);
     }
-
     public UserExamDTO examDetail(String userExamId, boolean needAnswerFlag, boolean needAnalysis, boolean needClearBlankContent, boolean needRenderBlank) {
         UserExamDTO dto = new UserExamDTO();
         UserExam userExam = userExamService.listUserExam(userExamId);
+//        System.out.println("yyz显示提交"+userExam);
+        if (Objects.isNull(userExam)) {
+            throw new JeecgBootException("考试不存在!");
+        }
+        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;
+    }
+
+    public UserExamDTO examDetailPapers(String userExamId, boolean needAnswerFlag, boolean needAnalysis, boolean needClearBlankContent, boolean needRenderBlank) {
+        UserExamDTO dto = new UserExamDTO();
+        UserExam userExam = userExamService.listUserExamPapers(userExamId);
         //显示试卷详情
         if (Objects.isNull(userExam)) {
             throw new JeecgBootException("考试不存在!");
@@ -908,12 +947,25 @@ public class ExamServiceImpl extends ServiceImpl<ExamMapper, Exam> implements IE
      * @return
      */
     @Override
-    public UserExamDTO userExamResultDetail(String userExamId,String paperId) {
-        UserExamDTO userExamDTO = userExamResultDetail(userExamId,paperId, true, true, false, true);
+    public UserExamDTO userExamResultDetail(String userExamId) {
+        UserExamDTO userExamDTO = examDetail(userExamId, true, true, false, true);
         //设置单选题/多选题/判断题的答案tag
         setAnswerTag(userExamDTO);
         return userExamDTO;
     }
+//    /**
+//     * 用户考试成绩详情,包括答题卡,试题(包含正确答案和解析)
+//     *
+//     * @param userExamId
+//     * @return
+//     */
+//    @Override
+//    public UserExamDTO userExamResultDetail(String userExamId,String paperId) {
+//        UserExamDTO userExamDTO = userExamResultDetail(userExamId,paperId, true, true, false, true);
+//        //设置单选题/多选题/判断题的答案tag
+//        setAnswerTag(userExamDTO);
+//        return userExamDTO;
+//    }
     /**
      * 用户考试成绩详情,包括答题卡,试题(包含正确答案和解析)
      *
@@ -1117,7 +1169,7 @@ public class ExamServiceImpl extends ServiceImpl<ExamMapper, Exam> implements IE
                return userExamPapersLists.get(0).getPaperId();
            }
         }
-        UserExam userExam = userExamService.listUserExam(dto.getUserExamId());
+        UserExam userExam = userExamService.listUserExamPapers(dto.getUserExamId());
         if (Objects.isNull(userExam)) {
             throw new JeecgBootException("考试记录不存在");
         }
@@ -1163,59 +1215,58 @@ public class ExamServiceImpl extends ServiceImpl<ExamMapper, Exam> implements IE
         return biaozhi;
     }
     /**
-     * 单个试卷交卷
+     * 交卷
      *
      * @param dto
      */
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void submitExam(ExamSubmitDTO dto) {
-//        if (StringUtils.isEmpty(dto.getUserExamId())) {
-//            throw new JeecgBootException("考试ID不能为空");
-//        }
-//        UserExam userExam = userExamService.listUserExam(dto.getUserExamId());
-//        if (Objects.isNull(userExam)) {
-//            throw new JeecgBootException("考试记录不存在");
-//        }
-//        if (PaperState.FINISHED.equals(userExam.getState()) || PaperState.WAIT_OPT.equals(userExam.getState())) {
-//            throw new JeecgBootException("该考试已经交卷,不允许重复交卷");
-//        }
-//        List<UserExamQuestion> userExamQuestionList = userExam.getUserExamQuestionList();
-//        if (CollectionUtils.isEmpty(userExamQuestionList)) {
-//            throw new JeecgBootException("考题查询失败");
-//        }
-//
-//        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(dto.getUserExamId(), rootQuestionList, childQuestionList, true, false, true, false, false);
-//        }
-//        //如果没有作答
-//        List<ExamAnswerDTO> examAnswers = dto.getExamAnswers();
-//        if (CollectionUtils.isEmpty(examAnswers)) {
-//            updateUserExamAndResult(0, userExam);
-//            //没作答时需要更新客观题
-//            updateObjectiveQuestion(userExamQuestionList);
-//        } else {
-//            //有作答
-//            Map<Integer, UserExamQuestion> userExamQuestionMap = rootQuestionList.stream().collect(Collectors.toMap(UserExamQuestion::getQuestionIndex, a -> a, (k1, k2) -> k1));
-//
-//            //计算客观题得分
-//            double score = calcObjectiveScore(examAnswers, userExamQuestionMap, rootQuestionList);
-//            //更新用户考试信息和成绩
-//            updateUserExamAndResult(score, userExam);
-//        }
-//
-//        //异步删除自动交卷任务,清除redis缓存
-//        ThreadPoolUtil.getExecutor().execute(() -> {
-//            this.deleteAutoCommitJob(dto.getUserExamId());
-//            deleteCacheAnswer(dto.getUserExamId()+dto.getPaperId());
-//        });
+        if (StringUtils.isEmpty(dto.getUserExamId())) {
+            throw new JeecgBootException("考试ID不能为空");
+        }
+        UserExam userExam = userExamService.listUserExam(dto.getUserExamId());
+        if (Objects.isNull(userExam)) {
+            throw new JeecgBootException("考试记录不存在");
+        }
+        if (PaperState.FINISHED.equals(userExam.getState()) || PaperState.WAIT_OPT.equals(userExam.getState())) {
+            throw new JeecgBootException("该考试已经交卷,不允许重复交卷");
+        }
+        List<UserExamQuestion> userExamQuestionList = userExam.getUserExamQuestionList();
+        if (CollectionUtils.isEmpty(userExamQuestionList)) {
+            throw new JeecgBootException("考题查询失败");
+        }
+        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(dto.getUserExamId(), rootQuestionList, childQuestionList, true, false, true, false, false);
+        }
+        //如果没有作答
+        List<ExamAnswerDTO> examAnswers = dto.getExamAnswers();
+        if (CollectionUtils.isEmpty(examAnswers)) {
+            updateUserExamAndResult(0, userExam);
+            //没作答时需要更新客观题
+            updateObjectiveQuestion(userExamQuestionList);
+        } else {
+            //有作答
+            Map<Integer, UserExamQuestion> userExamQuestionMap = rootQuestionList.stream().collect(Collectors.toMap(UserExamQuestion::getQuestionIndex, a -> a, (k1, k2) -> k1));
+            //计算客观题得分
+            double score = calcObjectiveScore(examAnswers, userExamQuestionMap, rootQuestionList);
+            //更新用户考试信息和成绩
+            updateUserExamAndResult(score, userExam);
+        }
+
+        //异步删除自动交卷任务,清除redis缓存
+        ThreadPoolUtil.getExecutor().execute(() -> {
+            this.deleteAutoCommitJob(dto.getUserExamId());
+            deleteCacheAnswer(dto.getUserExamId());
+        });
     }
 
+
     /**
      * 没作答时需要更新客观题
      *
@@ -1355,7 +1406,6 @@ public class ExamServiceImpl extends ServiceImpl<ExamMapper, Exam> implements IE
      */
     public double calcObjectiveScore(List<ExamAnswerDTO> examAnswers, Map<Integer, UserExamQuestion> userExamQuestionMap, List<UserExamQuestion> rootQuestionList) {
         if (!CollectionUtils.isEmpty(examAnswers)) {
-            System.out.println("---------------------------------------");
             //对比/计算
             for (ExamAnswerDTO o : examAnswers) {
                 //根据题型计算客观题得分

+ 40 - 0
web/src/main/java/com/ynfy/buss/exam/userexam/controller/UserExamController.java

@@ -57,7 +57,47 @@ public class UserExamController extends JeecgController<UserExam, IUserExamServi
         IPage<UserExam> pageList = userExamService.selectPageList(page, userExam);
         return Result.OK(pageList);
     }
+    /**
+     * 考生查询自己的考试记录
+     *
+     * @param userExam
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    @ApiOperation(value = "用户考试-分页列表查询", notes = "用户考试-分页列表查询")
+    @GetMapping(value = "/listPapers")
+    public Result<IPage<UserExam>> queryPageListPapers(UserExam userExam,
+                                                 @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                 @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                                 HttpServletRequest req) {
+        Page<UserExam> page = new Page<>(pageNo, pageSize);
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        userExam.setUserId(user.getId());
+        IPage<UserExam> pageList = userExamService.selectPageListPapers(page, userExam);
+        return Result.OK(pageList);
+    }
 
+    /**
+     * 阅卷查询考试记录,考试查看考情调用
+     *
+     * @param userExam
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    @AutoLog(value = "阅卷查询考试记录,考试查看考情调用")
+    @GetMapping(value = "/examRecordListPapers")
+    public Result<IPage<UserExam>> examRecordListPapers(UserExam userExam,
+                                                  @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                  @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                                  HttpServletRequest req) {
+        Page<UserExam> page = new Page<>(pageNo, pageSize);
+        IPage<UserExam> pageList = userExamService.selectPageListPapers(page, userExam);
+        return Result.OK(pageList);
+    }
     /**
      * 阅卷查询考试记录,考试查看考情调用
      *

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

@@ -22,6 +22,7 @@ public interface UserExamMapper extends BaseMapper<UserExam> {
      * @return
      */
     UserExam listUserExam(String id);
+    UserExam listUserExamPapers(String id);
     /**
      * 查询阅卷用户考试信息及试题
      *
@@ -39,6 +40,7 @@ public interface UserExamMapper extends BaseMapper<UserExam> {
 
 
     IPage<UserExam> selectPageList(IPage<UserExam> page, @Param("userExam") UserExam userExam);
+    IPage<UserExam> selectPageListPapers(IPage<UserExam> page, @Param("userExam") UserExam userExam);
 
 
 }

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

@@ -48,6 +48,55 @@
         </collection>
     </resultMap>
     <select id="listUserExam" resultMap="userExamMap">
+        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,
+               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 user_exam ue
+                 LEFT JOIN exam e ON ue.exam_id = e.id
+                 LEFT JOIN user_exam_question ueq ON ue.ID = ueq.user_exam_id
+                 LEFT JOIN sys_user user ON user.ID = ue.user_id
+        WHERE ue.id = #{id}
+        ORDER BY ueq.question_type,
+            ueq.sort
+    </select>
+    <select id="listUserExamPapers" resultMap="userExamMap">
         SELECT ue.id,
                ue.user_id,
                ue.exam_id,
@@ -303,7 +352,7 @@
 <!--        ORDER BY ueq.question_type,-->
 <!--                 ueq.sort-->
 <!--    </select>-->
-    <select id="selectPageList" resultType="com.ynfy.buss.exam.userexam.entity.UserExam">
+    <select id="selectPageListPapers" resultType="com.ynfy.buss.exam.userexam.entity.UserExam">
         SELECT
         ue.*,
         u.realname as realName
@@ -354,29 +403,30 @@
         </where>
         ORDER BY ue.commit_time DESC
     </select>
-<!--    <select id="selectPageList" resultType="com.ynfy.buss.exam.userexam.entity.UserExam">-->
-<!--        SELECT-->
-<!--            ue.*,-->
-<!--            u.realname as realName-->
-<!--        FROM user_exam ue-->
-<!--        LEFT JOIN sys_user u on ue.user_id = u.id-->
-<!--        <where>-->
-<!--            <if test="userExam.realName != null and userExam.realName != ''">-->
-<!--                AND u.realname like concat('%', #{userExam.realName}, '%')-->
-<!--            </if>-->
-<!--            <if test="userExam.userId != null and userExam.userId != ''">-->
-<!--                AND ue.user_id = #{userExam.userId}-->
-<!--            </if>-->
-<!--            <if test="userExam.examId != null and userExam.examId != ''">-->
-<!--                AND ue.exam_id = #{userExam.examId}-->
-<!--            </if>-->
-<!--            <if test="userExam.state != null">-->
-<!--                AND ue.state = #{userExam.state}-->
-<!--            </if>-->
-<!--            <if test="userExam.passed != null">-->
-<!--                AND ue.passed = #{userExam.passed}-->
-<!--            </if>-->
-<!--        </where>-->
-<!--        ORDER BY ue.commit_time DESC-->
-<!--    </select>-->
+    <select id="selectPageList" resultType="com.ynfy.buss.exam.userexam.entity.UserExam">
+        SELECT
+        ue.*,
+        u.realname as realName
+        FROM user_exam ue
+        LEFT JOIN sys_user u on ue.user_id = u.id
+        <where>
+            <if test="userExam.realName != null and userExam.realName != ''">
+                AND u.realname like concat('%', #{userExam.realName}, '%')
+            </if>
+            <if test="userExam.userId != null and userExam.userId != ''">
+                AND ue.user_id = #{userExam.userId}
+            </if>
+            <if test="userExam.examId != null and userExam.examId != ''">
+                AND ue.exam_id = #{userExam.examId}
+            </if>
+            <if test="userExam.state != null">
+                AND ue.state = #{userExam.state}
+            </if>
+            <if test="userExam.passed != null">
+                AND ue.passed = #{userExam.passed}
+            </if>
+        </where>
+        ORDER BY ue.commit_time DESC
+    </select>
+
 </mapper>

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

@@ -63,6 +63,7 @@ public interface IUserExamService extends IService<UserExam> {
      * @return
      */
     UserExam listUserExam(String id);
+    UserExam listUserExamPapers(String id);
     /**
      * 查询阅卷用户考试信息及试题
      *
@@ -80,6 +81,7 @@ public interface IUserExamService extends IService<UserExam> {
     /**
      * 根据条件分页查询
      */
+    IPage<UserExam> selectPageListPapers(IPage<UserExam> page, UserExam userExam);
     IPage<UserExam> selectPageList(IPage<UserExam> page, UserExam userExam);
 
     /**

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

@@ -117,6 +117,15 @@ public class UserExamServiceImpl extends ServiceImpl<UserExamMapper, UserExam> i
     @Override
     public UserExam listUserExam(String id) {
         return userExamMapper.listUserExam(id);
+    }  /**
+     * 查询用户考试信息及试题
+     *
+     * @param id
+     * @return
+     */
+    @Override
+    public UserExam listUserExamPapers(String id) {
+        return userExamMapper.listUserExamPapers(id);
     }
 
     @Override
@@ -134,6 +143,12 @@ public class UserExamServiceImpl extends ServiceImpl<UserExamMapper, UserExam> i
     @Override
     public IPage<UserExam> selectPageList(IPage<UserExam> page, UserExam userExam) {
         return userExamMapper.selectPageList(page, userExam);
+    }   /**
+     * 根据条件分页查询
+     */
+    @Override
+    public IPage<UserExam> selectPageListPapers(IPage<UserExam> page, UserExam userExam) {
+        return userExamMapper.selectPageListPapers(page, userExam);
     }
 
     /**