package com.fs.qw.mapper;

import com.fs.qw.domain.FsCompanyExternalPayReceipt;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * 企业对外收款记录 Mapper 接口
 */
public interface FsCompanyExternalPayReceiptMapper {

    /**
     * 条件查询收款记录列表
     * @param receipt 查询条件（非空字段作为条件）
     * @return 列表
     */
    List<FsCompanyExternalPayReceipt> selectFsCompanyExternalPayReceiptList(FsCompanyExternalPayReceipt receipt);

    /**
     * 根据主键 ID 查询
     * @param id 主键
     * @return 收款记录
     */
    FsCompanyExternalPayReceipt selectFsCompanyExternalPayReceiptById(Long id);

    /**
     * 根据交易单号查询（唯一键）
     * @param transactionId 交易单号
     * @return 收款记录
     */
    FsCompanyExternalPayReceipt selectByTransactionId(@Param("transactionId") String transactionId);

    /**
     * 新增收款记录
     * @param receipt 收款记录
     * @return 影响行数
     */
    int insertFsCompanyExternalPayReceipt(FsCompanyExternalPayReceipt receipt);

    /**
     * 批量新增
     * @param receiptList 列表
     * @return 影响行数
     */
    int insertBatchFsCompanyExternalPayReceipt(@Param("list") List<FsCompanyExternalPayReceipt> receiptList);

    /**
     * 修改收款记录
     * @param receipt 收款记录（必须包含 id）
     * @return 影响行数
     */
    int updateFsCompanyExternalPayReceipt(FsCompanyExternalPayReceipt receipt);

    /**
     * 根据主键物理删除
     * @param id 主键
     * @return 影响行数
     */
    int deleteFsCompanyExternalPayReceiptById(Long id);

    /**
     * 批量物理删除
     * @param ids 主键数组
     * @return 影响行数
     */
    int deleteFsCompanyExternalPayReceiptByIds(Long[] ids);
}