package com.ym.mec.biz.dal.dao;


import com.ym.mec.biz.dal.dto.BasicUserDto;
import com.ym.mec.biz.dal.entity.MusicGroup;
import com.ym.mec.biz.dal.entity.StudentRepair;
import org.apache.ibatis.annotations.Param;

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

public interface StudentRepairDao extends com.ym.mec.common.dal.BaseDAO<Integer, StudentRepair> {
    /**
     * 获取学生列表
     *
     * @param params
     * @return
     */
    List<BasicUserDto> getStudents(Map<String, Object> params);

    /**
     * 获取学生总数
     *
     * @param params
     * @return
     */
    Integer getStudentsCount(Map<String, Object> params);

    /**
     * 获取学生乐团列表
     *
     * @param userIds
     * @return
     */
    List<MusicGroup> getUserMusicGroup(@Param("userIds") Set<Integer> userIds);

    /**
     * 获取学生信息
     *
     * @param studentId
     * @return
     */
    BasicUserDto getStudentInfo(@Param("studentId") Integer studentId);

    /**
     * 获取维修单信息
     *
     * @param id
     * @return
     */
    StudentRepair getRepairInfo(@Param("id") Integer id);

    /**
     * 获取乐团的维修技师
     *
     * @param studentId
     * @return
     */
    BasicUserDto getStudentMusicGroupRepairer(@Param("studentId") Integer studentId);

    /**
     * 获取获取一个分部的维修技师
     * @param organId
     * @return
     */
    BasicUserDto getStudentOrganRepairer(@Param("organId") Integer organId);

    /**
     * @describe 获取商品购买教务老师关联的学员列表
     * @apiNote 时光荏苒，认真工作的时间总是过得很快，而我、享受这一刻！
     * @author zouxuan
     * @date 2020/9/28
     * @time 11:29
     * @param params:
     * @return int
     */
    int countEduStudents(Map<String, Object> params);

    /**
     * @describe 获取商品购买教务老师关联的学员列表
     * @apiNote 时光荏苒，认真工作的时间总是过得很快，而我、享受这一刻！
     * @author zouxuan
     * @date 2020/9/28
     * @time 11:30
     * @param params:
     * @return java.util.List<com.ym.mec.biz.dal.dto.BasicUserDto>
     */
    List<BasicUserDto> queryEduStudents(Map<String, Object> params);

    /**
     * @describe 获取学生关联的所有教务老师列表
     * @apiNote 时光荏苒，认真工作的时间总是过得很快，而我、享受这一刻！
     * @author zouxuan
     * @date 2020/9/28
     * @time 13:35
     * @param studentId:
     * @return int
     */
    List<Integer> countStuEducation(@Param("studentId") Integer studentId);
}