package com.keao.edu.user.dao;

import com.keao.edu.common.dal.BaseDAO;
import com.keao.edu.user.entity.Subject;
import com.keao.edu.user.enums.YesOrNoEnum;
import org.apache.ibatis.annotations.Param;

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

public interface SubjectDao extends BaseDAO<Integer, Subject> {

    /**
     * 根据父级id查询子级列表
     *
     * @param parentId
     * @return
     */
    List<Subject> findByParentId(@Param("parentId") Integer parentId, @Param("delFlag") YesOrNoEnum delFlag, @Param("tenantId") String tenantId);

    /**
     * 根据声部id字符串查询
     *
     * @param subIds
     * @return
     */
    List<String> findBySubIds(String subIds);

    /**
     * 根据声部编号列表获取声部名称map
     *
     * @param subjectIds
     * @return
     */
    List<Map<Integer, String>> queryNameByIds(@Param("subjectIds") String subjectIds);

    /**
     * 获取子级列表
     *
     * @return
     */
    List<Subject> findSubSubjects(@Param("tenantId") Integer tenantId);

    List<Subject> findBySubjectByIdList(@Param("subjectIdList") String subjectIdList);

    List<Subject> findBySubjectIds(@Param("subjectIds") List<Integer> subjectIds);

    /**
     * 获取声部名称
     * @param subjectIdList
     * @return
     */
    String findNames(String subjectIdList);

    /**
     * 是否有使用中的专业
     * @param id
     * @return
     */
    int countExamSubject(Integer id);
}
