package com.xhkjedu.sstudy.mapper.resource;

import com.xhkjedu.base.TkMapper;
import com.xhkjedu.sstudy.model.resource.TGuide;
import com.xhkjedu.sstudy.vo.paper.AStudentPaperVo;
import com.xhkjedu.sstudy.vo.paper.AnalyzeSearchVo;
import com.xhkjedu.sstudy.vo.resource.GuideAnalyzeVo;
import com.xhkjedu.sstudy.vo.resource.GuideVo;
import com.xhkjedu.vo.system.UserVo;
import org.apache.ibatis.annotations.Param;

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

/**
 * @ClassName GuideMapper
 * Description TODO 学生预习
 * Author WN
 * Date 2021/10/20 10:36
 **/
public interface GuideMapper extends TkMapper<TGuide> {

    //学生预习列表--教师网页
    List<GuideVo> listGuidesForTeacherWeb(@Param("guide") TGuide guide,@Param("userVo") UserVo userVo);

    //学生预习列表教师网页端-我的
    List<GuideVo> listGuidesForTeacherWebMy(@Param("guide") TGuide guide);


    //学生预习列表--教师app
    List<Map> listGuidesForTeacherApp(@Param("guide") TGuide guide);

    //学生预习列表--学生网页端
    List<GuideVo> listGuidesForStuWeb(@Param("guide") TGuide guide);

    //学生预习列表--学生app
    List<Map> listGuidesForStuApp(@Param("guide") TGuide guide);

    //删除预习
    void deleteByGuideid(Integer guideid);

    //根据预习id获取预习详情
    GuideVo getGuideByGuideid(Integer guideid);

    //预习统计：年级下教师列表
    List<GuideAnalyzeVo> listUser(@Param("paper") AnalyzeSearchVo paper);

    /**
     * 预习统计：教师预习统计
     * @Param [paper]
     * @Author ywx
     * @Date 2020/9/28 11:42
     * @return com.xhkjedu.vo.resource.ResourceAnalyzeVo
     **/
    List<GuideAnalyzeVo> getPreviewAnalyze(@Param("paper") AnalyzeSearchVo paper);
    /**
     * 获取年级下教师发布学生预习列表
     * @Param [paper]
     * @Author ywx
     * @Date 2020/9/28 14:16
     * @return java.util.List<com.xhkjedu.vo.resource.ResourceAnalyzeVo>
     **/
    List<Map> listPreview(@Param("paper") AnalyzeSearchVo paper);

    //预习统计--按学生列表
    List<Map> listPreviewStuGrade(@Param("paper") AnalyzeSearchVo paper);

    //预习统计--按学生详情
    List<AStudentPaperVo> listPreviewStuDetail(@Param("paper") AnalyzeSearchVo paper);

    //预习统计--按学生导出
    List<AStudentPaperVo> listPreviewStuExport(@Param("paper") AnalyzeSearchVo paper);

    //预习关联班级
    List<Map> listGuideClassByGuide(@Param("guide") TGuide guide);

    //获取预习年份
    Integer getYearById(@Param("guideid") Integer guideid);

    //获取预习
    Integer getGuideIdInfo(@Param("guideid") Integer guideid);
}
