package com.fdkankan.ucenter.service;

import com.fdkankan.ucenter.common.PageInfo;
import com.fdkankan.ucenter.entity.DownloadOrder;
import com.fdkankan.ucenter.entity.IncrementOrder;
import com.fdkankan.ucenter.entity.Order;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fdkankan.ucenter.vo.request.DownNumParam;
import com.fdkankan.ucenter.vo.request.OrderParam;
import com.fdkankan.ucenter.vo.request.PlaceOrderParam;
import com.fdkankan.ucenter.vo.response.GoodsSkuVo;
import com.fdkankan.ucenter.vo.response.OrderVo;

/**
 * <p>
 * 订单表 服务类
 * </p>
 *
 * @author 
 * @since 2022-07-13
 */
public interface IOrderService extends IService<Order> {

    PageInfo pageList(OrderParam param);

    GoodsSkuVo getIncrementOrDownloadPrice(OrderParam param);

    void cancel(Long orderId);

    void receipt(Long orderId);

    Order placeOrder(PlaceOrderParam param);

    boolean queryOrderStatus(OrderParam param) throws Exception;

    Order getByOrderSn(String orderSn);

    DownloadOrder downloadOrder(DownNumParam param);

    IncrementOrder incrementOrder(DownNumParam param);

    boolean paySuccessEntityOrder(String orderSn, String tradeNo, int paymentTypeName);

    OrderVo getOrderDetail(Long orderId);

    void autoUpdateOrderStatus();

    Order getByOrderSnNoPay(String orderSn);
}
