package com.hzs.system.config.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.system.config.BdTradeWhiteConfig;
import com.hzs.system.config.vo.BdTradeWhiteConfigVO;

import java.util.List;

/**
 * 交易白名单配置表 服务类
 */
public interface IBdTradeWhiteConfigService extends IService<BdTradeWhiteConfig> {

    /**
     * 保存交易配置
     *
     * @param tradeWhiteConfigVO 入参
     * @return Integer
     */
    Integer addTradeWhiteConfig(BdTradeWhiteConfigVO tradeWhiteConfigVO);

    /**
     * 查询交易白名单配置列表
     *
     * @param tradeWhiteConfigVO 入参
     * @return List<BdTradeWhiteConfigVO>
     */
    Object[] showTradeWhiteConfigList(BdTradeWhiteConfigVO tradeWhiteConfigVO);

    /**
     * 更新交易配置白名单
     *
     * @param tradeWhiteConfigVO 入参
     * @return Boolean
     */
    Integer updateTradeWhiteConfig(BdTradeWhiteConfigVO tradeWhiteConfigVO);

    /**
     * 删除交易配置
     *
     * @param pkId      ID
     * @param pkCreator 修改人
     * @return Boolean
     */
    Boolean deleteTradeWhiteConfig(String pkId, Long pkCreator);

    /**
     * 根据条件查询交易白名单配置
     *
     * @param tradeWhiteConfigVO 入参
     * @return BdTradeWhiteConfig
     */
    BdTradeWhiteConfig selectTradeWhiteConfigByCondition(BdTradeWhiteConfigVO tradeWhiteConfigVO);

    /**
     * 根据会员查询白名单配置
     *
     * @param pkMember 会员ID
     * @return BdTradeWhiteConfig
     */
    BdTradeWhiteConfig selectTradeWhiteConfigByPkMember(Long pkMember);

    /**
     * 查询配置伞下白名单的会员
     *
     * @param tradeWhiteConfigVO 入参
     * @return List<Long>
     */
    List<Long> selectTradeWhiteConfigByUnderBlood(BdTradeWhiteConfigVO tradeWhiteConfigVO);

}
