package com.ghy.order.service;

import com.ghy.order.domain.LogisticsInfo;
import com.ghy.order.request.LogisticsQueryRequest;

/**
 * 物流服务接口
 *
 * @author clunt
 */
public interface LogisticsService {
    
    /**
     * 根据快递单号查询物流信息
     *
     * @param request 物流查询请求
     * @return 物流信息
     */
    LogisticsInfo queryLogistics(LogisticsQueryRequest request);
    
    /**
     * 根据快递单号查询物流信息
     *
     * @param trackingNumber 快递单号
     * @return 物流信息
     */
    LogisticsInfo queryLogistics(String trackingNumber);
    
    /**
     * 根据快递单号和快递公司编码查询物流信息
     *
     * @param trackingNumber 快递单号
     * @param expressCode    快递公司编码
     * @return 物流信息
     */
    LogisticsInfo queryLogistics(String trackingNumber, String expressCode);
    
    /**
     * 根据快递单号、快递公司编码和手机号查询物流信息
     *
     * @param trackingNumber 快递单号
     * @param expressCode    快递公司编码
     * @param mobile         手机号
     * @return 物流信息
     */
    LogisticsInfo queryLogistics(String trackingNumber, String expressCode, String mobile);
    
    /**
     * 根据订单ID查询物流信息
     *
     * @param orderId 订单ID
     * @return 物流信息
     */
    LogisticsInfo queryLogisticsByOrderId(Long orderId);
} 