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

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yonge.cooleshow.biz.dal.dto.search.MusicTagSearch;
import com.yonge.cooleshow.biz.dal.entity.MusicTag;
import com.yonge.cooleshow.biz.dal.vo.MusicTagVo;
import com.yonge.cooleshow.common.enums.YesOrNoEnum;
import org.apache.ibatis.annotations.Param;

import java.util.List;


public interface MusicTagDao extends BaseMapper<MusicTag> {
	/**
	 * 查询详情
	 *
	 * @author liweifan
	 * @date 2022-03-29 17:47:57
	 * @return: com.yonge.cooleshow.biz.dal.vo.MusicTagVo
	 */
	MusicTagVo detail(@Param("id") Long id);

	/**
	 * 分页查询
	 *
	 * @author liweifan
	 * @date 2022-03-29 17:47:57
	 * @return: com.yonge.cooleshow.biz.dal.vo.MusicTagVo
	 */
	List<MusicTagVo> selectPage(@Param("page") IPage page, @Param("param") MusicTagSearch musicTag);

	/**
	 * 根据父级id查询子级列表
	 *
	 * @param id        父级id
	 * @param state     状态
	 * @param idAndName 标签编号/名称
	 * @return List
	 */
	List<MusicTagVo> getChildren(@Param("id") Long id, @Param("state") YesOrNoEnum state, @Param("idAndName") String idAndName);


	/**
	 * 根据父级id集合查询子集标签
	 *
	 * @param longList 父级id集合
	 * @param state    状态
	 * @return 子集集合
	 */
	List<MusicTagVo> getChildrenByParentIdList(@Param("longList") List<Long> longList, @Param("state") YesOrNoEnum state);

	/**
	 * 检查标签是否被用过
	 *
	 * @param longs
	 * @return
	 */
    Integer checkTagBeUsedMusicSheet(@Param("longs") List<Long> longs);


	/**
	 * 检查标签是否被用过
	 *
	 * @param longs
	 * @return
	 */
    Integer checkTagBeUsedMusicAblum(@Param("longs") List<Long> longs);
}