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); } }