package com.hzs.system.config.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.system.config.BdRange;
import com.hzs.common.domain.system.config.ext.BdRangeExt;
import com.hzs.system.config.dto.RangeDTO;
import org.apache.ibatis.annotations.Param;

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

/**
 * <p>
 * 极差配置 服务类
 * </p>
 *
 * @author zhangjing
 * @since 2022-09-09
 */
public interface IBdRangeService extends IService<BdRange> {

    /**
     * @description: 新增极差
     * @author: zhang jing
     * @date: 2022/10/28 14:23
     * @param: [rangeExt]
     * @return: boolean
     **/
    boolean saveRange(BdRangeExt rangeExt);
    /**
     * @description: 修改极差
     * @author: zhang jing
     * @date: 2022/10/28 14:23
     * @param: [rangeExt]
     * @return: boolean
     **/
    boolean updateRange(BdRangeExt rangeExt);


    /**
     * @description: 根据国家查询极差配置列表
     * @author: zhang jing
     * @date: 2022/11/11 18:02
     * @param: [pkCountry]
     * @return: java.util.List<com.hzs.common.domain.system.config.BdRange>
     **/
    List<BdRangeExt> queryRange(Integer pkCountry);

    /**
     * 查询各个国家极差的配置  键为 国家+极差类型+等级主键
    * @return: Map<String,RangeDTO>
    * @Author: sui q
    * @Date: 2023/1/3 14:00
    */
    Map<String, RangeDTO> queryRangeDto();

    /**
     * 根据类型获取极差等级
     * @param pkCountry 国家
     * @param rangeType 极差类型
     * @param pkLevel 等级
    * @return: RangeDTO
    * @Author: sui q
    * @Date: 2023/2/4 15:54
    */
    RangeDTO getRangeDTO(Integer pkCountry, Integer rangeType, Integer pkLevel);
}
