package com.fdkankan.order.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fdkankan.goods.vo.ResponseGoods;
import com.fdkankan.goods.vo.ResponseGoodsSku;
import com.fdkankan.order.entity.Order;
import com.fdkankan.order.vo.ResponseCommerceOrder;
import com.fdkankan.order.vo.ResponseExpansionOrder;
import com.fdkankan.user.request.*;
import com.fdkankan.user.vo.*;

/**
 * <p>
 * 订单表 服务类
 * </p>
 *
 * @author 
 * @since 2021-12-24
 */
public interface IOrderService extends IService<Order> {

    ResponseOrder getOrderDetail(Long orderId);

    Page<ResponseOrder> getOrders(RequestOrder param, String token);

    String cancelOrder(RequestOrder param, String token);

    String receiptOrder(RequestOrder param, String token);

    ResponseInvoice getInvoiceDetail(RequestOrder param, String token);

    ResponseOrder placeOrder(RequestPlaceOrder param, String token);

    ResponseVirtualOrder rechargeOrder(RequestCamera param, String token);

    ResponseExpansionOrder expansionOrder(RequestExpansionOrder param, String token);

    ResponseCommerceOrder commerceOrder(RequestCommerceOrder param, String token);

    ResponseIncrementOrder incrementOrder(RequestIncrementOrder param, String token);

    ResponseDownloadOrder downloadOrder(RequestIncrementOrder param, String token);

    Boolean queryOrderStatus(RequestVirtualOrder param, String token) throws Exception;

    ResponseGoods getExpansionPrice(RequestCamera param, String token);

    ResponseGoodsSku getIncrementOrDownloadPrice(RequestCamera param, String token);

}
