java根据物流单号查询物流详细

java根据物流单号查询物流信息

package com.yoyo.expressage.controller;
import com.alibaba.fastjson.JSON;
import com.yoyo.expressage.resquest.KdNiaoDto;
import com.yoyo.expressage.util.KdNiaoUtil;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
public class KDNiao {
//以圆通快递测试
    static  final  String fastId ="YTO";
    static  final  String fastName="圆通快递";
    @ApiOperation(value = "获取的物流跟踪数据")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "traceId", paramType = "query", value = "快递单号", required = true, dataType = "String"), })
    @GetMapping(value = "/getKdNiaoFastList")
    public Object getKdNiao( @RequestParam(value = "traceId") String traceId) throws Exception {
        if(StringUtils.isEmpty(traceId)){
            return new Exception("快递单号不能为空");
        }
        //接入第三方快递鸟 获取物流状态
        String  json = KdNiaoUtil.getOrderTracesByJson(fastId,traceId);
        if (json == null)
            throw new Exception("物流信息不存在");
        KdNiaoDto kdNiaoDto = JSON.parseObject(json, KdNiaoDto.class);
        // 物流状态(0:无轨迹 ,1已揽收 2在途中 3签收 4问题件)
        if ("false".equals(kdNiaoDto.getSuccess()))
            throw new Exception("不支持该运单号,请到官网查询");

        Map<String, Object> map = new HashMap<>();
        map.put("fastName",fastName);
        map.put("traceId", traceId);
        map.put("state", kdNiaoDto.getState());
        map.put("success", kdNiaoDto.getSuccess());
        map.put("dataList", kdNiaoDto.getTraces());
        return map;

    }
}

package com.yoyo.expressage.util;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.util.HashMap;
import java.util.Map;


/**
 * 整合第三方物流(快递鸟)接口的工具类
 */
public class KdNiaoUtil {

//快递鸟官网自己申请一个账号
    private static String URL = "";

    private static String EBUSINE
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我无法直接提供完整的Java物流快递管理系统代码。这是因为该系统的代码需要根据具体需求进行设计和开发,并且涉及到多个模块和功能。如果您需要开发此类系统,建议您参考相关的Java物流快递管理系统开发教程和文档,以及借助一些开源框架和工具进行开发。 以下是一个简单的Java物流快递管理系统的代码示例,作为参考: ```java // 物流快递管理系统主类 public class LogisticsManagementSystem { // 主函数 public static void main(String[] args) { // 创建物流管理对象 LogisticsManager manager = new LogisticsManager(); // 初始化数据 manager.initData(); // 显示菜单 manager.showMenu(); } } // 物流管理类 public class LogisticsManager { // 快递列表 private List<Express> expressList; // 初始化数据 public void initData() { expressList = new ArrayList<>(); expressList.add(new Express("1001", "Tom", "Beijing")); expressList.add(new Express("1002", "Jack", "Shanghai")); expressList.add(new Express("1003", "Mary", "Guangzhou")); } // 显示菜单 public void showMenu() { Scanner scanner = new Scanner(System.in); while (true) { System.out.println("请选择操作:"); System.out.println("1. 添加快递"); System.out.println("2. 删除快递"); System.out.println("3. 修改快递"); System.out.println("4. 查询快递"); System.out.println("5. 退出系统"); int choice = scanner.nextInt(); switch (choice) { case 1: addExpress(scanner); break; case 2: deleteExpress(scanner); break; case 3: modifyExpress(scanner); break; case 4: queryExpress(scanner); break; case 5: System.out.println("系统已退出。"); return; default: System.out.println("无效操作,请重新选择。"); } } } // 添加快递 private void addExpress(Scanner scanner) { System.out.println("请输入快递单号:"); String id = scanner.next(); System.out.println("请输入收件人姓名:"); String name = scanner.next(); System.out.println("请输入收件人地址:"); String address = scanner.next(); Express express = new Express(id, name, address); expressList.add(express); System.out.println("添加成功。"); } // 删除快递 private void deleteExpress(Scanner scanner) { System.out.println("请输入快递单号:"); String id = scanner.next(); Iterator<Express> iter = expressList.iterator(); while (iter.hasNext()) { Express express = iter.next(); if (express.getId().equals(id)) { iter.remove(); System.out.println("删除成功。"); return; } } System.out.println("未找到该快递单号。"); } // 修改快递 private void modifyExpress(Scanner scanner) { System.out.println("请输入快递单号:"); String id = scanner.next(); for (Express express : expressList) { if (express.getId().equals(id)) { System.out.println("请输入新的收件人姓名(直接回车表示不修改):"); String name = scanner.nextLine().trim(); if (!name.isEmpty()) { express.setName(name); } System.out.println("请输入新的收件人地址(直接回车表示不修改):"); String address = scanner.nextLine().trim(); if (!address.isEmpty()) { express.setAddress(address); } System.out.println("修改成功。"); return; } } System.out.println("未找到该快递单号。"); } // 查询快递 private void queryExpress(Scanner scanner) { System.out.println("请输入快递单号:"); String id = scanner.next(); for (Express express : expressList) { if (express.getId().equals(id)) { System.out.println("快递单号:" + express.getId()); System.out.println("收件人姓名:" + express.getName()); System.out.println("收件人地址:" + express.getAddress()); return; } } System.out.println("未找到该快递单号。"); } } // 快递类 public class Express { // 快递单号 private String id; // 收件人姓名 private String name; // 收件人地址 private String address; public Express(String id, String name, String address) { this.id = id; this.name = name; this.address = address; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } } ``` 该示例实现了一个简单的物流快递管理系统,包含添加、删除、修改和查询快递等基本功能。但是该代码仅供参考,如果需要开发更为复杂的物流快递管理系统,需要根据实际需求进行设计和开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值