package com.qunzhixinxi.hnqz.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qunzhixinxi.hnqz.admin.entity.WmDaCustomer;
import com.qunzhixinxi.hnqz.common.core.util.R;

import java.io.IOException;
import java.util.List;

/**
 * 档案-客户管理
 *
 * @author lixuesong
 * @date 2021年06月04日 15:45
 */
public interface WmDaCustomerService extends IService<WmDaCustomer> {

	/**
	 * 根据id查询
	 *
	 * @param id
	 * @return
	 */
	WmDaCustomer getCustomerById(Integer id);

	/**
	 * 分页查询
	 *
	 * @param page
	 * @param wmDaCustomer
	 * @return
	 */
	IPage<WmDaCustomer> listCustomerPage(Page page, WmDaCustomer wmDaCustomer);

	/**
	 * 查询销售报表展示的客户（停用的，有结算额的要展示）
	 *
	 * @param page 分页对象
	 * @param wmDaCustomer 客户对象
	 * @param year 年份
	 * @param startMonth 开始月份
	 * @param endMonth 结束月份
	 * @return
	 */
	IPage<WmDaCustomer> listCustomerWithGmvPage(Page page, WmDaCustomer wmDaCustomer, String year, Integer startMonth, Integer endMonth);

	/**
	 * 查询销售报表展示的客户（停用的，有结算额的要展示）
	 *
	 * @param wmDaCustomer 客户对象
	 * @param year 年份
	 * @param startMonth 开始月份
	 * @param endMonth 结束月份
	 * @return
	 */
	List<WmDaCustomer> listCustomerWithGmv(WmDaCustomer wmDaCustomer, String year, Integer startMonth, Integer endMonth);

	/**
	 * 新增客户
	 *
	 * @param wmDaCustomer
	 */
    void saveCustomer(WmDaCustomer wmDaCustomer);

	/**
	 * 更新客户
	 *
	 * @param wmDaCustomer
	 */
	void updateCustomerById(WmDaCustomer wmDaCustomer);

	/**
	 * 导出数据
	 *
	 * @param customerList
	 * @return
	 */
	R exportCustomer(List<WmDaCustomer> customerList) throws IOException;
}
