第一篇:丰桥SDK之路由查询【顺丰查询订单的物流信息】

项目的包结构

配置文件配置信息【application.yml】

丰桥月结卡号自己去注册

配置文件中的配置信息的获取代码

package com.test.demo.express.config;

import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * @Author: 
 * @Date: 2018/10/22 18:13
 * @Description:
 */
@ConfigurationProperties(prefix = "sf.route.express")
public class SfExpressProperties {

    private String clientCode;
    private String checkWord;
    private String reqURL;
    private String expressName;

    public String getClientCode() {
        return clientCode;
    }

    public void setClientCode(String clientCode) {
        this.clientCode = clientCode;
    }

    public String getCheckWord() {
        return checkWord;
    }

    public void setCheckWord(String checkWord) {
        this.checkWord = checkWord;
    }

    public String getReqURL() {
        return reqURL;
    }

    public void setReqURL(String reqURL) {
        this.reqURL = reqURL;
    }

    public String getExpressName() {
        return expressName;
    }

    public void setExpressName(String expressName) {
        this.expressName = expressName;
    }

    @Override
    public String toString() {
        return "SfExpressProperties{" +
                "clientCode='" + clientCode + '\'' +
                ", checkWord='" + checkWord + '\'' +
                ", reqURL='" + reqURL + '\'' +
                ", expressName='" + expressName + '\'' +
                '}';
    }
}

参数封装

package com.test.demo.express.sf.param;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * @Author: 
 * @Date: 2018/10/18 17:27
 * @Description:
 */
@ApiModel(value = "SfTracesParam")
public class SfTracesParam {

    @ApiModelProperty(value = "快递单号")
    private String wayBillNo;

    @ApiModelProperty(value = "订单编号")
    private String orderSn;

    public String getWayBillNo() {
        return wayBillNo;
    }

    public void setWayBillNo(String wayBillNo) {
        this.wayBillNo = wayBillNo;
    }

    public String getOrderSn() {
        return orderSn;
    }

    public void setOrderSn(String orderSn) {
        this.orderSn = orderSn;
    }

    @Override
    public String toString() {
        return "SfTracesParam{" +
                "wayBillNo='" + wayBillNo + '\'' +
                ", orderSn='" + orderSn + '\'' +
                '}';
    }
}

返回值封装

这里的返回值,就是我们调用顺丰的接口返回的路由信息XLM文件,经过xmlutil.java解析以后对应的字段。

为封装成对象返回json做准备。

package com.test.demo.express.sf.dto;

import javax.xml.bind.annotation.*;
import java.io.Serializable;
import java.util.List;

/**
 * @Author:
 * @Date: 2018/10/18 0:12
 * @Description:
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "Response")
public class SfExpressResponseDTO implements Serializable{

    private static final long serialVersionUID = 1L;
    /**
     * 响应状态
     */
    @XmlElement(name = "Head")
    private String Head;

    /**
     * 响应结果
     */
    @XmlElement(name = "Body")
    private Body Body;

    /**
     * 快递公司名称
     */
    private String expressName;

    /**
     * 快递单号
     */
    private String wayBillNo;

    /**
     * 订单号
     */
    private String orderSn;

    @XmlAccessorType(XmlAccessType.NONE)
    public static class Body {
        /**
         * 响应的物流信息
         */
        @XmlElement(name = "RouteResponse")
        private RouteResponse RouteResponse;

        public SfExpressResponseDTO.RouteResponse getRouteResponse() {
            return RouteResponse;
        }

        public void setRouteResponse(SfExpressResponseDTO.RouteResponse routeResponse) {
            RouteResponse = routeResponse;
        }

        @Override
        public String toString() {
            return "Body{" +
                    "RouteResponse=" + RouteResponse +
                    '}';
        }
    }

    @XmlRootElement(name="RouteResponse")
    @XmlAccessorType(XmlAccessType.NONE)
    public static class RouteResponse {
        /**
         * 运单号
         */
        @XmlAttribute(name = "mailno")
        private String mailNo;

        /**
         * 订单号
         */
        @XmlAttribute(name = "orderid")
        private String orderid;

        /**
         * 路由
         */
        @XmlElement(name = "Route")
        private List<Route> Route ;

        public String getMailNo() {
            return mailNo;
        }

        public void setMailNo(String mailNo) {
            this.mailNo = mailNo;
        }

        public String getOrderid() {
            return orderid;
        }

        public void setOrderid(String orderid) {
            this.orderid = orderid;
        }

        public List<SfExpressResponseDTO.Route> getRoute() {
            return Route;
        }

        public void setRoute(List<SfExpressResponseDTO.Route> route) {
            Route = route;
        }

        @Override
        public String toString() {
            return "RouteResponse{" +
                    "mailNo='" + mailNo + '\'' +
                    ", orderid='" + orderid + '\'' +
                    ", Route=" + Route +
                    '}';
        }
    }

    @XmlRootElement(name="Route")
    @XmlAccessorType(XmlAccessType.NONE)
    public static class Route {
        /**
         * 路由节点发生的时间
         */
        @XmlAttribute(name = "accept_time")
        private String acceptTime;

        /**
         * 路由节点标识描述
         */
        @XmlAttribute(name = "remark")
        private String remark;

        /**
         * 路由节点地址描述
         */
        @XmlAttribute(name = "accept_address")
        private String accept_address;

        /**
         * 路由节点操作码
         */
        @XmlAttribute(name = "opcode")
        private String opcode;

        public String getAcceptTime() {
            return acceptTime;
        }

        public void setAcceptTime(String acceptTime) {
            this.acceptTime = acceptTime;
        }

        public String getRemark() {
            return remark;
        }

        public void setRemark(String remark) {
            this.remark = remark;
        }

        public String getOpcode() {
            return opcode;
        }

        public void setOpcode(String opcode) {
            this.opcode = opcode;
        }

        public String getAccept_address() {
            return accept_address;
        }

        public void setAccept_address(String accept_address) {
            this.accept_address = accept_address;
        }

        @Override
        public String toString() {
            return "Route{" +
                    "acceptTime='" + acceptTime + '\'' +
                    ", remark='" + remark + '\'' +
                    ", accept_address='" + accept_address + '\'' +
                    ", opcode='" + opcode + '\'' +
                    '}';
        }
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public String getHead() {
        return Head;
    }

    public void setHead(String head) {
        Head = head;
    }

    public SfExpressResponseDTO.Body getBody() {
        return Body;
    }

    public void setBody(SfExpressResponseDTO.Body body) {
        Body = body;
    }

    public String getExpressName() {
        return expressName;
    }

    public void setExpressName(String expressName) {
        this.expressName = expressName;
    }

    public String getWayBillNo() {
        return wayBillNo;
    }

    public void setWayBillNo(String wayBillNo) {
        this.wayBillNo = wayBillNo;
    }

    public String getOrderSn() {
        return orderSn;
    }

    public void setOrderSn(String orderSn) {
        this.orderSn = orderSn;
    }

    @Override
    public String toString() {
        return "SfExpressResponseDTO{" +
                "Head='" + Head + '\'' +
                ", Body=" + Body +
                ", expressName='" + expressName + '\'' +
                ", wayBillNo='" + wayBillNo + '\'' +
                ", orderSn='" + orderSn + '\'' +
                '}';
    }
}

后续文章链接

第二篇:https://blog.youkuaiyun.com/wildwolf_001/article/details/83411476

第三篇:https://blog.youkuaiyun.com/wildwolf_001/article/details/83411607

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞流2023

小主,破费了,回头请你喝咖啡!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值