package com.zfire.mall.manager.commonmapper.engin.order;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zfire.mall.manager.bean.PoySaleCountBean;
import com.zfire.mall.manager.bean.engin.order.EnginInfoHistoryItemBean;
import com.zfire.mall.manager.bean.engin.order.EnginOrderBean;
import com.zfire.mall.manager.bean.engin.order.EnginOrderListBean;
import com.zfire.mall.manager.bean.engin.v2.order.HomeEnginOrderVO;
import com.zfire.mall.manager.bean.engin.v2.order.TradeEnginOrderVO;
import com.zfire.mall.manager.plus.entity.EnginOrderItem;
import com.zfire.mall.manager.zfire.bean.ZfireParamBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface EnginOrderReserveMapper {
    IPage<EnginOrderListBean> listPage(Page<Object> objectPage,String customerWalletId, String customerKeyword, List<String> enginOrderNo, String enginOrderType,
                                       String refProjectNo, String refEnginRecordNo,
                                       String refProjectCategory, String refProjectName, String refUseUnit, String refTradeCategory,
                                       String startCreateTime, String endCreateTime,String startOrderTime,String endOrderTime, String saleTypeId,
                                       String createName, String confirmName, List<String> examineStatus, String serviceId,
                                       List<String> adminCompanyIds, String specification, List<String> serviceIds,
                                       String customerId, String materialNumber, String materialName,
                                       String materialOldNumber, String refRegionWork, String remark, String geLiInerNote,
                                       String refFactoryNo, List<String> k3CategoryIds, String refBuyUnitName,
                                       String refPromiseProvide, Boolean isDirectTransfer);

    EnginOrderBean detail(String id, List<String> adminCompanyIds, List<String> serviceIds, String customerId);

    List<EnginInfoHistoryItemBean> findHistoryItem(String customerId, String recordNo);

    List<EnginOrderListBean> queryPreOrder(String recordNo);

    List<EnginOrderItem> queryWaitPayAmount(String customerId, String examineStatus, List<String> walllets, Boolean isPlanOrder);

    PoySaleCountBean countList(String customerWalletId, String customerKeyword, List<String> enginOrderNo, String enginOrderType,
                               String refProjectNo, String refEnginRecordNo, String refProjectCategory, String refProjectName,
                               String refUseUnit, String refTradeCategory, String startCreateTime, String endCreateTime,
                               String startOrderTime, String endOrderTime, String saleTypeId, String createName,
                               String confirmName, List<String> examineStatus, String serviceId, List<String> adminCompanyIds,
                               String specification, List<String> serviceIds, String customerId, String materialNumber,
                               String materialName, String materialOldNumber, String refRegionWork, String remark,
                               String geLiInerNote, String refFactoryNo, List<String> k3CategoryIds, String refBuyUnitName,
                               String refPromiseProvide, Boolean isDirectTransfer);


    IPage<EnginOrderListBean> platformQueryList(Page<Object> objectPage,
                                                @Param("adminUserId") String adminUserId,
                                                @Param("customerId") String customerId,
                                                @Param("recordNo") String recordNo,
                                                @Param("orderNo") String orderNo,
                                                @Param("useUnit") String useUnit,
                                                @Param("specs") String specs,
                                                @Param("realModel") String realModel,
                                                @Param("address") String address,
                                                @Param("orderType") String orderType);

    IPage<HomeEnginOrderVO> v2HomeListPage(Page page, @Param("ex") ZfireParamBean zfireParamBean);

    IPage<TradeEnginOrderVO> v2TradeListPage(Page page, @Param("ex") ZfireParamBean zfireParamBean);

    PoySaleCountBean v2CountList(@Param("ex") ZfireParamBean zfireParamBean);

    PoySaleCountBean v2HomeCountList(@Param("ex") ZfireParamBean zfireParamBean);
}
