package com.keao.edu.user.dao;

import com.keao.edu.common.dal.BaseDAO;
import com.keao.edu.user.entity.ExamSong;
import com.keao.edu.user.enums.SongTypeEnum;
import org.apache.ibatis.annotations.Param;
import org.springframework.security.core.parameters.P;

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

public interface ExamSongDao extends BaseDAO<Integer, ExamSong> {

    /**
     * 获取考试曲目
     *
     * @param ids
     * @return
     */
    List<ExamSong> getExamSongs(@Param("ids") String ids);

    /**
     * @describe 根据专业获取曲目
     * @author Joburgess
     * @date 2020.07.03
     * @param subjectId:
     * @return java.util.List<com.keao.edu.user.entity.ExamSong>
     */
    List<ExamSong> getWithSubject(@Param("subjectId") Integer subjectId);

    /**
     * @describe 根据级别和类型获取曲库
     * @author Joburgess
     * @date 2020.07.03
     * @param level:
     * @param songType:
     * @return java.util.List<com.keao.edu.user.entity.ExamSong>
     */
    List<ExamSong> getWithLevelAndType(@Param("tenantId") String tenantId,
                                       @Param("level") String level,
                                       @Param("songType")SongTypeEnum songType);

    /**
     * COUNT学生端考级曲库
     * @param params
     * @return
     */
    int countSongPage(Map<String, Object> params);

    /**
     * 学生端考级曲库
     * @param params
     * @return
     */
    List<ExamSong> querySongPage(Map<String, Object> params);

    /**
     * @describe 获取指定的曲目
     * @author Joburgess
     * @date 2020.07.03
     * @param ids:
     * @return java.util.List<com.keao.edu.user.entity.ExamSong>
     */
    List<ExamSong> getWithIds(@Param("ids") List<Integer> ids);

}
