package com.srs.comprehensive.mapper;

import com.srs.comprehensive.domain.SrsClass;
import com.srs.comprehensive.domain.Vo.ClassIdName;
import com.srs.comprehensive.domain.Vo.SrsClassInfo;
import com.srs.comprehensive.domain.Vo.CphSearch;
import com.srs.framework.mybatisplusMapper.EasyBaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 班级信息
 * Mapper接口
 *
 * @author srs
 * @date 2023-06-27
 */
@Mapper
public interface SrsClassMapper extends EasyBaseMapper<SrsClass> {


    public List<SrsClass> listInSchoolClass(CphSearch param);

    public List<SrsClassInfo> listClassView(CphSearch param);

    public List<ClassIdName> selectClassIdNameByTid(Long t_id);

    /**
     * 查询班级信息
     *
     * @param classId 班级信息
     *                主键
     * @return 班级信息
     */
    public SrsClass selectSrsClassByClassId(Long classId);

    /**
     * 查询班级信息
     * 列表
     *
     * @param srsClass 班级信息
     * @return 班级信息
     * 集合
     */
    public List<SrsClass> selectSrsClassList(SrsClass srsClass);

    public List<SrsClass> selectSrsClassInfoList();

    public List<SrsClass> selectSrsClassListTeacherId(SrsClass srsClass);


    /**
     * 查询班级信息
     * 列表
     *
     * @param srsClass 班级信息
     * @return 班级信息
     * 集合
     */


    public List<SrsClass> selectSrsClassNameList();


    /**
     * 通过班级代码查询班级信息
     *
     * @param classCode
     * @return
     */

    public SrsClass selectSrsClassByClassCode(String classCode);

    /**
     * 新增班级信息
     *
     * @param srsClass 班级信息
     * @return 结果
     */
    public int insertSrsClass(SrsClass srsClass);

    /**
     * 修改班级信息
     *
     * @param srsClass 班级信息
     * @return 结果
     */
    public int updateSrsClass(SrsClass srsClass);

    /**
     * 删除班级信息
     *
     * @param classId 班级信息
     *                主键
     * @return 结果
     */
    public int deleteSrsClassByClassId(Long classId);

    /**
     * 批量删除班级信息
     *
     * @param classIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSrsClassByClassIds(Long[] classIds);


    public int batchUpdate (List<SrsClass> srsClasses);
    public int batchInsert (List<SrsClass> srsClasses);

    void updateSrsClassList(@Param("studentList")List<SrsClass> studentList);


    Long getGradeId(String njdm);
}
