package com.microservices.dms.achievementLibrary.mapper;

import java.util.List;

import com.microservices.common.datasource.annotation.Slave;
import com.microservices.dms.achievementLibrary.domain.AchievementDictData;
import com.microservices.dms.achievementLibrary.domain.KeyValueVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 成果相关字典Mapper接口
 * 
 * @author microservices
 * @date 2025-05-23
 */
@Mapper
@Slave
public interface AchievementDictDataMapper 
{
    /**
     * 查询成果相关字典
     * 
     * @param dictCode 成果相关字典主键
     * @return 成果相关字典
     */
    public AchievementDictData selectAchievementDictDataByDictCode(Long dictCode);

    /**
     * 查询成果相关字典列表
     * 
     * @param achievementDictData 成果相关字典
     * @return 成果相关字典集合
     */
    public List<AchievementDictData> selectAchievementDictDataList(AchievementDictData achievementDictData);

    /**
     * 新增成果相关字典
     * 
     * @param achievementDictData 成果相关字典
     * @return 结果
     */
    public int insertAchievementDictData(AchievementDictData achievementDictData);

    /**
     * 修改成果相关字典
     * 
     * @param achievementDictData 成果相关字典
     * @return 结果
     */
    public int updateAchievementDictData(AchievementDictData achievementDictData);

    /**
     * 删除成果相关字典
     * 
     * @param dictCode 成果相关字典主键
     * @return 结果
     */
    public int deleteAchievementDictDataByDictCode(Long dictCode);

    /**
     * 批量删除成果相关字典
     * 
     * @param dictCodes 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAchievementDictDataByDictCodes(Long[] dictCodes);

    List<KeyValueVo> selectDictDataByType(@Param("dictType") String dictType);

    int selectDictDataByLabel(@Param("label") String label,@Param("type") String type);

    List<String> getDictTypes();
}
