瀏覽代碼

顺丰跑腿门店状态回调完成数据更新

shizhongqi 8 月之前
父節點
當前提交
ca4cc46fd7

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

@@ -31,7 +31,7 @@ class DeliveryController extends BaseController
             'shunfeng' => ['name'=>'顺丰同城', 'logo'=>'🚚'],
             'meituan' => ['name'=>'美团', 'logo'=>'🍱'] ,
             'fengniao' => ['name'=>'蜂鸟', 'logo'=>'🍜'],
-            'huolala' => ['name'=>'货拉拉', 'logo'=>'🚛'],
+            'huolala' => ['name'=>'货拉拉跑腿', 'logo'=>'🚛'],
             'shansong' => ['name'=>'闪送', 'logo'=>'⚡'],
             'didi' => ['name'=>'滴滴', 'logo'=>'🚗'],
 			'uu' => ['name'=>'UU跑腿', 'logo'=>'🛵']

+ 1 - 1
app-ghs/controllers/DeliveryShopController.php

@@ -23,7 +23,7 @@ class DeliveryShopController extends BaseController
 //            'shunfeng' => ['name'=>'顺丰同城', 'logo'=>'🚚'],
 //            'meituan' => ['name'=>'美团', 'logo'=>'🍱'] ,
 //            'fengniao' => ['name'=>'蜂鸟', 'logo'=>'🍜'],
-//            'huolala' => ['name'=>'货拉拉', 'logo'=>'🚛'],
+//            'huolala' => ['name'=>'货拉拉跑腿', 'logo'=>'🚛'],
 //            'shansong' => ['name'=>'闪送', 'logo'=>'⚡'],
 //            'didi' => ['name'=>'滴滴', 'logo'=>'🚗'],
 //			'uu' => ['name'=>'UU跑腿', 'logo'=>'🛵']

+ 62 - 1
common/components/delivery/platform/fengniao/CallBackNotify.php

@@ -1,8 +1,10 @@
 <?php
 namespace common\components\delivery\platform\fengniao;
 
+use bizGhs\express\classes\DeliveryAuthTokenClass;
 use bizGhs\express\classes\GhsDeliveryOrderClass;
 use bizGhs\order\classes\OrderClass;
+use Yii;
 
 //回调业务类型
 const TYPE_ORDER_STATUS_NOTIFY = 'orderStatusNotify'; //订单状态回调
@@ -65,6 +67,7 @@ class CallBackNotify
      */
     private function handleAbnormalReportNotify($data)
     {
+        Yii::info('蜂鸟异常报备回调: ' . json_encode($data, JSON_UNESCAPED_UNICODE), 'fengniao');
         return $data;
     }
 
@@ -75,6 +78,7 @@ class CallBackNotify
      */
     private function handleCookingFinishNotify($data)
     {
+        Yii::info('蜂鸟商户出餐回调: ' . json_encode($data, JSON_UNESCAPED_UNICODE), 'fengniao');
         return $data;
     }
 
@@ -85,7 +89,62 @@ class CallBackNotify
      */
     private function handleChainstoreStatusNotify($data)
     {
-        return $data;
+        Yii::info('蜂鸟门店状态变更回调: ' . json_encode($data, JSON_UNESCAPED_UNICODE), 'fengniao');
+
+        $statusMap = [
+            10 => '上架审核中',
+            20 => '正常(已上架)',
+            30 => '上架审核失败',
+            40 => '已冻结',
+            50 => '已下架',
+        ];
+
+        $modifyStatusMap = [
+            0 => '无修改',
+            10 => '资料修改审核中',
+            20 => '审核通过',
+            30 => '审核驳回',
+        ];
+
+        $merchantId = $data['merchant_id'];
+        $chainStoreId = $data['chain_store_id'];
+        $outShopCode = $data['out_shop_code'];
+        $status = isset($data['status']) ? (int)$data['status'] : null;
+        $modifyStatus = isset($data['modify_status']) ? (int)$data['modify_status'] : null;
+        $remark = $data['remark'] ?? '';
+
+        $normalizedPayload = [
+            'merchant_id' => $merchantId,
+            'chain_store_id' => $chainStoreId,
+            'out_shop_code' => $outShopCode,
+            'status' => [
+                'code' => $status,
+                'desc' => $status !== null ? ($statusMap[$status] ?? '未知状态') : '',
+            ],
+            'modify_status' => [
+                'code' => $modifyStatus,
+                'desc' => $modifyStatus !== null ? ($modifyStatusMap[$modifyStatus] ?? '未知状态') : '',
+            ],
+            'remark' => $remark,
+        ];
+
+        $condition = ['mainId' => $outShopCode, 'platform' => 'fengniao'];
+        $tokenModel = DeliveryAuthTokenClass::getByCondition($condition, true);
+        if (!$tokenModel) {
+            Yii::warning('蜂鸟门店状态回调未匹配到授权记录: ' . json_encode($condition, JSON_UNESCAPED_UNICODE), 'fengniao');
+            return false;
+        }
+
+        $tokenModel->callBack = json_encode($normalizedPayload, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
+        $tokenModel->merchantId = $merchantId;
+        $tokenModel->shopId = $chainStoreId;
+
+        if ($tokenModel->save() === false) {
+            Yii::error('蜂鸟门店状态回调保存失败: ' . json_encode($tokenModel->getErrors(), JSON_UNESCAPED_UNICODE), 'fengniao');
+            return false;
+        }
+
+        return true;
     }
 
     /**
@@ -95,6 +154,7 @@ class CallBackNotify
      */
     private function handleChainstoreServiceStatusNotify($data)
     {
+        Yii::info('蜂鸟门店采购服务变更回调: ' . json_encode($data, JSON_UNESCAPED_UNICODE), 'fengniao');
         return $data;
     }
     
@@ -105,6 +165,7 @@ class CallBackNotify
      */
     private function handleChainstoreBusinessTimeNotify($data)
     {
+        Yii::info('蜂鸟门店营业时间变更回调: ' . json_encode($data, JSON_UNESCAPED_UNICODE), 'fengniao');
         return $data;
     }
 }