Преглед изворни кода

1.跑腿备注bug修复 2.刷新城市列表与保存修改

shizhongqi пре 8 месеци
родитељ
комит
72597b2ff7

+ 4 - 25
app-ghs/controllers/DeliveryController.php

@@ -198,16 +198,6 @@ class DeliveryController extends BaseController
                 }
             }
 
-            // 把newCitiesArr保存到 platform/huolala/cities.php 文件中
-            $citiesFile = Yii::getAlias('@common/components/delivery/platform/shansong/cities.php');
-            // 如果文件不存在,则创建文件
-            if (!file_exists($citiesFile)) {
-                file_put_contents($citiesFile, '<?php return []; ?>');
-            }
-            // 文件内容要包含命名空间
-            $content = '<?php return ' . var_export($newCitiesArr, true) . '; ?>';
-            file_put_contents($citiesFile, $content);
-
             return $newCitiesArr;
         } else if ($platform == 'huolala') {
             $citiesArr = $cities['data']['city_list'];
@@ -221,20 +211,9 @@ class DeliveryController extends BaseController
                 ];
             }
 
-            // 把newCitiesArr保存到 platform/huolala/cities.php 文件中
-            $citiesFile = Yii::getAlias('@common/components/delivery/platform/huolala/cities.php');
-            // 如果文件不存在,则创建文件
-            if (!file_exists($citiesFile)) {
-                file_put_contents($citiesFile, '<?php namespace common\components\delivery\platform\huolala; return []; ?>');
-            }
-            // 文件内容要包含命名空间
-            $content = '<?php namespace common\components\delivery\platform\huolala; return ' . var_export($newCitiesArr, true) . '; ?>';
-            file_put_contents($citiesFile, $content);
-
             return $newCitiesArr;
-        } else {
-            return $cities;
         }
+
         return $cities;
     }
 
@@ -261,14 +240,14 @@ class DeliveryController extends BaseController
     {
         $post = Yii::$app->request->post();
         $orderTime = $post['pickupTime'];
-        $remark = $post['remark'];
+        //$remark = $post['remark'];
 
         $adminId = $this->adminId;
         util::checkRepeatCommit($adminId, 4);
 
         $orderId = intval($post['orderId']);
         $order = OrderClass::getById($orderId);
-        $order['remark'] = $remark; // 把备注信息写入
+        //$order['remark'] = $remark; // 把备注信息写入
         $shop = ShopClass::getById($this->shopId);
 
         $ds = new DispatchService($this->mainId);
@@ -379,7 +358,7 @@ class DeliveryController extends BaseController
 
         $params['mainId'] = $this->mainId;
         $params['ip'] = Yii::$app->request->userIP;
-        $params['remark'] = $post['reark'];
+        $params['remark'] = $post['remark'];
         $params['total_price_fen'] = $post['price'];
         $params['pickupTime'] = $pickupTime['value'];
         $shopId = $this->shopId;

+ 27 - 1
common/components/delivery/services/adapter/HuolalaAdapter.php

@@ -1,6 +1,7 @@
 <?php
 namespace common\components\delivery\services\adapter;
 
+use common\components\delivery\services\DispatchService;
 use Yii;
 use common\components\delivery\helpers\HttpClient;
 use common\components\delivery\platform\huolala\Huolala;
@@ -26,8 +27,29 @@ class HuolalaAdapter extends Huolala implements Adapter
     {
         // 构建请求参数(无业务数据)
         $payload = $this->buildRequestPayload('u-city-list', []);
-        // 发送请求
         $resp = HttpClient::post($this->baseUrl, $payload);
+
+        $citiesArr = $resp['data']['city_list'];
+        $newCitiesArr = [
+            'expire' => $resp['data']['expire'],
+        ];
+        foreach($citiesArr as $city) {
+            $newCitiesArr[$city['name']] = [
+                'city_id' => $city['city_id'],
+                'city_name' => $city['name'],
+            ];
+        }
+
+        // 把newCitiesArr保存到 platform/huolala/cities.php 文件中
+        $citiesFile = Yii::getAlias('@common/components/delivery/platform/huolala/cities.php');
+        // 如果文件不存在,则创建文件
+        if (!file_exists($citiesFile)) {
+            file_put_contents($citiesFile, '<?php namespace common\components\delivery\platform\huolala; return []; ?>');
+        }
+        // 文件内容要包含命名空间
+        $content = '<?php namespace common\components\delivery\platform\huolala; return ' . var_export($newCitiesArr, true) . '; ?>';
+        file_put_contents($citiesFile, $content);
+
         return $resp;
     }
 
@@ -342,6 +364,10 @@ class HuolalaAdapter extends Huolala implements Adapter
             ];
         }
 
+        if(in_array($resp['ret'], [30010, 30011, 31006])){ // 错误状态码
+            $this->cityList(); // 刷新城市列表信息
+        }
+
         return [
             'code' => $resp['ret'] ?? -1,
             'msg' => $resp['msg'] ?? 'Unknown error',

+ 19 - 1
common/components/delivery/services/adapter/ShansongAdapter.php

@@ -1,5 +1,4 @@
 <?php
-
 namespace common\components\delivery\services\adapter;
 
 use common\components\delivery\helpers\HttpClient;
@@ -21,6 +20,25 @@ class ShansongAdapter extends Shansong implements Adapter
         $payload['sign'] = $sign;
 
         $resp = HttpClient::post("{$this->baseUrl}/openapi/developer/v5/openCitiesLists", $payload);
+
+        $newCitiesArr = [];
+        $citiesArr = $resp['data'];
+        foreach($citiesArr as $block) {
+            foreach ($block['cities'] as $city) {
+                $newCitiesArr[$city['name']] = $city;
+            }
+        }
+
+        // 把newCitiesArr保存到 platform/huolala/cities.php 文件中
+        $citiesFile = Yii::getAlias('@common/components/delivery/platform/shansong/cities.php');
+        // 如果文件不存在,则创建文件
+        if (!file_exists($citiesFile)) {
+            file_put_contents($citiesFile, '<?php return []; ?>');
+        }
+        // 文件内容要包含命名空间
+        $content = '<?php return ' . var_export($newCitiesArr, true) . '; ?>';
+        file_put_contents($citiesFile, $content);
+
         return $resp;
     }
 

+ 2 - 4
common/components/delivery/services/adapter/ShunfengAdapter.php

@@ -8,10 +8,7 @@ use Yii;
 
 class ShunfengAdapter extends Shunfeng implements Adapter
 {
-    public function cityList()
-    {
-        
-    }
+    public function cityList(){}
 
     /**
      * 格式化订单数据为顺丰同城API所需格式
@@ -119,6 +116,7 @@ class ShunfengAdapter extends Shunfeng implements Adapter
             'vehicle' => 0, // 配送交通工具(0:否,1:电动车,2:小轿车)
             'declared_value' => 0, // 保价金额(单位:分)
             'gratuity_fee' => 0, // 订单小费(单位:分)
+            'remark' => $params['remark'] ?? '', // 订单备注,string(512)
             'rider_pick_method' => 1, // 物流流向(1:从门店取件送至用户)
             'return_flag' => 511, // 返回字段控制标志位(511:全部返回)
             'payment_method' => 1, // 支付方式(1:立即支付,2:到付)