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.params.TeachClazzParams;
import com.qmth.distributed.print.business.bean.result.DictionaryResult;
import com.qmth.distributed.print.business.bean.result.TeachClazzResult;
import com.qmth.distributed.print.business.entity.TeachClazz;
import com.qmth.teachcloud.common.entity.SysUser;

import java.util.List;

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

    /**
     * 分页查询教学班列表
     *
     * @param teachCourseId  教学课程id
     * @param teachClazzName 班级名称
     * @param pageNumber     分页页数
     * @param pageSize       分页容量
     * @return 教学班分页结果
     */
    IPage<TeachClazzResult> teachClazzPage(Long teachCourseId, String teachClazzName, int pageNumber, int pageSize);

    /**
     * 编辑教学班
     *
     * @param teachClazzParams 教学班编辑参数
     * @param requestUser      请求的用户
     * @return 教学班新增结果
     */
    Boolean editTeachClazz(TeachClazzParams teachClazzParams, SysUser requestUser);

    /**
     * 根据教学班级id集合批量删除教学班级
     *
     * @param idList 教学班级id集合
     * @return 教学班删除结果
     */
    Boolean deleteTeachClazzBatch(List<Long> idList);

    /**
     * 根据用户id查找教学课程
     *
     * @param userId 用户id
     * @return 字典结果
     */
    List<DictionaryResult> findTeachCourseByUserId(Long userId);
}
