package com.fdkankan.ucenter.service;

import com.alibaba.fastjson.JSONObject;
import com.fdkankan.ucenter.common.PageInfo;
import com.fdkankan.ucenter.common.Result;
import com.fdkankan.ucenter.entity.Invoice;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fdkankan.ucenter.vo.request.InvoiceParam;
import com.fdkankan.ucenter.vo.request.PlaceOrderParam;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Set;

/**
 * <p>
 * 发票表 服务类
 * </p>
 *
 * @author 
 * @since 2022-07-13
 */
public interface IInvoiceService extends IService<Invoice> {

    Invoice getByOrderId(Long orderId);

    Invoice getByIncrementOrderId(Long incrementOrderId);

    Invoice getByDownId(Long downId);

    void saveByOrder(Long userId, PlaceOrderParam param);

    Invoice openInvoice(InvoiceParam param, String token);

    void checkInvoice(Long orderId, Integer consumeType);

    BigDecimal getMoney(Long orderId, Integer consumeType);

    JSONObject getMaxInvoice(InvoiceParam param);

    PageInfo getInvoices(String token, InvoiceParam param);

    Invoice getMyInvoiceInfo(String token, InvoiceParam param);

    void saveInvoice(String token, InvoiceParam param);

    void addInvoice(String token, InvoiceParam param);

    void updateInvoice(String token, InvoiceParam param);

    HashMap<Long, Invoice> getByIncrementOrderIds(Set<Long> ids);
}
