package com.qmth.themis.business.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qmth.themis.business.bean.StudentParams;
import com.qmth.themis.business.bean.admin.StudentPhotoUploadResponseBean;
import com.qmth.themis.business.dto.response.TEStudentDto;
import com.qmth.themis.business.dto.response.TEStudentExamRecordDto;
import com.qmth.themis.business.dto.response.TEStudentExamRecordVideoDto;
import com.qmth.themis.business.entity.TEStudent;
import com.qmth.themis.business.enums.MonitorVideoSourceEnum;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;

/**
 * @Description: 学生档案 服务类
 * @Param:
 * @return:
 * @Author: wangliang
 * @Date: 2020/6/25
 */
public interface TEStudentService extends IService<TEStudent> {

    /**
     * 学生档案查询
     *
     * @param iPage
     * @param identity
     * @param name
     * @param enable
     * @param orgId
     * @param photo
     * @return
     */
    public IPage<TEStudentDto> studentQuery(IPage<Map> iPage, String identity, String name, Integer enable, Long orgId, Boolean photo);

    /**
     * 学生考试记录查询
     *
     * @param iPage
     * @param studentId
     * @param examId
     * @return
     */
    public IPage<TEStudentExamRecordDto> studentExamRecordQuery(IPage<Map> iPage, Long studentId, Long examId);

    /**
     * 底照上传
     *
     * @param orgId
     * @param identity
     * @param file
     * @param md5
     * @param cover
     * @return
     */
    public StudentPhotoUploadResponseBean photoUpload(Long orgId, String identity, MultipartFile file, String md5, Boolean cover);

    /**
     * 修改学生密码
     *
     * @param studentParams
     */
    public void updatePwd(StudentParams studentParams);

    /**
     * 视频监考回放查询接口
     *
     * @param iPage
     * @param examRecordId
     * @param monitorRecord
     * @param log
     * @return
     */
    public TEStudentExamRecordVideoDto examRecordVideoQuery(IPage<Map> iPage, Long examRecordId, MonitorVideoSourceEnum monitorRecord, Boolean log);
}
