package com.srs.comprehensive.mapper;

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

import com.srs.comprehensive.domain.CphTeacher;
import com.srs.comprehensive.domain.Dto.CphExport;
import com.srs.comprehensive.domain.SrsGrade;
import com.srs.comprehensive.domain.SrsMajors;
import com.srs.comprehensive.domain.Vo.*;
import com.srs.framework.mybatisplusMapper.EasyBaseMapper;
import org.apache.ibatis.annotations.Param;

/**
 * 辅导员信息Mapper接口
 *
 * @author srs
 * @date 2023-07-03
 */
public interface CphTeacherMapper extends EasyBaseMapper<CphTeacher> {

    public List<CphClassRankScore> countOwnHisClass(CphSearch param);
    public CountStu countLiveStu(CphSearch param);

    public CountStu countOwnStu(CphSearch param);


    public List<CphTeacherLookScore> listCourse(String tno);

    public List<CphTeacherLookScore> listCe(String tno);

    public List<CphTeacherLookScore> listClassTwo(String tno);

    public List<CphTeacherLookScore> listIam(String tno);

    public List<CphTeacherLookScore> listSport(String tno);

    public List<CphRecord> getIamRecordByStuNo(String stuNo);


    public List<Map<String, Object>> getOwnUnTodoCount(String tno);

    public List<Map> countOwnHisAsClass(CphSearch param);

    /**
     * 通过工号查询辅导员信息
     *
     * @param tno
     * @return
     * @author zhy
     * @date 2023-07-07 16:09:23
     **/
    public CphTeacher searchTeacherByTno(String tno);


    public List<CphTeacherOwnStu> listOwnStu(String tNo);

    public List<SrsMajors> listOwnMajor(String tNo);


    public List<SrsGrade> listOwnGrade(String tNo);


    /**
     * 查询辅导员信息
     *
     * @param teacherId 辅导员信息主键
     * @return 辅导员信息
     */
    public CphTeacher selectCphTeacherByTeacherId(Long teacherId);

    /**
     * 查询辅导员信息列表
     *
     * @param cphTeacher 辅导员信息
     * @return 辅导员信息集合
     */
    public List<CphTeacher> selectCphTeacherList(CphTeacher cphTeacher);

    /**
     * 查询辅导员名字列表
     *
     * @return 辅导员信息集合
     */
    public List<CphTeacher> selectCphTeacherNameList();


    /**
     * 新增辅导员信息
     *
     * @param cphTeacher 辅导员信息
     * @return 结果
     */
    public int insertCphTeacher(CphTeacher cphTeacher);

    /**
     * 修改辅导员信息
     *
     * @param cphTeacher 辅导员信息
     * @return 结果
     */
    public int updateCphTeacher(CphTeacher cphTeacher);

    /**
     * 删除辅导员信息
     *
     * @param teacherId 辅导员信息主键
     * @return 结果
     */
    public int deleteCphTeacherByTeacherId(Long teacherId);

    /**
     * 批量删除辅导员信息
     *
     * @param teacherIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCphTeacherByTeacherIds(Long[] teacherIds);

    public CphTeacher selectCphTeacher(String employeeId);

    public List<CphTeacher> selectTeacherList();

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

    Long selectDeptCode(String ksh);

    String selectCphTeacherEmployeeId(Long classId);

    List<Map<String, Object>> selectSXZZ(CphExport param);
    List<Map<String, Object>> selectZHPJ(CphExport param);
}
