package com.ruoyi.learn.mapper;

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

import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.learn.domain.LearnExaminee;
import org.apache.ibatis.annotations.Param;

/**
 * 答卷Mapper接口
 * 
 * @author ruoyi
 * @date 2025-09-25
 */
public interface LearnExamineeMapper 
{
    public JSONObject selectTestStats(Map cond);
    public List<JSONObject> selectTestStudents(Map cond);

    public List<JSONObject> selectSimulatedStats(@Param("teacherId") Long teacherId);
    public List<JSONObject> selectSimulatedStudentStats(@Param("classId") Long classId);
    public List<JSONObject> selectSimulatedStuSubjectStats(@Param("studentId") Long studentId);

    public List<JSONObject> selectExamRankingStats(@Param("paperType") Integer paperType, @Param("stuScore") Integer stuScore, @Param("paperIds") Collection<Long> paperIds);
    public List<JSONObject> selectStudentPractices(@Param("studentId") Long studentId, @Param("paperType") Integer paperType, @Param("questionType") Integer questionType);

    /**
     * 查询答卷
     * 
     * @param examineeId 答卷主键
     * @return 答卷
     */
    public LearnExaminee selectLearnExamineeByExamineeId(Long examineeId);

    /**
     * 查询答卷列表
     * 
     * @param learnExaminee 答卷
     * @return 答卷集合
     */
    public List<LearnExaminee> selectLearnExamineeList(LearnExaminee learnExaminee);

    /**
     * 新增答卷
     * 
     * @param learnExaminee 答卷
     * @return 结果
     */
    public int insertLearnExaminee(LearnExaminee learnExaminee);

    /**
     * 修改答卷
     * 
     * @param learnExaminee 答卷
     * @return 结果
     */
    public int updateLearnExaminee(LearnExaminee learnExaminee);

    /**
     * 删除答卷
     * 
     * @param examineeId 答卷主键
     * @return 结果
     */
    public int deleteLearnExamineeByExamineeId(Long examineeId);

    /**
     * 批量删除答卷
     * 
     * @param examineeIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteLearnExamineeByExamineeIds(Long[] examineeIds);
}
