From a86ecfbf319291296da3c22427d4a139e18860f4 Mon Sep 17 00:00:00 2001 From: weizong song Date: Mon, 2 May 2022 11:05:43 +0800 Subject: [PATCH] up --- .../Controllers/Admin/OrdersController.php | 45 +++++++++++-------- app/Models/OrderItems.php | 4 ++ resources/views/admin/orders/index.blade.php | 4 ++ 3 files changed, 34 insertions(+), 19 deletions(-) diff --git a/app/Http/Controllers/Admin/OrdersController.php b/app/Http/Controllers/Admin/OrdersController.php index 360ffb8..369a947 100755 --- a/app/Http/Controllers/Admin/OrdersController.php +++ b/app/Http/Controllers/Admin/OrdersController.php @@ -77,32 +77,39 @@ class OrdersController extends CommonController public function changeItem(Request $request) { - $order_item = OrderItems::with("order")->find($request->item_id); - if ($order_item->paid_at && $request->total != $order_item->total) { - return $this->error("子订单已扣款,不支持后台更改价格,请通过其他方法进行更改"); - } - if ($order_item->total == 0 && $request->total != $order_item->total) { - return $this->error("未服务子订单不支持后台更改价格,请通过其他方法进行更改"); + $order_item = OrderItems::with(["order", "siblings"])->find($request->item_id); + if (request()->is_batch) { + $order_items = $order_item->siblings; + } else { + $order_items = collect($order_item); } DB::beginTransaction(); try { - $order_item->update([ - "total" => $request->total - ]); - if ($request->factor_item) { - $factors = json_decode($order_item->factors, true); - foreach ($factors as &$factor) { - if (!$factor["used_for_fee"]) continue; - foreach ($request->factor_item as $k => $v) { - if ($k != $factor["factor_item_id"]) continue; - $factor["fee_percent"] = $v["fee_percent"]; - $factor["fee"] = $v["fee"]; - } + foreach($order_items as $order_item) { + if ($order_item->paid_at && $request->total != $order_item->total) { + return $this->error("子订单已扣款,不支持后台更改价格,请通过其他方法进行更改"); + } + if ($order_item->total == 0 && $request->total != $order_item->total) { + return $this->error("未服务子订单不支持后台更改价格,请通过其他方法进行更改"); } $order_item->update([ - "factors" => json_encode($factors) + "total" => $request->total ]); + if ($request->factor_item) { + $factors = json_decode($order_item->factors, true); + foreach ($factors as &$factor) { + if (!$factor["used_for_fee"]) continue; + foreach ($request->factor_item as $k => $v) { + if ($k != $factor["factor_item_id"]) continue; + $factor["fee_percent"] = $v["fee_percent"]; + $factor["fee"] = $v["fee"]; + } + } + $order_item->update([ + "factors" => json_encode($factors) + ]); + } } DB::commit(); return $this->success("处理成功!"); diff --git a/app/Models/OrderItems.php b/app/Models/OrderItems.php index 34cca4f..e3c043c 100755 --- a/app/Models/OrderItems.php +++ b/app/Models/OrderItems.php @@ -31,6 +31,10 @@ class OrderItems extends SoftDeletesModel return $this->belongsTo(Orders::class); } + public function siblings() { + return $this->hasManyThrough(OrderItems::class,Orders::class,"id","order_id","order_id","id"); + } + public function customer() { return $this->hasOneThrough(Customer::class, Orders::class, "id", "id", "order_id", "customer_id"); diff --git a/resources/views/admin/orders/index.blade.php b/resources/views/admin/orders/index.blade.php index 10d739d..3763c41 100755 --- a/resources/views/admin/orders/index.blade.php +++ b/resources/views/admin/orders/index.blade.php @@ -198,6 +198,10 @@ ' ' + ' ' + ' '; + html += '
' + + '' + + '' + + '
'; $("#factor-box").html(html); calculateSalary();