package com.xhkjedu.sapi.mapper.analyze;

import com.xhkjedu.sapi.vo.analyze.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @ClassName SchoolPeopleMapper
 * Description TODO 资源概况
 * Author WN
 * Date 2020/8/8 11:41
 **/
@Repository
public interface SchoolResourceMapper {
    //资源总数量
    SchoolResourceNumVo getSchoolResourceNum(Integer schoolid);

    //资源分布--资源分类
    List<SchoolResourceTypeNumVo> listSchoolResourceTypeNum(Integer schoolid);

    //资源分半--资源格式
    List<SchoolResourceClassNumVo> listSchoolResourceClassNum(Integer schoolid);

    //获取所有资源resourcetype值
    List<Integer> listAllResourceType();

    //资源上传量
    List<SchoolResourceUploadNumVo> listSchoolResourceUploadNum(Integer schoolid, Long starttime, Long endtime);

    //资源排行榜
    List<SchoolResourceRankVo> listSchoolResourceRanks(Integer schoolid, String subjectid, Integer gradeid, Long starttime, Long endtime);

    //结构性试题统计--科目下试题数量
    List<SchoolResourceQuestionVo> listSchoolResourceQuestion(@Param("params") SchoolParams params);
    //结构性试题统计--年级下试题数量
    List<SchoolResourceQuestionVo> listSchoolResourceQuestionGrade(@Param("params") SchoolParams params);

    //结构性试题统计--教师上传试题排行榜
    List<SchoolResourceQuestionRankVo> listSchoolResourceQuestionRank(@Param("params") SchoolParams params);

    //本月新增情况
    List<SchoolAddNumVo> listMonthAdd(Integer schoolid);

    //按年级资源统计列表
    List<SchoolResourceGradeNumVo> listSchoolResourceGrade(Integer schoolid);

    //按科目资源统计列表
    List<SchoolResourceSubjectNumVo> listSchoolResourceSubject(Integer schoolid);

    //资源上传详情排行
    List<SchoolUserResourceNumVo> listSchoolResourceRank2(@Param("params") SchoolParams params);

    //结构性试题数量统计
    SchoolQuestionVo getSchoolQuestionNum(Integer schoolid);

    //获取按年级试题上传变化列表
    List<SchoolQuestionUploadNumVo> listSchoolGQuestionUpload(Integer schoolid, Long starttime, Long endtime);

    //获取按科目试题上传变化列表
    List<SchoolQuestionUploadNumVo> listSchoolSQuestionUpload(Integer schoolid, Long starttime, Long endtime);
}
