package com.hzs.system.config.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.system.config.BdAgreementRenewalWhite;
import com.hzs.system.config.vo.BdAgreementRenewalWhiteVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 协议续约白名单 服务类
 * </p>
 *
 * @author hzs
 * @since 2024-01-12
 */
public interface IBdAgreementRenewalWhiteService extends IService<BdAgreementRenewalWhite> {

    /**
     * 根据会员ID查询 协议续约白名单
     *
     * @param pkMember 会员ID
     * @return BdAgreementRenewalWhite  协议续约白名单
     */
    List<BdAgreementRenewalWhite> selectByPkMember(Long pkMember);

    /**
     * 根据会员ID和类型查询 协议续约白名单
     * @param pkMember 会员ID
     * @param type 类型：1:自动续约 2：休止期正常使用钱包 3：续约免实名
     * @return BdAgreementRenewalWhite
     */
    BdAgreementRenewalWhite selectByPkMemberAndType(Long pkMember,Integer type);

    /**
     * 查询协议续约白名单列表
     *
     * @param agreementRenewalWhiteVO 协议续约白名单
     * @return List<BdAgreementRenewalWhiteVO>
     */
    Object[] selectWhiteList(BdAgreementRenewalWhiteVO agreementRenewalWhiteVO);

    /**
     * 删除协议续约白名单
     *
     * @param pkId      ID
     * @param pkCreator 修改人
     * @return Boolean
     */
    Boolean deleteAgreementRenewalWhite(String pkId, Long pkCreator);


    /**
     * 查询是否包含会员令牌
     *
     * @param memberPkIds
     * @return Integer
     */
    Integer isIncludeMemberId(@Param("memberPkIds") List<Long> memberPkIds, @Param("pkCountry") Integer pkCountry);


    /**
     * 查询休止期的会员是否使用钱包
     *
     * @param pkMember 会员ID
     * @return Integer
     */
    Integer selectAgreementWhiteByPkMember(Long pkMember);

}

