package com.qmth.teachcloud.report.business.service;

import com.qmth.teachcloud.report.business.bean.result.*;
import com.qmth.teachcloud.report.business.entity.TAExamCourse;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;

/**
 * @Description: 教研公共服务
 * @Param:
 * @return:
 * @Author: wangliang
 * @Date: 2021/6/4
 */
public interface ReportCommonService {

    /**
     * 学院学科报表查询科目信息
     *
     * @param examId
     * @param courseCode
     * @param collegeId
     * @return
     */
    CourseInfoResult findCourseInfo(Long examId, String courseCode, Long collegeId);

    /**
     * 学院学科报表科目描述
     *
     * @param examId
     * @param courseCode
     * @param collegeId
     * @return
     */
    CollegeAndSchoolGradeDistributionResult findCourseDistribution(Long examId, String courseCode, Long collegeId);

    /**
     * 开课学院分数段
     *
     * @param examId
     * @param courseCode
     * @param collegeId
     * @param filter
     * @return
     */
    List<SurveyTeacherGradeDistributionResult> surveyTeacherDistribution(Long examId, String courseCode, Long collegeId, boolean filter);

    /**
     * 学院学科报表查询维度
     *
     * @param examId
     * @param courseCode
     * @param collegeId
     * @param teacherId
     * @return
     */
    DimensionAnalyzeResult findDimensionInfo(Long examId, String courseCode, Long collegeId, Long teacherId);

    /**
     * 查找题目相关
     *
     * @param examId
     * @param courseCode
     * @param collegeId
     * @param teacherId
     * @return
     */
    QuestionInfoResult findSituationOfQuestions(Long examId, String courseCode, Long collegeId, Long teacherId);

    /**
     * 查找老师信息
     *
     * @param examId
     * @param courseCode
     * @param collegeId
     * @return
     */
    TeacherInfoListResult findTeacherInfo(Long examId, String courseCode, Long collegeId);

    /**
     * 查找题目信息
     *
     * @param examId
     * @param courseCode
     * @param collegeId
     * @return
     */
    QuestionListResult findQuestionInfo(Long examId, String courseCode, Long collegeId);

    /**
     * 取总体平均分
     *
     * @param schoolId
     * @param courseCode
     * @param examId
     * @param filter
     * @return
     */
    SurveyTeacherExamCourseResult findAvgScore(Long schoolId, String courseCode, Long examId, boolean filter);

    /**
     * 武汉大学退出
     */
    public void whuLogout() throws IOException;
}
