package com.ruoyi.hezhi.mapper;

import java.util.List;
import com.ruoyi.hezhi.domain.TbExamBatch;
import org.apache.ibatis.annotations.Param;

/**
 * 考试批次Mapper接口
 *
 * @author ruoyi
 * @date 2024-12-21
 */
public interface TbExamBatchMapper
{
    /**
     * 查询考试批次
     *
     * @param examBatchId 考试批次主键
     * @return 考试批次
     */
    public TbExamBatch selectTbExamBatchByExamBatchId(Long examBatchId);

    /**
     * 查询考试批次列表
     *
     * @param tbExamBatch 考试批次
     * @return 考试批次集合
     */
    public List<TbExamBatch> selectTbExamBatchList(TbExamBatch tbExamBatch);

    /**
     * 查询考试批次
     *
     * @param
     * @return 考试批次
     */
    public TbExamBatch selectTbExamBatchByExamIdAndUserId(@Param("examId") Long examId,@Param("memberUserId") Long memberUserId);

    /**
     * 新增考试批次
     *
     * @param tbExamBatch 考试批次
     * @return 结果
     */
    public int insertTbExamBatch(TbExamBatch tbExamBatch);

    /**
     * 修改考试批次
     *
     * @param tbExamBatch 考试批次
     * @return 结果
     */
    public int updateTbExamBatch(TbExamBatch tbExamBatch);

    /**
     * 删除考试批次
     *
     * @param examBatchId 考试批次主键
     * @return 结果
     */
    public int deleteTbExamBatchByExamBatchId(Long examBatchId);

    /**
     * 批量删除考试批次
     *
     * @param examBatchIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTbExamBatchByExamBatchIds(Long[] examBatchIds);

    /**
     * 删除考试批次
     *
     * @param examId 考试ID
     * @return 结果
     */
    public int deleteByExamId(@Param("examId") Long examId);

    /**
     * 考试批次
     * @param examId 考试ID
     * @return 结果
     */
    public List<TbExamBatch> getByExamId(@Param("examId") Long examId);
    /**
     * 考试批次
     * @param examBatch 考试ID
     * @return 结果
     */
    public TbExamBatch getByexamBatch(@Param("examBatch") String examBatch);

    /**
     * 根据考试ID和当前时间获取考试批次
     * @param examId 考试ID
     * @return 结果
     */
    public TbExamBatch selectCurrentExamBatch(@Param("examId") Long examId);

    /**
     * 考试批次
     * @param examId 考试ID
     * @param examBatchEarly 考试提前天数
     * @return 结果
     */
    public List<TbExamBatch> getEnableByExamId(@Param("examId") Long examId,
                                               @Param("examBatchEarly") Integer examBatchEarly);

    /**
     * 批量新增考试批次
     * @param tbExamBatchList 列表
     * @return 结果
     */
    public int insertTbExamBatchBatch(@Param("tbExamBatchList") List<TbExamBatch> tbExamBatchList);
    /**
     * 批量修改考试批次
     * @param tbExamBatchList 列表
     * @return 结果
     */
    public int updateTbExamBatchBatch(@Param("tbExamBatchList") List<TbExamBatch> tbExamBatchList);

    /**
     * 查询考试批次
     * @param examId 考试ID
     * @param batchIndex 批次序号
     * @return 结果
     */
    public TbExamBatch getByExamIdBatchIndex(@Param("examId") Long examId,
                                             @Param("batchIndex") Integer batchIndex);
}
