package com.doumee.service.business; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.InvoiceRecord; import com.doumee.dao.dto.ApplyInvoiceDTO; import com.doumee.dao.vo.InvoiceRecordSummaryVO; import java.util.List; /** * 发票申请记录Service定义 * * @author rk * @date 2026/05/18 */ public interface InvoiceRecordService { Integer create(InvoiceRecord invoiceRecord); void deleteById(Integer id); void delete(InvoiceRecord invoiceRecord); void deleteByIdInBatch(List ids); void updateById(InvoiceRecord invoiceRecord); void updateByIdInBatch(List invoiceRecords); InvoiceRecord findById(Integer id); InvoiceRecord findOne(InvoiceRecord invoiceRecord); List findList(InvoiceRecord invoiceRecord); PageData findPage(PageWrap pageWrap); long count(InvoiceRecord invoiceRecord); /** * 会员申请开票 * * @param dto 开票申请请求 * @param memberId 会员主键 */ void applyInvoice(ApplyInvoiceDTO dto, Integer memberId); /** * 会员开票记录分页(按创建时间倒序) */ PageData findMemberInvoicePage(PageWrap pageWrap, Integer memberId); /** * 发送发票邮件 */ void sendInvoiceEmail(Integer memberId, Integer invoiceRecordId, String email); /** * 发票统计汇总(与 findPage 相同筛选条件) */ InvoiceRecordSummaryVO findPageSummary(PageWrap pageWrap); }