You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
spring-boot-online-exam/backend/src/main/java/lsgwr/exam/service/ExamService.java

123 lines
3.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/***********************************************************
* @Description : 考试接口
* @author : 梁山广(Laing Shan Guang)
* @date : 2019-05-28 08:05
* @email : liangshanguang2@gmail.com
***********************************************************/
package lsgwr.exam.service;// 定义了接口所属的包名
import lsgwr.exam.entity.Exam;// 导入了实体类Exam可能包含考试的基本信息
import lsgwr.exam.entity.ExamRecord;// 导入了实体类ExamRecord可能包含考试记录的详细信息
import lsgwr.exam.vo.*;// 导入了VO对象VO是值对象用于在不同层之间传递数据
import java.util.HashMap;// 导入了HashMap用于存储键值对
import java.util.List;// 导入了List用于存储一系列对象
// 定义了一个名为ExamService的接口
public interface ExamService {
/**
* 获取所有的问题列表
*/
List<QuestionVo> getQuestionAll();
/**
* 根据前端传过来的问题实体更新问题和选项
*
* @param questionVo 问题实体
*/
QuestionVo updateQuestion(QuestionVo questionVo);
/**
* 问题创建
*
* @param questionCreateVo 问题创建实体类
*/
void questionCreate(QuestionCreateVo questionCreateVo);
/**
* 获取问题的选项、分类和难度的下拉列表
*
* @return 选项、分类和难度的封装对象
*/
QuestionSelectionVo getSelections();
/**
* 获取问题详情
*
* @param id 问题的id
* @return 问题详情的封装VO
*/
QuestionDetailVo getQuestionDetail(String id);
/**
* 获取全部考试的列表
*/
List<ExamVo> getExamAll();
/**
* 获取所有问题的下拉列表,方便前端创建考试时筛选
*
* @return 适配前端的问题下拉列表
*/
ExamQuestionTypeVo getExamQuestionType();
/**
* 根据前端组装的参数进行考试创建
*
* @param examCreateVo 前端组装的考试对象
* @param userId 用户id
* @return 创建好的考试
*/
Exam create(ExamCreateVo examCreateVo, String userId);
/**
* 获取考试卡片列表
*
* @return 考试卡片列表
*/
List<ExamCardVo> getExamCardList();
/**
* 根据考试的id获取考试的详情
*
* @param id exam表的主键
* @return 考试详情的封装的VO对象
*/
ExamDetailVo getExamDetail(String id);
/**
* 根据用户提交的作答信息进行判分
*
* @param userId 考试人
* @param examId 参与的考试
* @param answersMap 作答情况
* @return 本次考试记录
*/
ExamRecord judge(String userId, String examId, HashMap<String, List<String>> answersMap);
/**
* 根据用户id获取此用户的所有考试信息
*
* @param userId 用户id
* @return 该用户的所有考试记录
*/
List<ExamRecordVo> getExamRecordList(String userId);
/**
* 获取指定某次考试记录的详情
*
* @param recordId 考试记录的id
* @return 考试详情
*/
RecordDetailVo getRecordDetail(String recordId);
/**
* 更新考试
*
* @param examVo 获取所有考试的接口中返回的考试信息结构
* @param userId 当前的用户
* @return 更新后的考试详情
*/
Exam update(ExamVo examVo, String userId);
}