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

import com.ym.mec.biz.dal.dto.*;

import org.apache.ibatis.annotations.Param;

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

/**
 * @Author Joburgess
 * @Date 2019/9/19
 */
public interface StudentManageDao {

    /**
     * @Author: Joburgess
     * @Date: 2019/9/19
     *根据部门ID获取该部门下所有学生
     */
    List<StudentManageListDto> findStudentsByOrganId(Map<String,Object> params);

    /**
     * @Author: Joburgess
     * @Date: 2019/9/19
     * 根据部门ID统计该部门下所有学生数
     */
    int countStudentByOrganId(Map<String,Object> params);

    /**
     * @Author: Joburgess
     * @Date: 2019/9/20
     * 根据学生ID获取该学院基本信息
     */
    StudentManageBaseDto findStudentBaseInfoByUserID(Long userID);

    /**
     * @Author: Joburgess
     * @Date: 2019/9/20
     * 根据商品id列表获取商品名称列表
     */
    String[] findGoodsNamesByIds(@Param("ids") String[] ids);

    /**
     * @Author: Joburgess
     * @Date: 2019/9/20
     * 根据学生ID获取其所在的乐团
     */
    List<StudentManageBaseInfoOfMusicGroupDto> findStudentMusicGroupsByUserId(Long userID);

    /**
     * @Author: Joburgess
     * @Date: 2019/9/20
     * 获取某乐团的排课列表
     */
    List<StudentManageCourseListDto> findStudentCourseList(Map<String,Object> params);

    /**
     * @Author: Joburgess
     * @Date: 2019/9/20
     * 统计乐团排课数
     */
    int countStudentCourses(Map<String,Object> params);

    /**
     * @Author: Joburgess
     * @Date: 2019/9/20
     * 学生签到列表获取
     */
    List<StudentManageCourseListDto> findStudentAttendances(Map<String,Object> params);

    /**
     * @Author: Joburgess
     * @Date: 2019/9/20
     * 统计学生签到次数
     */
    int countStudentAttendances(Map<String,Object> params);

    /**
     * @Author: Joburgess
     * @Date: 2019/9/21
     * 获取学上账户基本信息
     */
    StudentManageAccountBaseInfoDto getStudentAccountBaseInfo(Long userID);

}
