From a3dfac406bb3bfedec921434c81f01c886e0c549 Mon Sep 17 00:00:00 2001 From: lewis <604446095@qq.com> Date: Mon, 13 Jan 2025 16:55:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=80=E9=94=AE=E5=A4=8D?= =?UTF-8?q?=E5=88=B6=E9=A2=84=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BeforehandOrderController.php | 8 ++++ .../beforehand_order/BeforehandOrderLogic.php | 37 +++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/app/admin/controller/beforehand_order/BeforehandOrderController.php b/app/admin/controller/beforehand_order/BeforehandOrderController.php index 2da9829bd..1dbb0f96e 100644 --- a/app/admin/controller/beforehand_order/BeforehandOrderController.php +++ b/app/admin/controller/beforehand_order/BeforehandOrderController.php @@ -340,5 +340,13 @@ class BeforehandOrderController extends BaseAdminController BeforehandOrderLogic::confirmLog($params); return $this->success('确认成功'); } + + public function copy() + { + $params = $this->request->post(); + $params['admin_id'] = $this->adminId; + BeforehandOrderLogic::copy($params); + return $this->success('复制成功'); + } } diff --git a/app/admin/logic/beforehand_order/BeforehandOrderLogic.php b/app/admin/logic/beforehand_order/BeforehandOrderLogic.php index 59ac59915..f4288223c 100644 --- a/app/admin/logic/beforehand_order/BeforehandOrderLogic.php +++ b/app/admin/logic/beforehand_order/BeforehandOrderLogic.php @@ -1028,4 +1028,41 @@ class BeforehandOrderLogic extends BaseLogic return $data; } + + public static function copy($params) + { + Db::startTrans(); + try { + $order = BeforehandOrder::where('id', $params['id'])->find(); + if (empty($order)) { + throw new BusinessException('订单不存在'); + } + if ($order['order_type'] != 1) { + throw new BusinessException('只能复制铺货订单'); + } + $orderCartInfo = BeforehandOrderCartInfo::where('bhoid', $params['id'])->select()->toArray(); + unset($order['id'], $order['create_time'], $order['update_time']); + $newOrder = new BeforehandOrder(); + $newOrder->setAttrs($order->toArray()); + $newOrder->admin_id = $params['admin_id']; + $newOrder->store_id = $params['store_id']; + $newOrder->order_id = getNewOrderId('YG'); + if (!empty($params['mark'])) { + $newOrder->mark = $params['mark']; + } + $newOrder->save(); + $insert = []; + foreach ($orderCartInfo as $v) { + unset($v['id'], $v['create_time'], $v['update_time']); + $v['bhoid'] = $newOrder->id; + $insert[] = $v; + } + (new BeforehandOrderCartInfo())->saveAll($insert); + Db::commit(); + } catch (\Exception $e) { + Db::rollback(); + throw new BusinessException($e->getMessage()); + } + } + }