From 5409048ff8caafb79476c5910fa3cc278b1429e3 Mon Sep 17 00:00:00 2001 From: liaofei <136327134@qq.com> Date: Mon, 19 Jun 2023 11:22:27 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=AE=A2=E5=8D=95=E5=8F=91?= =?UTF-8?q?=E8=B4=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v1/order/StoreOrderController.php | 27 ++++++++- .../order/StoreOrderDeliveryServices.php | 60 +++++++++++++------ 2 files changed, 67 insertions(+), 20 deletions(-) diff --git a/crmeb/app/api/controller/v1/order/StoreOrderController.php b/crmeb/app/api/controller/v1/order/StoreOrderController.php index dfb54fa1f..32ead3580 100644 --- a/crmeb/app/api/controller/v1/order/StoreOrderController.php +++ b/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(); diff --git a/crmeb/app/services/order/StoreOrderDeliveryServices.php b/crmeb/app/services/order/StoreOrderDeliveryServices.php index 777fed1eb..a65b69fa1 100644 --- a/crmeb/app/services/order/StoreOrderDeliveryServices.php +++ b/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; }