Quellcode durchsuchen

Merge branch 'master' of http://git.huaml.com/zhh/huahuibao

shish vor 5 Jahren
Ursprung
Commit
cd27c997e8

+ 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();
 	}

+ 6 - 0
app-ghs/controllers/ProductController.php

@@ -90,6 +90,12 @@ class ProductController extends BaseController
         if(!$shopId){
             $shopId = $this->shopId;
         }
+        $type = Yii::$app->request->get('type','');
+        if($type=='waring'){
+            //库存预警
+            $waringItemIds = ProductClass::getItemIdsWarning($this->sjId,$shopId);
+            $itemIds = array_intersect($itemIds,$waringItemIds);
+        }
         $data = ProductClass::getProductInfoByItemIds($itemIds,$shopId);
         util::success(['list'=>$data]);
     }

+ 9 - 0
app-ghs/controllers/TestController.php

@@ -46,6 +46,15 @@ class TestController extends BaseController
         util::success($res);
     }
 
+    //重发快递
+    public function actionDadaReAdd()
+    {
+        $orderSn = 'XSD_CS26316851';
+        $orderInfo = OrderClass::getByOrderSn($orderSn);
+        $res = DadaExpressServices::reAddOrder($orderInfo);
+        util::success($res);
+    }
+
     //达达状态查询
     public function actionDadaOrderStatus()
     {

+ 29 - 1
biz-ghs/express/services/DadaExpressServices.php

@@ -15,6 +15,21 @@ use common\components\util;
 use Yii;
 class DadaExpressServices
 {
+
+    //达达订单状态常量定义
+    //待接单=1,待取货=2,配送中=3,已完成=4,已取消=5, 指派单=8,妥投异常之物品返回中=9, 妥投异常之物品返回完成=10, 骑士到店=100,创建达达运单失败=1000
+    const ORDER_WAIT_ACCEPT = 1; //待接单
+    const ORDER_WAIT_PICKUP = 2; //待取货
+    const ORDER_SENDING = 3; //配送中
+    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; //失败
+
+
     //根据订单号,发快递
     public static function addOrder($orderInfo)
     {
@@ -71,6 +86,19 @@ class DadaExpressServices
         return $res;
     }
 
+    //订单重发
+    public static function reAddOrder($orderInfo)
+    {
+        if(empty($orderInfo)){
+            util::fail("订单不存在");
+        }
+        $sjId = $orderInfo['merchantId'];
+        $sourceId = SjExpressClass::getSourceId($sjId);
+        $orderParams = self::orderParams($orderInfo);
+        $res = dada::reAddOrder($sourceId,$orderParams);
+        return $res;
+    }
+
     //组装订单参数
     public static function orderParams($orderInfo)
     {
@@ -94,7 +122,7 @@ class DadaExpressServices
             'receiver_address'=>$orderInfo['fullAddress'], //收货人地址
             'receiver_lat' =>(float)$orderInfo['lat'], // 存的是百度经纬度,需要转高德经纬度
             'receiver_lng' =>(float)$orderInfo['long'], // 存的是百度经纬度,需要转高德经纬度
-            'callback'=> Yii::$app->params['ghsHost'].'/notice/express-callback',
+            'callback'=> Yii::$app->params['ghsHost'].'/notice/express-call-back',
             'cargo_weight'=>0.01,//订单重量(单位:Kg)
             'receiver_phone'=>$orderInfo['customMobile'],//否	收货人手机号(手机号和座机号必填一项)
             'info'=>'',//备注