package com.jwipc.shopping.logic;

import com.jwipc.page.PageView;
import com.jwipc.security.dto.CurrentUserDTO;
import com.jwipc.shopping.dto.OnlineMallResponseDTO;
import com.jwipc.shopping.dto.ShoppingAfterSalesDTO;
import com.jwipc.shopping.entity.ShoppingAfterSales;
import com.jwipc.shopping.entity.ShoppingAfterSalesInfo;
import com.jwipc.shopping.entity.ShoppingInvoice;
import com.jwipc.shopping.entity.ShoppingReceivingAddress;
import com.jwipc.shopping.model.po.ShoppingAfterSalesPO;
import com.jwipc.shopping.model.po.ShoppingCartInfoPO;
import com.jwipc.shopping.model.query.*;
import com.jwipc.shopping.model.vo.*;

import java.io.InputStream;
import java.util.List;

/**
 * 功能描述:
 *
 * @Author: zx
 * @Date: 2024/3/14 0014 10:24
 */
public interface OnlineMallLogic {

    OnlineShoppingZkhResponse findOnlineMallCommodity(OnlineMallCommodityQuery query);

    String getProductUrlByZkh(String productDescUrl);

    ShoppingReceivingAddress selectDetailById(Long id);

    OnlineMallResponseDTO pushMallShoppingCart(CurrentUserDTO currentUserDTO , String XYParams, String ZKHParams, String receivingItem, String invoiceItem, String dateItem);

    void pushMallExcelCart(CurrentUserDTO currentUserDTO , String params, String receivingItem, String invoiceItem, String dateItem);

    PageView addresslistPage(ReceivingAddressQuery query);

    void updateAddressById(String receivingAddressId);

    void saveOrUpdate(ShoppingReceivingAddress data);

    ShoppingInvoice selectInvoiceDetailById(Long id);

    PageView listInvoicePage(ShoppingQuery query);

    void addOrEditInvoice(ShoppingInvoice data);

    PageView findByCartPage(OnlineMallCartQuery query);
    PageView findInfoByCartPage(OnlineMallCartQuery query);
    Integer confirmMallOrder(Long id);

    List<ShoppingCartInfoPO> detailListPage(Long cartId);
    List<ShoppingCartInfoPO> detailListPagePO(Long cartId);

    OnlineMallCart findHeadById(Long cartId);

    OnlineMallResponse pushPoToCart(Long id);

    void updateReceiptStatus(Long cartId , String rows);

    List<ExcelShopCartVO> excelShopCart(InputStream inputStream);

    ShoppingDetailReponse  findShoppingDetail(ShoppingDetailQuery query);

    OrderTrackResponse   requestMiddleOrderTrack(String packageId);

    DelOrderResponse delOrder(Long id,String orderId);

    List<OnlineMallCart> listAllExport(OnlineMallCartQuery onlineMallCartQuery);

    void afSaveOrUpdate(ShoppingAfterSalesDTO param);

    void submit(ShoppingAfterSalesDTO param);

    PageView findMyAfterSalesPage(MyAfterSalesQuery query);

    String confirmMallOrder2(Long id);

    void remove(Long id);

    Long findHeadByOrderCode(String cartId);

    ShoppingAfterSales findById(Long id);

    List<OnlineMallCart> selectDataExport(String thirdOrder);

    void whetherCallOff(Long id, Integer whetherCallOff);

    List<OnlineMallCart> selectDataExport1(OnlineMallCartQuery query);

    List<ShoppingAfterSalesPO> exportMyAfterSalesPage(MyAfterSalesQuery myAfterSalesQuery);

    void noteSave(ShoppingAfterSalesInfo param);


    ShoppingAfterSalesInfo findByInfoId(Long sasiId);

    List<ShoppingCartInfoPO> getShoppingCartInfoListPO(String billNO,String itemNO);


    //void downLoad(HttpServletRequest request, HttpServletResponse response,List<ExcelShopCartVO> exportData);

}
