From ed71860457ffae38cded99848ab258f8fc525dd7 Mon Sep 17 00:00:00 2001 From: vine_liutk <961510893@qq.com> Date: Sat, 8 Jan 2022 15:37:54 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=8F=91=E8=B4=A7=E5=AF=BC?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Services/OrderPackageService.php | 30 ++++++++++++++-------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/app/Admin/Services/OrderPackageService.php b/app/Admin/Services/OrderPackageService.php index c1782e9c..2774c8f7 100644 --- a/app/Admin/Services/OrderPackageService.php +++ b/app/Admin/Services/OrderPackageService.php @@ -68,14 +68,6 @@ class OrderPackageService $package->shipping_number = $params['shipping_number']; //保存发货单 $package->save(); - //保存发货单商品 - OrderPackageProduct::insert(array_map(function ($value) use ($package) { - return array_merge($value, [ - 'order_package_id' => $package->id, - 'created_at' => $package->created_at, - 'updated_at' => $package->created_at, - ]); - }, $packageProducts)); if (app_settings('kuaidi100.is_use')) { $kuaidi100Service = new Kuaidi100Service(); @@ -83,14 +75,30 @@ class OrderPackageService } } else { //更新现有的包裹商品 - foreach ($packageProducts as $packageProduct) { - OrderPackageProduct::where([ + foreach ($packageProducts as $key => $packageProduct) { + //如果包裹商品已存在则更新 + $_package_product = OrderPackageProduct::where([ 'order_package_id'=>$package->id, 'order_product_id'=>$packageProduct['order_product_id'], - ])->increment('quantity', $packageProduct['quantity']); + ])->first(); + if ($_package_product) { + $_package_product->increment('quantity', $packageProduct['quantity']); + unset($packageProducts[$key]); + } } } + //保存新增发货单商品 + if (count($packageProducts) > 0) { + OrderPackageProduct::insert(array_map(function ($value) use ($package) { + return array_merge($value, [ + 'order_package_id' => $package->id, + 'created_at' => $package->created_at, + 'updated_at' => $package->created_at, + ]); + }, $packageProducts)); + } + //更新订单状态 if (!OrderProduct::where('order_id', $order->id)->where('remain_quantity', '>', 0)->exists()) { $order->update([