75 行
2.5 KiB
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);
|
|
}
|
|
}
|