package com.njcn.product.system.dict.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.common.pojo.dto.SimpleTreeDTO;
import com.njcn.product.system.dict.pojo.param.DictTypeParam;
import com.njcn.product.system.dict.pojo.po.DictType;


import java.util.List;

/**
 * @author hongawen
 * @since 2021-12-13
 */
public interface IDictTypeService extends IService<DictType> {

    /**
     * 根据前台传递参数，分页查询字典类型数据
     * @param queryParam 查询参数
     * @return 字典列表
     */
    Page<DictType> listDictTypes(DictTypeParam.DictTypeQueryParam queryParam);

    /**
     * 新增字典类型数据
     *
     * @param dictTypeParam 字典类型数据
     * @return 操作结果
     */
    boolean addDictType(DictTypeParam dictTypeParam);

    /**
     * 修改字典类型
     *
     * @param updateParam 字典类型数据
     * @return 操作结果
     */
    boolean updateDictType(DictTypeParam.DictTypeUpdateParam updateParam);

    /**
     * 批量逻辑删除字典类型数据
     * @param ids id集合
     * @return 操作结果
     */
    boolean deleteDictType(List<String> ids);

    /**
     * 获取所有字典数据基础信息
     * @return 返回所有字典数据
     */
    List<SimpleTreeDTO> dictDataCache();

    /**
     * 根据名称获取字典类型数据
     * @param dicTypeName 类型名称
     * @return 类型数据
     */
    DictType getByName(String dicTypeName);

    /**
     * 根据名称新增字典类型数据
     * @param dicTypeName 类型名称
     * @return 类型数据
     */
    DictType addByName(String dicTypeName);
}
