package com.ycl.jxkg.service; import com.ycl.jxkg.domain.entity.Exam; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.jxkg.base.Result; import com.ycl.jxkg.domain.form.AddTimeForm; import com.ycl.jxkg.domain.form.ExamForm; import com.ycl.jxkg.domain.form.ForceSubmitForm; import com.ycl.jxkg.domain.query.ExamQuery; import com.ycl.jxkg.domain.vo.ExamSubmitVO; import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperMarkVO; import com.ycl.jxkg.domain.vo.StartExamVO; import java.util.List; /** * 考试 服务类 * * @author xp * @since 2024-06-11 */ public interface ExamService extends IService { /** * 添加 * @param form * @return */ Result add(ExamForm form); /** * 修改 * @param form * @return */ Result update(ExamForm form); /** * 批量删除 * @param ids * @return */ Result remove(List ids); /** * id删除 * @param id * @return */ Result removeById(String id); /** * 分页查询 * @param query * @return */ Result page(ExamQuery query); /** * 根据id查找 * @param id * @return */ Result detail(Integer id); /** * 列表 * @return */ Result all(ExamQuery query); /** * 主动提交试卷 * * @param submitData * @return */ Result examSubmit(StartExamVO submitData); /** * 定时保存试卷,防止考试崩溃 * * @param submitData * @return */ Result timingSubmit(StartExamVO submitData); /** * 获取阅卷信息 * * @param id * @return */ Result getMarkResultInfo(Integer id); /** * 学生端分页 * * @param query * @return */ Result studentPage(ExamQuery query); /** * 学生端开始考试 * * @param id * @return */ Result start(Integer id); /** * 获取某个人的答卷 * * @param examId * @param userId * @return */ Result getMarkPaperInfo(Integer examId, Integer userId); /** * 提交阅卷 * * @param examPaperMark * @return */ Result submitMarkPaper(ExamPaperMarkVO examPaperMark); /** * 根据考试id获取监控列表 * @param query 考试id * @return 监控列表 */ Result monitorList(ExamQuery query); /** * 添加考试时间 * * @param form * @return */ Result addTime(AddTimeForm form); /** * 强制提交试卷 * * @param form * @return */ Result forceSubmit(ForceSubmitForm form); /** * 作废 * * @param id * @return {@link Result } * @author */ Result cancel(Integer id); /** * 恢复 * * @param id * @return {@link Result } * @author */ Result recover(Integer id); }