package com.fjhx.customer.mapper.customer;

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

import java.util.List;

/**
 * <p>
 * 客户表 Mapper 接口
 * </p>
 *
 * @author
 * @since 2023-04-04
 */
public interface CustomerMapper extends BaseMapper<Customer> {

    /**
     * 客户表列表
     */
    List<CustomerVo> getList(@Param("ew") IWrapper<Customer> wrapper);

    /**
     * 客户表分页
     */
    Page<CustomerVo> getPage(@Param("page") Page<Object> page, @Param("ew")IWrapper<CustomerVo> wrapper);


    /**
     * 来源存量（客户分析）
     * @param query
     * @return
     */
    List<CustomerVo> sourceStock(@Param("ew") QueryWrapper<Object> query);

    /**
     * 来源增量（客户分析）
     * @param query
     * @return
     */
    List<CustomerVo> sourceIncrement(@Param("ew") QueryWrapper<Object> query);


    /**
     * 客户分配
     */
    void customerAllocation(CustomerDto dto);
}
