request->get(); $id = $get['id'] ?? 0; $cg = PurchaseClass::getById($id, true); if (empty($cg)) { util::fail('没有找到订单'); } if ($cg->mainId != $this->mainId) { util::fail('不是你的订单'); } $bizIdMap = dict::getDict('expressBizIdMap'); if (getenv('YII_ENV') == 'production') { $bizId = $bizIdMap[$mainId] ?? 0; if (empty($bizId)) { util::fail('没有找到月结账号'); } //暂时只支持顺丰 $deliveryId = 'SF'; } else { $deliveryId = 'TEST'; $bizId = 'test_biz_id'; } $params = [ 'deliveryId' => $deliveryId, ]; $respond = ExpressClass::getTrack($params, $cg); util::success($respond); } //计算客户距离和运费 ssh 2020.5.14 public function actionGetUserDistance() { //经度 $lng = Yii::$app->request->get('lng', ''); //纬度 $lat = Yii::$app->request->get('lat', ''); if (empty($lng) || empty($lat)) { util::fail('经度或纬度不能为空'); } $shopId = ShopService::getDefaultShopId($this->sj); $respond = ExpressService::getUserDistance($lng, $lat, $shopId, $this->sjExtend); util::success($respond); } // 获取字典中的 hasMap public function actionGetHasMap() { util::success(['hasMap' => dict::getDict('hasMap')]); } // 配送详情 public function actionDetail() { $post = Yii::$app->request->post(); $orderId = intval($post['orderId']); $order = OrderClass::getById($orderId, false, 'id, mainId, sendStatus'); if ($order['mainId'] != $this->mainId) { util::fail('订单未找到'); } // 检查是否存在重复的订单:如果存在,则使用最后一个订单的 store_order_id $storeOrderId = $orderId; // ------------------------------------- 注意区分:$storeOrderId , $orderId 。它们有可能不相同 $query = (new Query()) ->from('xhExpressOrder') ->where(['and', new \yii\db\Expression('storeOrderId LIKE CONCAT(:prefix, "%")', [':prefix' => $orderId]), ['mainId' => $this->mainId] ])->orderBy('addTime DESC'); $esDatas = $query->all(); $count = count($esDatas); $es = null; if ($count > 0) { $es = $esDatas[0]; //$storeOrderId = $es['storeOrderId']; if ($count > 1) { //noticeUtil::push('一个订单有多个配送订单'); } } if (!empty($es)) { util::success($es, "查询成功"); } else { util::complete(); } } }