package cn.pluss.platform.jft;

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.io.Serializable;

/**
 * <p>
 * 缴费通商户费率表(新) 服务类
 * </p>
 *
 * @author Djh
 * @since 2022-06-21
 */
public interface JftMerchantRateService extends IService<JftMerchantRate> {

    /**
     * 设置缴费通费率，此处存在两种情况，
     * 1、缴费通开通前保存费率，
     * <p>功能开通前保存费率，不做任何变更，进件时按照所保存的费率进件即可</p>
     * 2、缴费通开通后修改费率
     * <p>缴费通开通后，保存费率便需要向通道方发起费率变更</p>
     */
    int apiSaveRate(JftMerchantRate jftMerchantRate);

    JftMerchantRate getAuditRate(Long userId);

    /**
     * 根据用户id获取费率
     *
     * @param merchantId 商户id
     * @return
     */
    default JftMerchantRate getRate(String merchantId) {
        LambdaQueryWrapper<JftMerchantRate> qWrapper = Wrappers.lambdaQuery();
        qWrapper.eq(JftMerchantRate::getMerchantId, merchantId);
        return getBaseMapper().selectOne(qWrapper);
    }

    /**
     * 根据用户id获取费率
     *
     * @param userId 用户id
     * @return
     */
    default JftMerchantRate getRateByUserId(Serializable userId) {
        LambdaQueryWrapper<JftMerchantRate> qWrapper = Wrappers.lambdaQuery();
        qWrapper.eq(JftMerchantRate::getUserId, userId);
        return getBaseMapper().selectOne(qWrapper);
    }
}
