package com.xhkjedu.sstudy.mapper.paperstudent;

import com.xhkjedu.base.TkMapper;
import com.xhkjedu.sstudy.model.paperstudent.TPaperClass;
import com.xhkjedu.sstudy.vo.question.QuestionVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

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

/**
 * @ClassName PaperGroupMapper
 * Description 作业班级表
 * Author WN
 * Date 2020/6/9 11:00
 **/
@Repository
public interface PaperClassMapper extends TkMapper<TPaperClass> {

    /**
     * 根据作业、分组id获取作业班级详情
     * @Param [paperid, groupid]
     * @Author ywx
     * @Date 2020/6/11 10:09
     * @return com.xhkjedu.model.paperstudent.TPaperClass
     **/
    TPaperClass selectByPaperAndClassId(Integer paperid, Integer classid);

    /**
     * 获取参与作业学生列表
     * @Param [paperid]
     * @Author ywx
     * @Date 2020/7/24 14:51
     * @return java.util.List<com.xhkjedu.vo.paperstudent.PaperGroupVo>
     **/
    List<Map> listPaperStudent(@Param("paperid") Integer paperid,@Param("schoolid") Integer schoolid);

    /**
     * 批阅完成
     * @Param [paperid, classid]
     * @Author ywx
     * @Date 2020/8/20 9:50
     * @return void
     **/
    void updateChecked(Integer paperid, Integer classid);

    /**
     * 根据学生作业id获取作业是否完成批阅
     * @Param [psid]
     * @Author ywx
     * @Date 2020/8/26 14:56
     * @return java.lang.Integer
     **/
    Integer getCheckedByPsId(Integer psid);

    /**
     * 作业班级下未批阅学生作业数量
     *
     * @return java.lang.Integer
     * @Param [pg]
     * @Author ywx
     * @Date 2020/10/14 11:04
     **/
    Integer getWpyNum(@Param("pg") TPaperClass pg);

    //获取班级作业是否结束批阅
    Integer getPaperClassChecked(@Param("paperid") Long paperid, @Param("classid") Integer classid);

    //教师权限分组
    List<Map> listGroupByTeacherId(@Param("teacherid") Integer teacherid,@Param("schoolid") Integer schoolid);

    List<Map> listUserByIds(@Param("userids") List<Integer> userids);

    //作业试题列表
    List<QuestionVo> listPaperQuestions(@Param("paperid") Integer paperid);

    //学生满分试题
    List<Map> listStuQuestion(List<String> questionids, List<Integer> studentids);

    //分组学生列表
    List<Map> listGroupStudent(@Param("groupid") Integer groupid);

    //获取作业母题列表
    List<QuestionVo> listPaperPQuestions(Integer paperid);

    //获取班级设置作业时间
    TPaperClass getPaperClassTimes(@Param("paperid") Integer paperid);
}
