package com.qmth.distributed.print.business.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qmth.distributed.print.business.bean.result.TeachStudentResult;
import com.qmth.distributed.print.business.entity.TeachStudent;
import com.qmth.teachcloud.common.entity.SysUser;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;
import java.util.Set;

/**
 * @Description: 教学学生服务类
 * @Author: CaoZixuan
 * @Date: 2022-02-09
 */
public interface TeachStudentService extends IService<TeachStudent> {

    /**
     * 分页查询教学学生列表
     *
     * @param teachClazzId 教学班级主键
     * @param studentInfo  学生信息（学号、姓名）
     * @param pageNumber   分页页数
     * @param pageSize     分页容量
     * @return 查询结果
     */
    IPage<TeachStudentResult> teachStudentPage(Long teachClazzId, String studentInfo, int pageNumber, int pageSize);

    /**
     * 创建教学学生
     *
     * @param studentName  学生姓名
     * @param studentCode  学生学号
     * @param teachClazzId 教学班级id
     * @param requestUser  请求用户
     * @return 创建结果
     */
    Boolean createTeachStudent(String studentName, String studentCode, Long teachClazzId, SysUser requestUser);

    /**
     * 批量创建教学学生
     * @param basicStudentIdSet 学生字典id集合
     * @param teachClazzId 教学班级id
     * @param schoolId 学校id
     * @param requestUser 请求用户
     */
    void createTeachStudentBatch(Set<Long> basicStudentIdSet,Long teachClazzId,Long schoolId,SysUser requestUser);

    /**
     * 教学学生导入
     *
     * @param file         excel文件
     * @param teachClazzId 教学班级id
     * @param schoolId     学校id
     * @param requestUser  请求用户
     */
    String importTeachStudent(MultipartFile file, Long teachClazzId, Long schoolId, SysUser requestUser) throws IOException, NoSuchFieldException;

    /**
     * 删除教学学生
     *
     * @param idList 教学学生主键集合
     * @return 删除结果
     */
    Boolean deleteTeachStudentBatch(List<Long> idList);
}
