package com.qmth.themis.business.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qmth.themis.business.bean.backend.*;

import java.util.List;
import java.util.Map;

public interface TIeReportService {
    public Map<String, Object> examView(Long examId, Long examActivityId, String roomCode, String courseCode,
                                        String name, String identity);

    public IPage examViewCount(Long examId, Long examActivityId, String roomCode, String courseCode, String name,
                               String identity, int pageNumber, int pageSize);

    public IPage examDeficiencyList(Long examId, Long examActivityId, String roomCode, String courseCode, String name,
                                    String identity, int pageNumber, int pageSize);

    public IPage examExceptionList(Long examId, Long examActivityId, String roomCode, String courseCode, String name,
                                   String identity, int pageNumber, int pageSize);

    public List<ExamExceptionDetailListBean> examExceptionDetailList(Long examStudentId);

    public IPage examReexamList(Long examId, Long examActivityId, String roomCode, String courseCode, String name,
                                String identity, int pageNumber, int pageSize);

    public IPage examBreachList(Long examId, Long examActivityId, String roomCode, String courseCode, String name,
                                String identity, int pageNumber, int pageSize);

    public List<ExamBreachDetailListBean> examBreachListDetail(Long examStudentId);

    public IPage examRevokeBreachList(Long examId, Long examActivityId, String roomCode, String courseCode,
                                      String name, String identity, int pageNumber, int pageSize);

    public List<ExamBreachDetailListBean> examRevokeBreachListDetail(Long examStudentId);

    public IPage examStudentLogList(Long examId, Long examActivityId, String roomCode, String courseCode, String name,
                                    String identity, int pageNumber, int pageSize);

    public List<ExamStudentLogDetailListBean> examStudentLogListDetail(Long examStudentId);

    /**
     * 在线巡考报表接口
     *
     * @param examId
     * @param userId
     * @return
     */
    public List<InvigilateListPatrolReportBean> patrolReport(Long examId, Long userId);

    /**
     * 考情监控-人数
     *
     * @return
     */
    public ExaminationMonitorCountBean examinationMonitorCount();

    public ExaminationMonitorWarnDistributionBean warnDistribution();

    public List<ExaminationMonitorHourWarnCountBean> warnTrend();

    public List<ExaminationMonitorWarnMsgBean> warnMsg();
}
