package com.zcloud.mapper.datasource.system;

import com.zcloud.entity.Page;
import com.zcloud.entity.PageData;
import com.zcloud.entity.system.Dictionaries;

import java.util.List;

/**
 * 说明：数据字典Mapper
 * 作者：luoxiaobao
 * 官网：www.qdkjchina.com
 */
public interface DictionariesMapper {

	/**
	 * 通过ID获取其子级列表
	 * @param parentId
	 * @return
	 * @throws Exception
	 */
	List<Dictionaries> listSubDictByParentId(String parentId);
	/**
	 * 通过ID获取其子级列表
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	List<Dictionaries> listSubDictByParent(PageData pd);

	/**
	 * 通过ID获取其子级列表(学习考试课件相关)
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	List<Dictionaries> listSubDictByParentIdAndCourseware(PageData pd);

	/**列表
	 * @param page
	 * @throws Exception
	 */
	List<PageData> datalistPage(Page page);

	/**通过id获取数据
	 * @param pd
	 * @throws Exception
	 */
	PageData findById(PageData pd);
	/**通过名称获取数据
	 * @param pd
	 * @throws Exception
	 */
	PageData findByName(PageData pd);

	/**通过编码获取数据
	 * @param pd
	 * @throws Exception
	 */
	PageData findByBianma(PageData pd);

	/**新增
	 * @param pd
	 * @throws Exception
	 */
	void save(PageData pd);

	/**修改
	 * @param pd
	 * @throws Exception
	 */
	void edit(PageData pd);

	/**排查表检查是否被占用
	 * @param pd
	 * @throws Exception
	 */
	PageData findFromTbs(PageData pd);

	/**删除
	 * @param pd
	 * @throws Exception
	 */
	void delete(PageData pd);
	/**
	 * 通过IDS获取列表
	 * @param dictionariesIds
	 * @return
	 * @throws Exception
	 */
	List<Dictionaries> listSubDictByIdS(String[] dictionariesIds);

	/**获取父节点信息下面的子节点个数
	 * @param pd
	 * @throws Exception
	 */
	PageData getCountByParId(PageData pd);
	/**获取  节点信息 获取字典信息
	 * @param pd
	 * @throws Exception
	 */
	PageData getPdByParIdAndName(PageData pd);

	List<PageData> listSubDictByParentIdAndSunCount(String parentId);
	/**
	 * 查询同一父级下的所有子集
	 * @param parentId
	 * @return
	 */
	List<PageData> listBySameParent(String parentId);

	/**
	 * 二级目录字典
	 * @param parentId
	 * @return
	 * @throws Exception
	 */
	List<PageData> getIdsByRecuByParentId(String parentId);
}
