package cn.pluss.platform;

import cn.pluss.platform.entity.BankCard;
import cn.pluss.platform.mapper.BankCardMapper;
import cn.pluss.platform.vo.BankCardRecordVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

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

/**
 * <p>
 * 银行卡信息 服务类
 * </p>
 *
 * @author Djh
 * @since 2020-10-16
 */
public interface BankCardService extends IService<BankCard> {

    /**
     * 获取商户的结算银行卡信息
     *
     * @param userId 用户id
     * @return 商户结算银行卡信息
     */
    List<Map<String, Object>> getAccBankCardList(String userId);

    /**
     * 保存实名银行卡信息
     * @param entity    银行卡信息
     * @return
     */
    boolean saveCertBankCard(BankCard entity);

    /**
     * 保存结算银行卡信息
     * @param entity    银行卡信息
     * @return
     */
    boolean saveAccountBankCard(BankCard entity);
    /**
     * 校验银行卡信息是否合法
     *
     * @param bankCard 银行卡信息
     */
    void checkBankInfo(BankCard bankCard);

    /**
     * 获取未关联结算信息的对私结算银行卡信息
     *
     * @param userId 用户id
     * @return 银行卡信息
     */
    default BankCard getUnusedBankCard(String userId) {
        return ((BankCardMapper) getBaseMapper()).getUnusedBankCard(userId);
    }

    Page<BankCardRecordVO> pageBankCardRecord(Page<BankCardRecordVO> page, Long userId);
}
