package com.fjhx.sale.mapper.sale;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fjhx.customer.entity.customer.dto.CustomerDto;
import com.fjhx.sale.entity.sale.po.SaleQuotation;
import com.fjhx.sale.entity.sale.vo.SaleQuotationVo;
import com.ruoyi.common.utils.wrapper.IWrapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * <p>
 * 报价表 Mapper 接口
 * </p>
 *
 * @author
 * @since 2023-04-14
 */
public interface SaleQuotationMapper extends BaseMapper<SaleQuotation> {

    /**
     * 报价表分页
     */
    Page<SaleQuotationVo> getPage(@Param("page") Page<Object> page, @Param("ew") LambdaQueryWrapper<SaleQuotation> wrapper);

    /**
     * 查询这个客户的报价次数
     * @param id （客户ID）
     */
    Integer getCount(Long id);

    /**
     * 查询指定客户的每月报价总额
     * @param dto
     * @return
     */
    List<SaleQuotationVo> getAmount(CustomerDto dto);

    Page<SaleQuotationVo> saleDetail(@Param("page") Page<Object> page, @Param("ew") IWrapper<SaleQuotation> ew);

    Page<SaleQuotationVo> latestFollowUp(@Param("page") Page<Object> page, @Param("ew") IWrapper<Object> orderByDesc, @Param("id") Long id, @Param("tenantId") String tenantId);

    /**
     * 类型统计（客户分析）
     */
    List<SaleQuotationVo> saleStatistics(@Param("ew") QueryWrapper<Object> query);
}
