Просмотр исходного кода

Merge branch 'zhongqi-delivery'

shish 7 месяцев назад
Родитель
Сommit
98c96ccafc

+ 3 - 1
app-ghs/controllers/DeliveryController.php

@@ -427,7 +427,9 @@ class DeliveryController extends BaseController
 
             $ghsOrder = OrderClass::getById($ghsOrderId, true, 'id, sendDistance, sendStatus, deliveryId, purchaseId, status');
             $ghsOrder->sendDistance = 0;
-            //$ghsOrder->sendStatus = -1;
+            if(in_array($platform, ['shunfeng'])){ // 测试发现取消配送没回调的平台,统一在这主动更新配送状态
+                $ghsOrder->sendStatus = -1;
+            }
             // $ghsOrder->deliveryId = ''; // 为了获取上一次的配送记录,不要置空
             $ghsOrder->sendTip = 0;
             if (!$ghsOrder->save()) {

+ 3 - 1
app-hd/controllers/DeliveryController.php

@@ -289,7 +289,9 @@ class DeliveryController extends BaseController
 
             $Order = OrderClass::getById($hdOrderId, true, 'id, sendDistance, sendStatus, deliveryId');
             $Order->sendDistance = 0;
-            //$Order->sendStatus = -1;
+            if(in_array($platform, ['shunfeng'])){ // 测试发现取消配送没回调的平台,统一在这主动更新配送状态
+                $Order->sendStatus = -1;
+            }
             $Order->status = 2;
             //$Order->deliveryId = '';
             $Order->sendTip = 0;

+ 46 - 2
common/components/delivery/platform/shunfeng/CallBackHandler.php

@@ -405,7 +405,7 @@ class CallBackHandler
         $deliveryOrder = GhsDeliveryOrderClass::getByCondition([
             'deliveryId' => 'shunfeng',
             'orderId' => $orderId
-        ], true);
+        ], true, 'id DESC');
 
         if ($deliveryOrder) {
             return $deliveryOrder;
@@ -415,7 +415,51 @@ class CallBackHandler
         return HdDeliveryOrderClass::getByCondition([
             'deliveryId' => 'shunfeng',
             'orderId' => $orderId
-        ], true);
+        ], true, 'id DESC');
+    }
+
+    private function cancelFrom($sendStatus, $cancelCode = 0)
+    {
+        if($sendStatus == -1){
+            $reasons = [
+                100 => '误操作,抢错订单',
+                101 => '订单距离太远',
+                102 => '餐箱已满,无法配送',
+                103 => '物品过大无法配送',
+                104 => '联系不上寄件人',
+                105 => '寄方无法提供待配送物品(缺货/出餐慢/已配送等)',
+                106 => '寄方要求取消(暂时不需要寄件了/重复发单/信息有误)',
+                107 => '配送车辆故障',
+                108 => '其他,请注明原因',
+                303 => '骑士要求取消',
+                310 => '超出配送范围',
+                500 => '15分钟无人接单',
+                501 => '不兜底订单自动取消',
+                502 => '超期望送达8小时未完成',
+            ];
+            return $reasons[$cancelCode] ?? '未知';
+        }
+
+        if($sendStatus == -2){
+            $exIds = [
+                1001 => '商家出货慢',
+                1007 => '更改取货地址',
+                2001 => '顾客电话无法接通',
+                2004 => '更改期望送达时间',
+                2005 => '顾客拒收',
+                2008 => '顾客不在家',
+                2009 => '更改送货地址',
+                2010 => '顾客拒绝实名认证',
+                2013 => '无法联系用户,退回寄件人',
+                3004 => '实名认证校验失败',
+                4001 => '配送地址错误',
+                4002 => '其他',
+                4003 => '托寄物丢失或损坏',
+            ];
+            return $exIds[$cancelCode] ?? '未知';
+        }
+
+        return '未知';
     }
 
     private function cancelFrom($sendStatus, $cancelCode = 0)