소스 검색

feat: 增加获取学生参加考试列表的接口

yhd12345 3 년 전
부모
커밋
8c8bd92366

+ 2 - 0
src/main/java/com/nju/edu/eval/service/ExamService.java

@@ -150,4 +150,6 @@ public interface ExamService {
      * @param userId 用户id
      */
     List<ExamVO> getExamByCourseIdAndIsHiddenFalse (Integer courseId, Integer userId);
+
+    ExamListAndNumVO getExamLIstByCurrentStudent(Integer id);
 }

+ 17 - 0
src/main/java/com/nju/edu/eval/service/serviceImpl/ExamServiceImpl.java

@@ -333,4 +333,21 @@ public class ExamServiceImpl implements ExamService {
             return examVOList;
         }
     }
+
+    @Override
+    public ExamListAndNumVO getExamLIstByCurrentStudent(Integer id) {
+        User student = userDao.findById(id).orElse(null);
+        if (student != null) {
+            List<Exam> exams = student.getExams();
+
+            return new ExamListAndNumVO(
+                    exams.stream()
+                            .sorted(Comparator.comparing(Exam::getStartTime).reversed())
+                            .map(ExamConvertor::convertToJoinedVO).collect(Collectors.toList()),
+                    //输出总个数,用于前端分页
+                    (int) exams.stream().filter(exam -> exam.getIsHidden() == 0).count());
+        } else {
+            throw new MyServiceException("A0201", "用户账号不存在");
+        }
+    }
 }

+ 10 - 0
src/main/java/com/nju/edu/eval/web/controller/ExamController.java

@@ -117,6 +117,16 @@ public class ExamController {
         return Response.buildSuccess(examService.getExamsByCurrentStudent(user.getId(), pageSize, pageNum, state));
     }
 
+
+    @ApiOperation("获得学生参加的考试列表")
+    @ApiParam()
+    @GetMapping("/student/examList")
+    @Authorized()
+    public Response getExamListByCurrentStudent(@ApiIgnore User user){
+        return Response.buildSuccess(examService.getExamLIstByCurrentStudent(user.getId()));
+
+    }
+
     @ApiOperation("获得老师/HR创建的考试")
     @GetMapping("/teacher/exams")
     @Authorized(roles = {UserRole.TEACHER, UserRole.HR})