package cn.iocoder.yudao.module.custom.service;


import cn.iocoder.yudao.module.custom.entity.CustomerMain;
import cn.iocoder.yudao.module.custom.vo.CustomerMainPageReqVO;
import cn.iocoder.yudao.module.custom.vo.CustomerMainRespVO;
import cn.iocoder.yudao.module.custom.vo.CustomerMainSaveReqVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 客户管理 Service 接口
 *
 * @author pqz
 */
public interface CustomerMainService extends IService<CustomerMain> {

    /**
     * 客户管理分页列表查询
     *
     * @param pageReqVO 客户管理查询条件封装实体
     * @param page      分页参数
     * @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.custom.vo.CustomerMainRespVO>
     * @author PQZ
     * @date 14:57 2024/8/1
     **/
    IPage<CustomerMainRespVO> queryListPage(CustomerMainPageReqVO pageReqVO, Page<CustomerMainRespVO> page);

    /**
     * 保存客户信息
     *
     * @param saveReqVO 保存客户信息扩展实体
     * @return void
     * @author PQZ
     * @date 15:46 2024/8/1
     **/
    void saveCustomer(CustomerMainSaveReqVO saveReqVO);

    /**
     * 根据客户id查询客户信息
     * @author PQZ
     * @date 15:12 2024/8/2
     * @param id 客户id
     * @return cn.iocoder.yudao.module.custom.vo.CustomerMainRespVO
    **/
    CustomerMainRespVO getCustomerById(String id);

    /**
     * 根据经办人所属企业查询经办人信息
     * @author PQZ
     * @date 16:15 2024/8/2
     * @param deptCode 经办人所属企业code
     * @return java.util.List<cn.iocoder.yudao.module.custom.vo.CustomerMainRespVO>
    **/
    List<CustomerMain> getCustomerByDeptCode(String deptCode);

}