package com.yonge.cooleshow.biz.dal.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.yonge.cooleshow.biz.dal.entity.Subject;
import com.yonge.toolset.mybatis.dal.BaseDAO;

public interface SubjectDao extends BaseDAO<Long, Subject> {
    /***
     * 通过id集合查询声部
     * @param: subjectIds
     * @updateTime 2022/4/6 11:37
     * @return: java.util.List<com.yonge.cooleshow.biz.dal.entity.Subject>
     */
    List<Subject> findBySubjectIds(@Param("subjectIds") List<Long> subjectIds);

    /***
     * 通过声部id（字符串拼接）查询声部
     * @param: subjectIdList
     * @updateTime 2022/4/6 11:35
     * @return: java.util.List<com.yonge.cooleshow.biz.dal.entity.Subject>
     */
    List<Subject> findBySubjectByIdList(@Param("subjectIdList") String subjectIdList);

    /***
     * 根据父级id查询子级列表
     * @param: parentId
     * @param: delFlag
     * @updateTime 2022/4/6 11:40
     * @return: java.util.List<com.yonge.cooleshow.biz.dal.entity.Subject>
     */
    List<Subject> findByParentId(@Param("parentId") Long parentId);

    /**
     * 判断声部是否有人使用
     * @param id
     * @return
     */
    Boolean useSubject(@Param("id") Long id);
    /***
     * 通过id删除
     * @param: id
     * @updateTime 2022/4/6 11:41
     * @return: int
     */
    int deleteById(@Param("id") Long id);

    //根据声部id查详情
    Subject selectSubjectById(@Param("lessonSubject") String lessonSubject);

    Subject queryByCode(@Param("code") String code);

    Subject queryByName(@Param("name") String name);

    List<Subject> subjectSelect(@Param("type") String type);
}
