package com.yinlihupo.enlish.service.domain.mapper;

import com.yinlihupo.enlish.service.domain.dataobject.VocabularyBankDO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface VocabularyBankDOMapper {

    int insertSelective(VocabularyBankDO record);

    List<VocabularyBankDO> selectVocabularyBankDOListByUnitId(@Param("unitId") Integer unitId, @Param("wordCount") Integer wordCount);

    List<VocabularyBankDO> selectVocabularyBankDOListByIds(@Param("ids") List<Integer> ids);

    List<Integer> selectAllIds();

    List<VocabularyBankDO> selectVocabularyBankDOAllByUnitId(@Param("unitId") Integer unitId);

    List<VocabularyBankDO> selectVocabularyBankListStudentNotMaster(@Param("gradeId") Integer gradeId, @Param("studentId") Integer studentId);

    List<VocabularyBankDO> selectVocabularyBankListSelfCheck(@Param("gradeId") Integer gradeId, @Param("studentId") Integer studentId, @Param("ids") List<Integer> ids, @Param("wordCount") Integer wordCount);

    List<VocabularyBankDO> selectVocabularyBankListByGradeIdRandom(@Param("gradeId") Integer gradeId, @Param("wordCount") Integer wordCount);

    Integer selectWordTotal();

    List<VocabularyBankDO> selectByUnitIds(@Param("unitIds") List<Integer> unitIds);

    List<VocabularyBankDO> selectByGradeIdAndNotMatchIds(@Param("gradeId") Integer gradeId, @Param("ids") List<Integer> ids, @Param("wordCount") Integer wordCount);
}