文件
xionggeshop/addons/shopro/controller/OrderExpress.php

75 行
2.5 KiB
PHP

<?php
namespace addons\shopro\controller;
use fast\ExpressBird;
class OrderExpress extends Base
{
protected $noNeedLogin = [];
protected $noNeedRight = ['*'];
public function index()
{
$params = $this->request->get();
$this->success('包裹列表', \addons\shopro\model\OrderExpress::getList($params));
}
public function detail()
{
$params = $this->request->get();
$result = \addons\shopro\model\OrderExpress::detail($params);
$order = \addons\shopro\model\Order::where(['id' => $params['order_id']])
->field(['id', 'consignee', 'phone', 'address'])
->find();
$trackList = [];
$expressStatus = '';
$expressCompanyName = '';
$expressNo = class_exists('\\addons\\shopro_aliyun_express\\library\\ExpressSanitizer')
? \addons\shopro_aliyun_express\library\ExpressSanitizer::waybillNo($result['express_no'] ?? '')
: trim($result['express_no'] ?? '');
if (class_exists('\\addons\\shopro_aliyun_express\\library\\Bridge')) {
try {
$queryResult = \addons\shopro_aliyun_express\library\Bridge::queryTrack(
$expressNo,
$order ? $order->phone : '',
$result['express_code'] ?? ''
);
$trackList = $queryResult['trackList'] ?? [];
$expressStatus = $queryResult['expressStatus'] ?? '';
$expressCompanyName = $queryResult['expressCompanyName'] ?? '';
} catch (\Exception $e) {
$trackList = [];
}
} else {
$expressBird = new ExpressBird();
$ret = $expressBird->queryTrack($expressNo, $order ? $order->phone : '');
if (!empty($ret['Success'])) {
$trackList = $ret['Traces'] ?? [];
if (!empty($trackList)) {
foreach ($trackList as $k => &$v) {
if (($v['Action'] ?? null) == 202 && $k >= 2) {
$trackList[$k - 2]['Action'] = 3;
$trackList[$k - 1]['Action'] = 4;
}
}
unset($v);
}
}
}
$result['trackList'] = $trackList;
$result['expressStatus'] = $expressStatus;
$result['expressCompanyName'] = $expressCompanyName;
$this->success('包裹详情', $result);
}
}