package com.hzs.system.config;

import com.hzs.common.core.domain.R;
import com.hzs.common.domain.system.config.BdGrade;
import com.hzs.system.config.dto.GradeDTO;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 等级公共的api
 */
public interface IGradeServiceApi {

    /**
     * 获取等级
     *
     * @param pkId 主键
     */
    R<GradeDTO> getGrade(Integer pkId);

    /*
     *  根据等级值获得等级
     **/
    R<GradeDTO> getGradeByGradeValue(Integer gradeValue, Integer pkCountry);

    /**
     * 根据国家查询等级配置列表
     *
     * @param pkCountry 国家
     */
    R<List<GradeDTO>> queryGradeConfigByCondition(Integer pkCountry);

    /**
     * 根据国家查询等级配置列表
     *
     * @param pkCountry 国家
     */
    R<List<GradeDTO>> queryHaiFunGradeConfigByCondition(Integer pkCountry);

    /*
     *  查询不同国家的等级参数
     **/
    R<Map<Integer, List<GradeDTO>>> queryCountryGradeConfigByCondition(Set<Integer> pkCountrySet);

    /**
     * 根据国家查询全部等级配置
     *
     * @param pkCountry 国家
     */
    R<List<GradeDTO>> queryGradeList(Integer pkCountry);

    /**
     * 根据等级主键查询等级
     *
     * @param pkCountry 国家
     * @param pkGrade   等级
     */
    R<GradeDTO> queryGradeConfigByCondition(Integer pkCountry, Integer pkGrade);

    /**
     * 查询全部等级列表数据
     *
     * @param dataCountry
     * @return
     */
    R<List<GradeDTO>> selectGradeAll(Integer dataCountry);

    /**
     * 根据国家查询等级配置列表
     *
     * @param pkCountry 国家
     */
    R<List<BdGrade>> queryGrowUpFootmarkGrade(Integer pkCountry);

    /**
     * 查询全部的等级
     *
     * @return
     */
    R<List<GradeDTO>> findAll();

    /**
     * 查询等级
     *
     * @param pkCountry
     * @return
     */
    R<List<GradeDTO>> queryNextGrade(Integer pkCountry);
}
