zoukankan      html  css  js  c++  java
  • 聚合数据获取物流信息

    <?php
    
    /**
     * User: Eden
     */
    
    namespace CommonUtil;
    
    use VendorFuncHttp;
    
    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的时候,将信息保存到数据库。

  • 相关阅读:
    Redis 查看、删除keys
    gitlab 备份和恢复
    gitlab的搭建
    certbot 域名续期及证书查看
    晴天(周杰伦)
    SSH Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
    jenkins miaration section 1
    jenkins 忘记管理员密码
    Yangk's-树状数组 模板
    codeforces-977F-Consecutive Subsequence【动态规划】
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/13217688.html
Copyright © 2011-2022 走看看