package com.fs.express;


import com.fs.express.dto.DeliveryDTO;
import com.fs.store.domain.FsStoreDelivers;

import java.util.List;

/**
 * 物流信息查询类
 * @author xdd
 */
public interface FsStoreDeliversService {

    /**
     * 根据ID查询发货信息
     *
     * @param id 主键ID
     * @return 发货信息
     */
    FsStoreDelivers findById(Integer id);

    /**
     * 保存发货信息
     *
     * @param fsStoreDelivers 发货信息对象
     * @return 插入后的发货信息对象（包含自动生成的主键）
     */
    FsStoreDelivers save(FsStoreDelivers fsStoreDelivers);

    /**
     * 更新发货信息
     *
     * @param fsStoreDelivers 发货信息对象
     * @return 更新是否成功
     */
    boolean update(FsStoreDelivers fsStoreDelivers);
     /**
     * 根据orderId查询
     * @param orderId 订单id
     * @return List<FsStoreDelivers>
     */
    List<FsStoreDelivers> findByOrderId(Long orderId);

    /**
     * 签收订单
     * 获取当前订单下面的所有物流信息，如果都是已签收就更新订单状态
     * @param orderId 订单id
     */
    void finishOrder(Long orderId);

    /**
     * 同步物流信息
     * @param orderId 订单号
     */
    void syncDeliverInfo(Long orderId);

    FsStoreDelivers findByOrderCodeAndDeliverId(String deliverId);

    void editDeliveryId(FsStoreDelivers deliveryDTO);

    FsStoreDelivers findByOrderCode(String orderCode);
}
