package com.zfire.mall.manager.commonmapper.front;

import com.baomidou.mybatisplus.annotation.SqlParser;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zfire.mall.manager.bean.front.*;
import com.zfire.mall.manager.zfire.bean.ZfireParamBean;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author chang
 */
@Mapper
public interface CustomerFrontMapper {


    @SqlParser(filter = true)
    IPage<CustomerStockBean> stockList(IPage page,
                                       @Param("ex") ZfireParamBean zfireParam,
                                       @Param("customers")List<String> customers);

    @SqlParser(filter = true)
    IPage<CustomerStockOrderBean> listCustomerAcc(IPage page,
                                                  @Param("ex") ZfireParamBean zfireParam,
                                                  @Param("customerId") String customerId);

    @SqlParser(filter = true)
    IPage<CustomerStockAccBean> listStockAcc(IPage page,
                                             @Param("ex") ZfireParamBean zfireParam,
                                             @Param("customerId") String customerId);

    @SqlParser(filter = true)
    IPage<CustomerTransferOrderBean> listTransfer(IPage page,
                                                  @Param("ex") ZfireParamBean zfireParam,
                                                  @Param("customers")List<String> customers);

    @SqlParser(filter = true)
    IPage<CostBillListVO> listCostBill(IPage page,
                                       @Param("ex") ZfireParamBean zfireParam,
                                       @Param("customerNumber")String customerNumber,
                                       @Param("customerNumberS")List<String> customerNumberS);

    @SqlParser(filter = true)
    IPage<CustomerCodeVO> listV2(IPage page,
                                 @Param("ex") ZfireParamBean zfireParam,
                                 @Param("customers")List<String> customers);

    @SqlParser(filter = true)
    IPage<CustomerCodeCustomerVO> listCustomer(IPage page,
                                               @Param("ex") ZfireParamBean zfireParam,
                                               @Param("customers")List<String> customers);

    @SqlParser(filter = true)
    IPage<CustomerCodeCustomerCheckVO> listCustomerCheck(IPage page,
                                                         @Param("ex") ZfireParamBean zfireParam,
                                                         @Param("customers")List<String> customers);

    @SqlParser(filter = true)
    void updateBatch(String batch);


    @SqlParser(filter = true)
    IPage<CustomerCodeVO> listDaCang(IPage page,
                                     @Param("ex") ZfireParamBean zfireParam,
                                     @Param("customers")List<String> customers);

    @SqlParser(filter = true)
    IPage<CostMerchantListVO> listMerchant(IPage page,
                                           @Param("ex") ZfireParamBean zfireParam,
                                           @Param("customerNumber")String customerNumber,
                                           @Param("customerNumberS")List<String> customerNumberS);
    @SqlParser(filter = true)
    IPage<CostSalesListVO> listSales(IPage page,
                                     @Param("ex") ZfireParamBean zfireParam,
                                     @Param("customerNumber")String customerNumber,
                                     @Param("customerNumberS")List<String> customerNumberS);

    @SqlParser(filter = true)
    IPage<CostTicketListVO> listTicket(IPage page,
                                       @Param("ex") ZfireParamBean zfireParam,
                                       @Param("customerNumber")String customerNumber,
                                       @Param("customerNumberS")List<String> customerNumberS);

    @SqlParser(filter = true)
    IPage<CustomerCodeInstallVO> listCode(IPage page,
                                          @Param("ex") ZfireParamBean zfireParam,
                                          @Param("customerNumberS")List<String> customerNumberS);
}
