package com.ruoyi.credit.mapper;

import java.util.List;
import com.ruoyi.credit.domain.FinancingApplication;

/**
 * 融资申请Mapper接口
 * 
 * @author ruoyi
 * @date 2025-01-07
 */
public interface FinancingMapper 
{
    /**
     * 查询融资申请
     * 
     * @param financingId 融资申请主键
     * @return 融资申请
     */
    public FinancingApplication selectFinancingApplicationById(Long financingId);

    /**
     * 查询融资申请列表
     * 
     * @param financingApplication 融资申请
     * @return 融资申请集合
     */
    public List<FinancingApplication> selectFinancingApplicationList(FinancingApplication financingApplication);

    /**
     * 根据债权ID查询融资申请
     * 
     * @param creditId 债权ID
     * @return 融资申请集合
     */
    public List<FinancingApplication> selectFinancingApplicationByCreditId(Long creditId);

    /**
     * 查询待审批的融资申请
     * 
     * @return 融资申请集合
     */
    public List<FinancingApplication> selectPendingApplications();

    /**
     * 根据申请编号查询融资申请
     * 
     * @param applicationNumber 申请编号
     * @return 融资申请
     */
    public FinancingApplication selectFinancingApplicationByNumber(String applicationNumber);

    /**
     * 新增融资申请
     * 
     * @param financingApplication 融资申请
     * @return 结果
     */
    public int insertFinancingApplication(FinancingApplication financingApplication);

    /**
     * 修改融资申请
     * 
     * @param financingApplication 融资申请
     * @return 结果
     */
    public int updateFinancingApplication(FinancingApplication financingApplication);

    /**
     * 删除融资申请
     * 
     * @param financingId 融资申请主键
     * @return 结果
     */
    public int deleteFinancingApplicationById(Long financingId);

    /**
     * 批量删除融资申请
     * 
     * @param financingIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteFinancingApplicationByIds(Long[] financingIds);

    /**
     * 根据状态统计融资申请数量
     * 
     * @param status 融资状态
     * @return 数量
     */
    public int countByStatus(String status);

    /**
     * 根据金融机构统计融资申请数量
     * 
     * @param financialInstitutionId 金融机构ID
     * @return 数量
     */
    public int countByFinancialInstitution(Long financialInstitutionId);
}