package cn.pluss.platform.jft;

import cn.pluss.platform.entity.JftBankCard;
import cn.pluss.platform.entity.JftMercPaymentChannel;
import cn.pluss.platform.entity.JftMerchantRate;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Map;

/**
 * @author DJH
 */
public interface JftBankCardService extends IService<JftBankCard> {

    /**
     * 返回结算信息
     * ｛
     *      "idCard": {
     *          ...
     *      },
     *      "bankCard": {
     *          ...
     *      }
     * ｝
     * @return
     */
    Map<String, Object> apiGetAccount();

    /**
     * 根据用户id获取缴费通
     *
     * @param userId 用户id
     * @return
     */
    JftBankCard getByUserId(Long userId);

    /**
     * 保存缴费通银行卡信息
     *
     * @param jftBankCard 数据
     */
    void apiSaveBankCard(JftBankCard jftBankCard);

    void saveBankCard(JftBankCard jftBankCard);

    /**
     * 修改缴费通银行卡信息, 若已经进件则需要进入修改结算卡的流程
     *
     * @param jftBankCard 数据
     */
    void apiChangeBankCard(JftBankCard jftBankCard);

    /**
     * 调整费率，此处费率与用户等级绑定
     *
     * @param userId
     */
    void changeRate(Long userId);

    /**
     * 缴费通结算卡变更成功
     *
     * @param entity
     */
    void editSuccess(JftMercPaymentChannel entity);

    /**
     * 缴费通结算卡变更失败
     *
     * @param entity
     * @param failReason 失败原因
     */
    void editFail(JftMercPaymentChannel entity, String failReason);
}
