Ver código fonte

1.增加 express/get-has-map 接口 2.微信回调接口补更新订单状态

shizhongqi 11 meses atrás
pai
commit
68ee0cc624

+ 5 - 0
app-ghs/controllers/ExpressController.php

@@ -13,6 +13,11 @@ use Yii;
 //用于物流服务
 class ExpressController extends BaseController
 {
+    // 获取字典中的 hasMap
+    public function actionGetHasMap()
+    {
+        util::success(['hasMap' => dict::getDict('hasMap')]);
+    }
 
     //获取采购单物流运单的轨迹 ssh 20250705
     public function actionGetCgExpressTrack()

+ 6 - 1
app-hd/controllers/ExpressController.php

@@ -8,7 +8,6 @@ use bizHd\merchant\services\ShopService;
 use bizHd\purchase\classes\PurchaseClass;
 use common\components\dict;
 use Yii;
-use yii\web\Controller;
 use common\components\util;
 
 class ExpressController extends BaseController
@@ -60,4 +59,10 @@ class ExpressController extends BaseController
         util::success($respond);
     }
 
+    // 获取字典中的 hasMap
+    public function actionGetHasMap()
+    {
+        util::success(['hasMap' => dict::getDict('hasMap')]);
+    }
+
 }

+ 22 - 3
app-hd/controllers/IntraCityController.php

@@ -634,10 +634,11 @@ class IntraCityController extends BaseController
             $eo = ExpressOrderClass::getByCondition(['storeOrderId'=>$storeOrderId, 'wxStoreId'=>$wxStoreId], true, false);
             if (empty($eo)) {
                 Yii::error('订单不存在.store_order_id: '.$storeOrderId.',wx_store_id: '.$wxStoreId);
-                return [
+                echo Json::encode([
                     'return_code' => 1,
                     'return_msg' => '系统错误'
-                ];
+                ]);
+                exit();
             }
 
             $orderStatus = intval($callbackData['order_status']);
@@ -645,41 +646,59 @@ class IntraCityController extends BaseController
                 case IntraCityExpress::ORDER_STATUS_CREATED: // 订单创建成功
                     $eo->order_status = ExpressOrder::ORDER_STATUS_CREATED;
                     $eo->status = ExpressOrder::STATUS_CREATED;
+                    // 更新 xhOrder 表的订单状态与配送状态 -- 配送中|已发货
+                    OrderClass::updateById($storeOrderId, ['status'=>3, 'sendStatus'=>1]);
                     break;
                 case IntraCityExpress::ORDER_STATUS_CANCELED_BY_MERCHANT: // 商家取消订单
                     $eo->order_status = ExpressOrder::ORDER_STATUS_CANCELED_BY_MERCHANT;
+                    // 更新 xhOrder 表的订单状态与配送状态 -- 待配送|未发货
+                    OrderClass::updateById($storeOrderId, ['status'=>2, 'sendStatus'=>0]);
                     break;
                 case IntraCityExpress::ORDER_STATUS_CANCELED_BY_DELIVERY: // 配送方取消订单
                     $eo->order_status = ExpressOrder::ORDER_STATUS_CANCELED_BY_DELIVERY;
+                    $eo->status = ExpressOrder::STATUS_CANCELED;
+                    // 更新 xhOrder 表的订单状态与配送状态 -- 待配送|未发货
+                    OrderClass::updateById($storeOrderId, ['status'=>2, 'sendStatus'=>0]);
                     break;
                 case IntraCityExpress::ORDER_STATUS_ACCEPTED: // 配送员接单
                     $eo->order_status = ExpressOrder::ORDER_STATUS_ACCEPTED;
+                    // 更新 xhOrder 表的订单状态与配送状态 -- 配送中|已发货
+                    OrderClass::updateById($storeOrderId, ['status'=>3, 'sendStatus'=>1]); //订单创建时已执行了,这儿重复更新
                     break;
                 case IntraCityExpress::ORDER_STATUS_ARRIVED: // 配送员到店
                     $eo->order_status = ExpressOrder::ORDER_STATUS_ARRIVED;
+                    // 更新 xhOrder 表的订单状态与配送状态 -- 配送中|已发货
+                    OrderClass::updateById($storeOrderId, ['status'=>3, 'sendStatus'=>1]); //订单创建时已执行了,这儿重复更新
                     break;
                 case IntraCityExpress::ORDER_STATUS_DELIVERING: // 配送中
                     $eo->order_status = ExpressOrder::ORDER_STATUS_DELIVERING;
                     break;
                 case IntraCityExpress::ORDER_STATUS_WITHDRAWN: // 配送员撤单
                     $eo->order_status = ExpressOrder::ORDER_STATUS_WITHDRAWN;
+                    // 更新 xhOrder 表的订单状态与配送状态 -- 待配送|未发货
+                    OrderClass::updateById($storeOrderId, ['status'=>2, 'sendStatus'=>0]);
                     break;
                 case IntraCityExpress::ORDER_STATUS_COMPLETED: // 配送完成
                     $eo->order_status = ExpressOrder::ORDER_STATUS_COMPLETED;
                     $eo->status = ExpressOrder::STATUS_COMPLETED;
+                    // 更新 xhOrder 表的订单状态与配送状态 -- 已完成|已送达
+                    OrderClass::updateById($storeOrderId, ['status'=>4, 'sendStatus'=>2]);
                     break;
                 case IntraCityExpress::ORDER_STATUS_EXCEPTION: // 配送异常
                     $eo->order_status = ExpressOrder::ORDER_STATUS_EXCEPTION;
+                    noticeUtil::push('同城配送异常 --- store_order_id(orderId):'.$storeOrderId.',wx_store_id:'.$wxStoreId);
                     break;
             }
             $re = $eo->save();
             if (!$re) {
                 noticeUtil::push('同城配送回调更新订单状态失败. store_order_id:'.$storeOrderId.',wx_store_id:'.$wxStoreId.',status:'.$eo->status);
                 Yii::error('更新订单状态失败. store_order_id:'.$storeOrderId.',wx_store_id:'.$wxStoreId.',status:'.$eo->status);
-                return [
+                $re = [
                     'return_code' => 0,
                     'return_msg' => 'OK'
                 ];
+                echo Json::encode($re);
+                exit();
             }
 
             $result = [