package com.xhkjedu.sstudy.mapper.paperstudent;

import com.xhkjedu.base.TkMapper;
import com.xhkjedu.sstudy.model.paperstudent.TPaperStudentQuestion;
import com.xhkjedu.sstudy.vo.paperreport.PaperRQuestionVo;
import com.xhkjedu.sstudy.vo.paperreport.PaperRStuQuestionVo;
import com.xhkjedu.sstudy.vo.paperstudent.PaperStudentQuestionVo;
import com.xhkjedu.sstudy.vo.paperstudent.StudentPaperTypeVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

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

/**
 * @ClassName PaperStudentQuestionMapper
 * Description 作业学生试题
 * Author WN
 * Date 2020/6/9 10:36
 **/
@Repository
public interface PaperStudentQuestionMapper extends TkMapper<TPaperStudentQuestion> {
    /**
     * 获取学生作业详情
     * @Param [psid]
     * @Author ywx
     * @Date 2020/6/10 15:52
     * @return java.util.List<com.xhkjedu.vo.paperstudent.PaperStudentQuestionVo>
     **/
    List<PaperStudentQuestionVo> getPaperQuestion(@Param("psid") Integer psid);

    /**
     * @Description 获取学生作业详情（无答案）
     * @Param [psid]
     * @Author ywx
     * @Date 2023/6/26 17:37
     * @return java.util.List<com.xhkjedu.sstudy.vo.paperstudent.PaperStudentQuestionVo>
     **/
    List<PaperStudentQuestionVo> getPaperQuestionNoAnswer(@Param("psid") Integer psid);

    /**
     * 获取学生待批改试题列表
     * @Param [psid]
     * @Author ywx
     * @Date 2020/6/26 13:21
     * @return java.util.List<com.xhkjedu.vo.paperstudent.PaperStudentQuestionVo>
     **/
    List<PaperStudentQuestionVo> listCorrectQuestion(@Param("psid") Integer psid);

    /**
     * 批量保存
     * @Param [paperStudentQuestions]
     * @Author ywx
     * @Date 2020/6/11 8:07
     * @return java.lang.Integer
     **/
    Integer batchSave(@Param("list") List<TPaperStudentQuestion> paperStudentQuestions);

    /**
     * 作业关联试题列表
     * @Param [psid]
     * @Author ywx
     * @Date 2020/6/11 8:39
     * @return java.util.List<com.xhkjedu.model.paperstudent.TPaperStudentQuestion>
     **/
    List<TPaperStudentQuestion> listPaperQuestion(@Param("psid") Integer psid);

    /**
     * 获取学生未提交试题集合
     * @Param [psid]
     * @Author ywx
     * @Date 2020/6/11 10:25
     * @return java.util.List<com.xhkjedu.model.paperstudent.TPaperStudentQuestion>
     **/
    List<TPaperStudentQuestion> listPSQByNotDo(@Param("psid") Integer psid);

    /**
     * 自动批改学生未做试题
     * @Param [psid]
     * @Author ywx
     * @Date 2020/6/11 10:28
     * @return java.lang.Integer
     **/
    Integer updatePSQByNotDo(@Param("psid") Integer psid,@Param("checktime") Integer checktime);

    /**
     * 获取该作业该学生未批改作业数量
     * @Param [psid]
     * @Author ywx
     * @Date 2020/6/11 10:31
     * @return java.lang.Integer
     **/
    Integer getNotCorrect(Integer psid);

    /**
     *功能描述 计算所有试题用时
     * @author WN
     * @date 2020/6/12
     * @param psid
     * @return java.lang.Integer
     */
    Integer getSumQuesitonsCosttime(@Param("psid") Integer psid);

    /**
     *功能描述 修改学生答案图片（教师添加批注）
     * @author WN
     * @date 2020/8/24
     * @param  * @param useranswer
     * @param psqid
     * @return void
     */
    void updateUseranswer(String useranswer, Integer psqid);

    //题库作业--按题批阅列表
    List<Map> qcorrectList(@Param("psids") List<Integer> psids);

    //获取学生作业未批改试题数量
    Integer getNoCheckNumByPsId(Integer psid);

    /**
     * 获取未合并的学生答案
     *
     * @param [psid]
     * @return java.util.List<com.xhkjedu.sstudy.model.paperstudent.TPaperStudentQuestion>
     * @author ywx
     * @date 2022/5/9 15:07
     */
    List<TPaperStudentQuestion> listNoMergeUserAnswer(@Param("psid") Integer psid);

    //获取作业所有学生试题作答情况
    List<PaperRStuQuestionVo> listAllStuAnswers(@Param("paperid") Integer paperid);

    //获取作业中所有试题
    List<PaperRQuestionVo> listAllQuesByPaperid(@Param("paperid") Integer paperid);

    //清空指定作业所有优秀作答
    int updatePaperStudentGoodByPsid(@Param("psid") Integer psid);

    //标记单题是否优秀作答
    int updatePaperStudentGoodByPsqid(@Param("good") Integer good, @Param("psid") Integer psid
            ,@Param("questionpid") String questionpid);

    //学生作业题型列表
    List<StudentPaperTypeVo> listPaperType(@Param("psid") Integer psid);
}
