Browse Source

达达回调(待处理业务逻辑)

林琦海 5 years ago
parent
commit
5fce886d1e

+ 60 - 2
app-ghs/controllers/NoticeController.php

@@ -2,6 +2,7 @@
 
 namespace ghs\controllers;
 
+use bizGhs\express\services\DadaExpressServices;
 use bizGhs\order\classes\OrderClass;
 use Yii;
 use common\components\util;
@@ -134,7 +135,20 @@ class NoticeController extends PublicController
 		echo "fail";
 	}
 
-
+    /*
+     *   {
+     "signature": "aaaaaaaaaaaaaaaaaa", //签名
+     "client_id": "270340107542552", 返回达达运单号,默认为空
+     "order_id": "111111111111", 添加订单接口中的origin_id值
+     "order_status": 4, 订单状态(待接单=1,待取货=2,配送中=3,已完成=4,已取消=5, 指派单=8,妥投异常之物品返回中=9, 妥投异常之物品返回完成=10, 骑士到店=100,创建达达运单失败=1000 可参考文末的状态说明)
+     "cancel_reason": "",  订单取消原因,其他状态下默认值为空字符串
+     "cancel_from": 0, 订单取消原因来源(1:达达配送员取消;2:商家主动取消;3:系统或客服取消;0:默认值)
+     "dm_id": 1, 达达配送员id,接单以后会传
+     "dm_name": "测试", 配送员姓名,接单以后会传
+     "dm_mobile": "13100001111",  配送员手机号,接单以后会传
+     "update_time": 1511789475 更新时间
+  }
+     */
 	public function actionExpressCallBack()
 	{
 		$postStr = file_get_contents('php://input');//接收微信服务器返回的json消息体
@@ -148,13 +162,57 @@ class NoticeController extends PublicController
         }
 		//订单号
 		$orderSn = $postData['order_id'];
-		$sign = $postData['signature'];
+		$sign = $postData['signature']; //签名验证?没有
 		//判断订单是否存在
         $orderInfo = OrderClass::getByOrderSn($orderSn);
         if(!$orderInfo){
             Yii::warning("dada callback error: 订单不不存在: ".$orderSn);
             util::end();
         }
+        $orderStatus = $postData['order_status'];
+        switch ($orderStatus){
+            case DadaExpressServices::ORDER_WAIT_ACCEPT:
+                //待接单, 即下单成功: 处理相应的业务逻辑(订单状态变更,消息通知?)
+                break;
+            case DadaExpressServices::ORDER_WAIT_PICKUP:
+                //待收货 todo
+
+                break;
+            case DadaExpressServices::ORDER_SENDING:
+                //配送中 todo
+
+                break;
+            case DadaExpressServices::ORDER_COMPLETE:
+                //订单完成 todo
+
+                break;
+            case DadaExpressServices::ORDER_CANCEL:
+                //取消 todo
+                $cancel_reason =  $postData['cancel_reason']; //取消理由
+
+                break;
+            case DadaExpressServices::ORDER_WAIT_DISPATCH:
+                //指派单 todo
+                break;
+            case DadaExpressServices::ORDER_UNUSUAL_BACK:
+                //妥投异常之物品返回中 todo
+                break;
+            case DadaExpressServices::ORDER_UNUSUAL_COMPLETE:
+                //妥投异常之物品返回完成 todo
+
+                break;
+            case DadaExpressServices::RIDER_TO_SHOP:
+                //骑士到店 todo
+
+                break;
+            case DadaExpressServices::ORDER_FAIL:
+                //失败 todo
+
+                break;
+            default:
+
+        }
+
         echo "success";
         util::end();
 	}

+ 4 - 4
biz-ghs/express/services/DadaExpressServices.php

@@ -24,10 +24,10 @@ class DadaExpressServices
     const ORDER_COMPLETE = 4; //已完成
     const ORDER_CANCEL = 5; //已取消
     const ORDER_WAIT_DISPATCH = 8; //指派单
-    const ORDER_UNUSUAL_BACK = 9;
-    const ORDER_UNUSUAL_COMPLETE = 10;
-    const RIDER_TO_SHOP = 100;
-    const ORDER_FAIL = 1000;
+    const ORDER_UNUSUAL_BACK = 9; // 妥投异常之物品返回中
+    const ORDER_UNUSUAL_COMPLETE = 10; //妥投异常之物品返回完成
+    const RIDER_TO_SHOP = 100; //骑士到店
+    const ORDER_FAIL = 1000; //失败
 
 
     //根据订单号,发快递