<?php

/**
 * User: Eden
 */

namespace Common\Util;

use Vendor\Func\Http;

class ExpressUtil extends CommonUtil
{
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * 获取物流
     */
    public function getExpress($com,$no) {
        $url = \'http://v.juhe.cn/exp/index\';
        $params = [
            \'com\' => $com,
            \'no\'  => $no,
            \'key\' => C(\'EXPRESS_KEY\'),
        ];
        $result = Http::newDoGet($url, $params,5);
        $result = json_decode($result, true);
        if ($result[\'error_code\'] == 0) {
            return $result[\'result\'];
        } else {
            return false;
        }
    }

    /**
     * 获取状态
     */
    public function getStatusDetail($status_detail)
    {
        switch ($status_detail) {
            case \'PENDING\':
                return \'待查询\';
                break;
            case \'NO_RECORD\':
                return \'无记录\';
                break;
            case \'ERROR\':
                return \'查询异常\';
                break;
            case \'IN_TRANSIT\':
                return \'运输中\';
                break;
            case \'DELIVERING\':
                return \'派件中\';
                break;
            case \'SIGNED\':
                return \'已签收\';
                break;
            case \'REJECTED\':
                return \'拒签\';
                break;
            case \'PROBLEM\':
                return \'疑难件\';
                break;
            case \'INVALID\':
                return \'无效件\';
                break;
            case \'TIMEOUT\':
                return \'超时件\';
                break;
            case \'FAILED\':
                return \'派送失败\';
                break;
            case \'SEND_BACK\':
                return \'退回\';
                break;
            case \'TAKING\':
                return \'揽件\';
                break;
            default:
                return \'无\';
        }
    }
}

具体调用

/**
 * 获取订单物流
 */
public function getOrderExpress() {
    if (!$order_id = trim($_POST[\'order_id\'])) {
        $this->json->err(\'缺少订单信息\');
    }
    $order_express      = M(\'order_express\');
    $expressUtil = new ExpressUtil();
    $order_express_info = $order_express->where([\'order_id\' => $order_id])->find();
    if (!$order_express_info) {
        $this->json->err(\'物流信息不存在\');
    }

    if ($order_express_info[\'is_end\'] == 1 && $order_express_info[\'result_json\']) {
        $res = json_decode($order_express_info[\'result_json\'],true);
        $res[\'status_detail_str\'] = $expressUtil->getStatusDetail($res[\'status_detail\']);
        $this->json->ok($res);
    }

    
    $res = $expressUtil->getExpress($order_express_info[\'com\'],$order_express_info[\'no\']);
    if ($res && $res[\'status\'] == 1) {
        $edit_data = [
            \'is_end\' => 1,
            \'result_json\' => json_encode($res,JSON_UNESCAPED_UNICODE)
        ];
        $order_express->where([\'id\'=>$order_express_info[\'id\']])->save($edit_data);
        $res[\'status_detail_str\'] = $expressUtil->getStatusDetail($res[\'status_detail\']);
    }
    $this->json->ok($res);
}

状态为1的时候,将信息保存到数据库。

版权声明:本文为jiqing9006原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/jiqing9006/p/13217688.html