package com.leromro.core.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.leromro.common.core.domain.R;
import com.leromro.core.domain.VolunteerPaymentRecords;
import com.leromro.core.domain.dto.AddPaymentRecordDTO;
import com.leromro.core.domain.dto.WithdrawPaymentDTO;

/**
 * 志愿者打款单记录Service接口
 * 
 * @author ruoyi
 * @date 2025-05-15
 */
public interface IVolunteerPaymentRecordsService extends IService<VolunteerPaymentRecords>
{
    /**
     * 查询志愿者打款单记录
     * 
     * @param volunteerPaymentRecordsId 志愿者打款单记录主键
     * @return 志愿者打款单记录
     */
    public VolunteerPaymentRecords selectVolunteerPaymentRecordsByVolunteerPaymentRecordsId(Long volunteerPaymentRecordsId);

    /**
     * 查询志愿者打款单记录列表
     * 
     * @param volunteerPaymentRecords 志愿者打款单记录
     * @return 志愿者打款单记录集合
     */
    public List<VolunteerPaymentRecords> selectVolunteerPaymentRecordsList(VolunteerPaymentRecords volunteerPaymentRecords);

    /**
     * 新增志愿者打款单记录
     * 
     * @param volunteerPaymentRecords 志愿者打款单记录
     * @return 结果
     */
    public Boolean insertVolunteerPaymentRecords(VolunteerPaymentRecords volunteerPaymentRecords);

    /**
     * 修改志愿者打款单记录
     * 
     * @param volunteerPaymentRecords 志愿者打款单记录
     * @return 结果
     */
    public Boolean updateVolunteerPaymentRecords(VolunteerPaymentRecords volunteerPaymentRecords);

    /**
     * 批量删除志愿者打款单记录
     * 
     * @param volunteerPaymentRecordsIds 需要删除的志愿者打款单记录主键集合
     * @return 结果
     */
    public int deleteVolunteerPaymentRecordsByVolunteerPaymentRecordsIds(Long[] volunteerPaymentRecordsIds);

    /**
     * 删除志愿者打款单记录信息
     * 
     * @param volunteerPaymentRecordsId 志愿者打款单记录主键
     * @return 结果
     */
    public int deleteVolunteerPaymentRecordsByVolunteerPaymentRecordsId(Long volunteerPaymentRecordsId);

    R addPaymentRecord(AddPaymentRecordDTO dto);

    //异步打款
    void asyncPayment(Long volunteerPaymentRecordsId);

}
