Parcourir la source

增加取消订单事件

liaofei il y a 2 ans
Parent
commit
1da3297ad1
1 fichiers modifiés avec 34 ajouts et 0 suppressions
  1. 34 0
      crmeb/app/api/controller/v1/order/StoreOrderController.php

+ 34 - 0
crmeb/app/api/controller/v1/order/StoreOrderController.php

@@ -44,6 +44,7 @@ use app\services\product\product\StoreProductReplyServices;
 use app\services\shipping\ShippingTemplatesServices;
 use crmeb\services\CacheService;
 use think\facade\Cache;
+use think\facade\Log;
 
 /**
  * 订单控制器
@@ -855,6 +856,39 @@ class StoreOrderController
                         ]);
                     });
                 }
+                break;
+            case 'order_cancel'://取消寄件
+                if (isset($data['data']['task_id'])) {
+                    $orderInfo = $this->services->get(['kuaidi_task_id' => $data['data']['task_id']]);
+                    if (!$orderInfo) {
+                        return app('json')->fail('订单不存在');
+                    }
+                    if ($orderInfo->is_stock_up && $orderInfo->status == 0) {
+                        app()->make(StoreOrderStatusServices::class)->save([
+                            'oid' => $orderInfo->id,
+                            'change_time' => time(),
+                            'change_type' => 'delivery_goods_cancel',
+                            'change_message' => '已取消发货,取消原因:用户手动取消'
+                        ]);
+
+                        $orderInfo->status = 0;
+                        $orderInfo->is_stock_up = 0;
+                        $orderInfo->kuaidi_task_id = '';
+                        $orderInfo->kuaidi_order_id = '';
+                        $orderInfo->express_dump = '';
+                        $orderInfo->kuaidi_label = '';
+                        $orderInfo->delivery_id = '';
+                        $orderInfo->delivery_code = '';
+                        $orderInfo->delivery_name = '';
+                        $orderInfo->delivery_type = '';
+                        $orderInfo->save();
+                    } else {
+                        Log::error('商家寄件自动回调,订单状态不正确:', [
+                            'kuaidi_task_id' => $data['data']['task_id']
+                        ]);
+                    }
+                }
+
                 break;
         }