package com.njcn.system.mapper;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.system.pojo.po.DictData;
import com.njcn.system.pojo.po.DictType;
import com.njcn.system.pojo.vo.DictDataVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author hongawen
 * @since 2021-12-13
 */
public interface DictDataMapper extends BaseMapper<DictData> {

    /**
     * 分页查询字典数据
     *
     * @param page         分页数据
     * @param queryWrapper 查询条件
     * @return 字典数据
     */
    Page<DictDataVO> page(@Param("page") Page<DictDataVO> page, @Param("ew") QueryWrapper<DictDataVO> queryWrapper);

    /**
     * @param dictypeName 字典类型名称
     * @return 根据字典类型名称查询字典数据
     */
    List<DictData> getDicDataByTypeName(@Param("dictypeName") String dictypeName);

    DictData getDicDataByName(@Param("dicName") String dicName);

    DictData getDicDataByNameAndType(@Param("dicName") String dicName, @Param("typeName") String typeName);

    DictData getDicDataByCodeAndType(@Param("dicCode") String dicCode, @Param("typeCode") String typeCode);

    DictData getDicDataByCode(@Param("code") String code);

    /**
     * 根据字典类型名称&数据名称获取字典数据
     *
     * @param dicTypeName 字典类型名称
     * @param dicDataName 字典数据名称
     * @return 字典数据
     */
    DictData getDicDataByNameAndTypeName(@Param("dicTypeName") String dicTypeName, @Param("dicDataName") String dicDataName);

    /**
     * @param dictTypeCode 字典类型名称
     * @return 根据字典类型名称查询字典数据
     */
    List<DictData> getDicDataByTypeCode(@Param("dictTypeCode") String dictTypeCode);

}
