Browse Source

调整订单发货

liaofei 2 năm trước cách đây
mục cha
commit
5409048ff8

+ 25 - 2
crmeb/app/api/controller/v1/order/StoreOrderController.php

@@ -34,6 +34,7 @@ use app\services\order\{OtherOrderServices,
     StoreOrderInvoiceServices,
     StoreOrderRefundServices,
     StoreOrderServices,
+    StoreOrderStatusServices,
     StoreOrderSuccessServices,
     StoreOrderTakeServices
 };
@@ -814,11 +815,11 @@ class StoreOrderController
         ]);
 
         if (md5(json_encode($data['data']) . $data['t']) != $data['sign']) {
-            return app('json')->fail();
+            return app('json')->fail('验签失败');
         }
 
         switch ($data['type']) {
-            case 'order_success':
+            case 'order_success'://下单成功
                 $update = [
                     'label' => $data['data']['label'] ?? '',
                 ];
@@ -829,6 +830,28 @@ class StoreOrderController
                     $this->services->update(['task_id' => $data['task_id']], $update);
                 }
                 break;
+            case 'order_take'://取件
+                if (isset($data['task_id'])) {
+                    $orderInfo = $this->services->get(['task_id' => $data['task_id']]);
+                    if (!$orderInfo) {
+                        return app('json')->fail('订单不存在');
+                    }
+                    $this->services->transaction(function () use ($data, $orderInfo) {
+                        $this->services->update(['task_id' => $data['task_id']], [
+                            'status' => 1,
+                            'is_stock_up' => 0
+                        ]);
+                        /** @var StoreOrderStatusServices $services */
+                        $services = app()->make(StoreOrderStatusServices::class);
+                        $services->save([
+                            'oid' => $orderInfo->id,
+                            'change_time' => time(),
+                            'change_type' => 'delivery_goods',
+                            'change_message' => '已发货 快递公司:' . $orderInfo->delivery_name . ' 快递单号:' . $orderInfo->delivery_id
+                        ]);
+                    });
+                }
+                break;
         }
 
         return app('json')->success();

+ 42 - 18
crmeb/app/services/order/StoreOrderDeliveryServices.php

@@ -593,24 +593,48 @@ class StoreOrderDeliveryServices extends BaseServices
             }
             $orderInfo->delivery_id = $data['delivery_id'];
         }
-        $data['status'] = 1;
-        $orderInfo->delivery_type = $data['delivery_type'];
-        $orderInfo->delivery_name = $data['delivery_name'];
-        $orderInfo->status = $data['status'];
-        /** @var StoreOrderStatusServices $services */
-        $services = app()->make(StoreOrderStatusServices::class);
-        $this->transaction(function () use ($id, $data, $services) {
-            $res = $this->dao->update($id, $data);
-            $res = $res && $services->save([
-                    'oid' => $id,
-                    'change_time' => time(),
-                    'change_type' => 'delivery_goods',
-                    'change_message' => '已发货 快递公司:' . $data['delivery_name'] . ' 快递单号:' . $data['delivery_id']
-                ]);
-            if (!$res) {
-                throw new AdminException(400529);
-            }
-        });
+        if ($data['express_record_type'] != 3) {
+            $data['status'] = 1;
+            $orderInfo->delivery_type = $data['delivery_type'];
+            $orderInfo->delivery_name = $data['delivery_name'];
+            $orderInfo->status = $data['status'];
+            /** @var StoreOrderStatusServices $services */
+            $services = app()->make(StoreOrderStatusServices::class);
+            $this->transaction(function () use ($id, $data, $services) {
+                $res = $this->dao->update($id, $data);
+                $res = $res && $services->save([
+                        'oid' => $id,
+                        'change_time' => time(),
+                        'change_type' => 'delivery_goods',
+                        'change_message' => '已发货 快递公司:' . $data['delivery_name'] . ' 快递单号:' . $data['delivery_id']
+                    ]);
+                if (!$res) {
+                    throw new AdminException(400529);
+                }
+            });
+        } else {
+
+            $update = [
+                'is_stock_up' => 1,
+                'delivery_type' => $data['delivery_type'],
+                'delivery_name' => $data['delivery_name'],
+            ];
+
+            /** @var StoreOrderStatusServices $services */
+            $services = app()->make(StoreOrderStatusServices::class);
+            $this->transaction(function () use ($id, $data, $services, $update) {
+                $res = $this->dao->update($id, $update);
+                $res = $res && $services->save([
+                        'oid' => $id,
+                        'change_time' => time(),
+                        'change_type' => 'stock_up_goods',
+                        'change_message' => '备货中 快递公司:' . $data['delivery_name'] . ' 快递单号:' . $data['delivery_id']
+                    ]);
+                if (!$res) {
+                    throw new AdminException(400529);
+                }
+            });
+        }
         return $dump;
     }