package net.lab1024.sa.admin.module.business.wms.base.customer.service;


import net.lab1024.sa.admin.module.business.wms.base.customer.domain.entity.CustomerEntity;
import net.lab1024.sa.admin.module.business.wms.base.customer.domain.form.CustomerQueryForm;
import net.lab1024.sa.admin.module.business.wms.base.customer.domain.form.CustomerSelect;
import net.lab1024.sa.admin.module.business.wms.base.customer.domain.vo.CustomerVO;
import net.lab1024.sa.base.common.domain.PageResult;

import java.util.List;
import java.util.Map;

public interface CustomerQueryService {

    /**
     * 分页查询
     *
     * @param queryForm 查询参数
     * @return PageResult<CustomerVO>
     */
    PageResult<CustomerVO> queryPage(CustomerQueryForm queryForm);

    /**
     * 查询所有客户信息
     *
     * @return List<CustomerEntity>
     */
    List<CustomerEntity> queryCustomer(CustomerSelect customerSelect);

    /**
     * 根据客户id集合查询客户信息
     *
     * @param customerIdList 客户id集合
     * @return Map<Long, CustomerEntity>
     */
    Map<Long, CustomerEntity> queryByCustomerIdsToMap(List<Long> customerIdList);

    /**
     * 根据客户名称查询客户信息
     *
     * @param customerName 客户名称
     * @return CustomerEntity
     */
    CustomerEntity queryByCustomerName(String customerName);
}
