package com.fs.his.service;

import com.fs.common.core.domain.R;
import com.fs.his.domain.FsExpress;
import com.fs.his.dto.ExpressInfoDTO;
import com.fs.his.param.ExpressParam;
import com.fs.his.vo.ExpressVO;


import java.util.List;

/**
 * 快递公司Service接口
 *
 * @author fs
 * @date 2022-03-15
 */
public interface IFsExpressService
{
    /**
     * 查询快递公司
     *
     * @param id 快递公司ID
     * @return 快递公司
     */
    public FsExpress selectFsExpressById(Long id);

    /**
     * 查询快递公司列表
     *
     * @param fsExpress 快递公司
     * @return 快递公司集合
     */
    public List<FsExpress> selectFsExpressList(FsExpress fsExpress);

    /**
     * 新增快递公司
     *
     * @param fsExpress 快递公司
     * @return 结果
     */
    public int insertFsExpress(FsExpress fsExpress);

    /**
     * 修改快递公司
     *
     * @param fsExpress 快递公司
     * @return 结果
     */
    public int updateFsExpress(FsExpress fsExpress);

    /**
     * 批量删除快递公司
     *
     * @param ids 需要删除的快递公司ID
     * @return 结果
     */
    public int deleteFsExpressByIds(Long[] ids);

    /**
     * 删除快递公司信息
     *
     * @param id 快递公司ID
     * @return 结果
     */
    public int deleteFsExpressById(Long id);

    ExpressInfoDTO getExpressInfo(String OrderCode, String ShipperCode, String LogisticCode, String lastFourNumber);

    FsExpress selectFsExpressByCode(String code);

    FsExpress selectFsExpressByOmsCode(String s);

    FsExpress selectFsExpressByName(String deliveryName);

    void subscribeEspress(String orderCode, String deliverySn, String deliveryId, String userPhone) ;

    R parseAddress(String content);

    void subscribeEspressByCallbackUrl (String orderCode, String deliverySn, String deliveryId, String userPhone);

    List<ExpressVO> getExpressInfoAPI(ExpressParam param);
}
