| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- package com.nju.edu.eval.service;
- import com.nju.edu.eval.data.entity.Exam;
- import com.nju.edu.eval.model.vo.exam.*;
- import com.nju.edu.eval.model.vo.question.QuestionAndScoreVO;
- import java.util.Date;
- import java.util.List;
- import java.util.Optional;
- /**
- * @author mars
- */
- public interface ExamService {
- /**
- * 创建考试
- * @param examVO exam的vo
- * @param creatorId 创建考试者id
- * @return 邀请码,题目等内容
- */
- NewExamVO createExam(CreateExamVO examVO, Integer creatorId);
- /**
- * 获得所有考试
- * @param userId
- * @param pageSize
- * @param pageNum
- * @return 考试列表
- */
- ExamListAndNumVO getExamList(int userId, int pageSize, int pageNum);
- /**
- * 获得某个时间段内的考试
- * @param startTime 开始时间
- * @param endTime 结束时间
- * @return 考试信息列表
- * @see ExamInfoVO
- */
- List<ExamInfoVO> getExamListOfTimeRange(Date startTime, Date endTime);
- /**
- * 根据id获得考试
- * @param id 考试id
- * @return 该id对应的考试
- */
- ExamVO getExamById(Integer id);
- /**
- * 获得id对应考试的题目和分值
- * @param id 考试Id
- * @return 题目id 和 分值映射的list
- */
- QuestionAndScoreVO getExamQuestionAndScoreById(Integer id);
- /**
- * 获得某次考试的代码题列表
- * @param id 考试id
- * @return 代码题id列表
- */
- List<String> getCodeQuestionIdsByExamId(Integer id);
- /**
- * 为考试更新题目
- * @param examId 考试Id
- * @param questionScoreMapVO 题目和分值的映射
- */
- void updateQuestionsOfExam(Integer examId, QuestionScoreMapVO questionScoreMapVO);
- /**
- * 延长考试时间
- * @param examId 考试id
- * @param endTime 延长后的时间
- * @return exam的optional值
- */
- Optional<Exam> extendExamTime(Integer examId, Date endTime);
- /**
- * 获得某学生参加的考试相关信息
- * @param id 学生id
- * @param pageSize
- * @param pageNum
- * @param state
- * @return
- */
- ExamListAndNumVO getExamsByCurrentStudent(Integer id, int pageSize, int pageNum, int state);
- /**
- * 获得由老师或者HR创建的考试
- * @param id 老师/HR id
- * @param pageSize
- * @param pageNum
- * @param state
- * @return
- */
- ExamListAndNumVO getExamsCreatedByCurrentTeacherOrHR(Integer id, int pageSize, int pageNum, int state);
- /**
- * 学生通过邀请码参加考试
- * @param userId 学生id
- * @param examId 考试id
- * @param inviteCodeInput 输入的邀请码
- * @return 是否成功加入考试
- */
- boolean takeExam(Integer userId, Integer examId, String inviteCodeInput);
- /**
- * 给某次考试设置题目
- * @param examId 考试Id
- * @param sampleExamPaperId 样卷Id
- */
- void setExamQuestionsBySampleExamPaper(int examId, int sampleExamPaperId);
- }
|