package com.xhkjedu.sstudy.mapper.paperstudent;

import com.xhkjedu.sstudy.base.TkMapper;
import com.xhkjedu.sstudy.model.paperstudent.TPaperStudent;
import com.xhkjedu.sstudy.model.paperstudent.TPaperStudentQuestion;
import com.xhkjedu.sstudy.vo.paper.PaperCheckParam;
import com.xhkjedu.sstudy.vo.paperstudent.PaperCommVo;
import com.xhkjedu.sstudy.vo.paperstudent.PaperSearchVo;
import com.xhkjedu.sstudy.vo.paperstudent.PaperStudentVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

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

/**
 * @ClassName PaperStudentMapper
 * Description 作业学生
 * Author WN
 * Date 2020/6/9 10:20
 **/
@Repository
public interface PaperStudentMapper extends TkMapper<TPaperStudent> {
    void saveBatchPaperStudent(List<TPaperStudent> list);

    /**
     * 作业列表
     * @Param [paperStudent]
     * @Author ywx
     * @Date 2020/6/10 10:54
     * @return java.util.List<com.xhkjedu.vo.paperstudent.PaperStudentVo>
     **/
    List<PaperStudentVo> findAll(@Param("ps") PaperSearchVo paperSearch);

    /**
     * 更新学生作业提交、批改状态
     * @Param [psstate, pschecked, psid, operate]
     * @Author ywx
     * @Date 2020/6/10 15:54
     * @return java.lang.Integer
     **/
    Integer updateState(@Param("psstate") Integer psstate, @Param("pschecked") Integer pschecked, @Param("psid") Integer psid, @Param("operate") Integer operate);

    /**
     * 批改完修改学生总得分和批改状态 (结构性试题)
     * @Param [psid]
     * @Author ywx
     * @Date 2020/6/10 16:28
     * @return java.lang.Integer
     **/
    Integer updateStuScore(@Param("psid") Integer psid, @Param("checkid") Integer checkid);

    /**
     * 批改完修改学生总得分和批改状态 (答题卡试题)
     * @author WN
     * @date 2020/6/12
     * @param psid
     * @param checkid
     * @return java.lang.Integer
     */
    Integer updateScantronStuScore(@Param("psid") Integer psid, Integer checkid);

    /**
     * 详情
     * @Param [psid]
     * @Author ywx
     * @Date 2020/6/11 10:14
     * @return com.xhkjedu.model.paperstudent.TPaperStudent
     **/
    TPaperStudent findById(@Param("psid") Integer psid);
    //详情退回学生作业使用
    TPaperStudent findById2(@Param("psid") Integer psid);

    /**
     * 批量更新试题批改信息
     * @Param [psqs]
     * @Author ywx
     * @Date 2020/6/11 11:10
     * @return java.lang.Integer
     **/
    Integer updatePsQuestionBatch(@Param("list") List<TPaperStudentQuestion> psqs);

    /**
     * 判断该作业该班级是否存在未批改学生
     * @Param [paperid, groupid]
     * @Author ywx
     * @Date 2020/6/11 11:16
     * @return java.lang.Integer
     **/
    Integer getNotCorrect(@Param("paperid") Integer paperid, @Param("classid") Integer classid);

    /**
     * 设置批改人
     * @Param [list]
     * @Author ywx
     * @Date 2020/6/12 8:48
     * @return java.lang.Integer
     **/
    Integer batchUpdateCheckId(@Param("list") List<TPaperStudent> list);

    /**
     * 批阅列表
     * @Param [ps]
     * @Author ywx
     * @Date 2020/6/18 14:35
     * @return java.util.List<com.xhkjedu.vo.paperstudent.PaperStudentVo>
     **/
    List<PaperStudentVo> correctList(@Param("ps") TPaperStudent ps);

    /**
     * 作业说明
     * @Param [psid]
     * @Author ywx
     * @Date 2020/6/18 17:10
     * @return com.xhkjedu.vo.paperstudent.PaperCommVo
     **/
    PaperCommVo getPaperComm(@Param("psid") Integer psid);

    /**
     * 设置批改人
     * @Param [paperid, checkid]
     * @Author ywx
     * @Date 2020/6/30 12:30
     * @return java.lang.Integer
     **/
    Integer updateCheckId(Integer paperid, Integer checkid);

    //设置批改人
    Integer updateCheckId2(Integer paperid, @Param("params") List<PaperCheckParam> params);

    /**
     * 获取作业学生id集合
     *
     * @return java.util.List<java.lang.Integer>
     * @Param [paperid, classid]
     * @Author ywx
     * @Date 2020/6/30 12:38
     **/
    List<PaperCheckParam> listStudentIdByPaperIdClassId(Integer paperid, @Param("params") List<PaperCheckParam> params);

    /**
     *功能描述  修改作业答案是否显示
     * @author WN
     * @date 2020/10/13
     * @param  * @param
     * @return void
     */
    void updateShowanswer();


    //////////////////////////////////////////////学生WEB端//////////////////////////////////////////////
    //获取作业列表
    List<PaperStudentVo> listWeb(@Param("ps") PaperSearchVo paperSearch);

    /**
     * 提交作业
     * @Param [ps]
     * @Author ywx
     * @Date 2020/9/3 15:05
     * @return java.lang.Integer
     **/
    Integer submitPaper(@Param("ps") TPaperStudent ps);

    /**
     * 批量修改题库作业学生作答信息
     * @Param [list]
     * @Author ywx
     * @Date 2020/9/3 15:05
     * @return java.lang.Integer
     **/
    Integer batchUpdateQuestion(@Param("list") List<TPaperStudentQuestion> list);

    /**
     * 附件作业提交更新操作
     * @Param [ps]
     * @Author ywx
     * @Date 2020/11/7 9:56
     * @return java.lang.Integer
     **/
    Integer updateSPaper(@Param("ps") TPaperStudent ps);

    /**
     * 题库作业提交更新操作
     *
     * @return java.lang.Integer
     * @Param [ps]
     * @Author ywx
     * @Date 2020/11/7 10:05
     **/
    Integer updatePaper(@Param("ps") TPaperStudent ps);

    //作业学生列表
    List<Map> listStudent(@Param("paperid") Integer paperid);

}
