package com.yn.bftl.thirdparty.modules.chinaums.repository;

import com.yn.bftl.common.modules.company.entity.ChinaumsAuthInfo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

/**
 * 银联认证信息Repository
 *
 * @author huabiao
 * @create 2022/12/7  15:14
 **/
@Repository
public interface ChinaumsAuthInfoRepository extends JpaRepository<ChinaumsAuthInfo, Long> {

    /**
     * 根据企业ID获取银联认证信息
     *
     * @param companyId:企业ID
     * @return 银联认证信息
     * @author huabiao
     * @create 2022/12/7  15:22
     */
    ChinaumsAuthInfo findFirstByCompanyId(Long companyId);

    /**
     * 根据系统订单号获取银联认证信息
     *
     * @param mchApplicationId:系统订单号(唯一)
     * @return 银联认证信息
     * @author huabiao
     * @create 2022/12/8  20:23
     */
    ChinaumsAuthInfo findFirstByMchApplicationId(String mchApplicationId);

    /**
     * 根据系统订单号获取银联认证信息
     *
     * @param mchApplicationId:系统订单号(唯一)
     * @return 银联认证信息
     * @author huabiao
     * @create 2022/12/8  20:23
     */
    ChinaumsAuthInfo findFirstByMchId(String mchId);

    /**
     * 根据 电子账簿簿号/银行账号 查询
     *
     * @param relAcctNo
     * @param settleAcctBankAcctNo
     * @return
     */
    ChinaumsAuthInfo findFirstByRelAcctNoOrSettleAcctBankAcctNo(String relAcctNo, String settleAcctBankAcctNo);

    /**
     * 根据平台订单号获取银联认证信息
     *
     * @param outRequestNo 平台订单号
     * @return 银联认证信息
     * @author huabiao
     * @create 2022/12/21  19:39
     */
    ChinaumsAuthInfo findFirstByOutRequestNo(String outRequestNo);

    /**
     * 根据 电子账簿id 查询
     * @param balanceAcctId 电子账簿id
     * @return
     */
    ChinaumsAuthInfo findFirstByBalanceAcctId(String balanceAcctId);
}
