From 46f32294b887f4e70046fd4581031d6c97ed0f21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BB=BA=E7=82=8A?= <924182103@qq.com> Date: Wed, 6 Nov 2024 16:13:23 +0800 Subject: [PATCH] =?UTF-8?q?a=E8=AE=A2=E5=8D=95=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Goods/GoodsCombinationController.php | 16 ++++------------ .../Controllers/Goods/GoodsSkusController.php | 17 +++++------------ 2 files changed, 9 insertions(+), 24 deletions(-) diff --git a/app/Http/Controllers/Goods/GoodsCombinationController.php b/app/Http/Controllers/Goods/GoodsCombinationController.php index cb87da7..553a14b 100644 --- a/app/Http/Controllers/Goods/GoodsCombinationController.php +++ b/app/Http/Controllers/Goods/GoodsCombinationController.php @@ -77,22 +77,14 @@ class GoodsCombinationController extends Controller ->where('is_combination', 1) ->filter(); if ($sortField == "order_goods_num") { - $builder = GoodsSku::query(); - $goodsSkus = (clone $builder)->filter() - ->where('is_combination', 1) - ->orderByDesc('id') - ->pluck('stock', 'id') - ->toArray(); $finalIds = []; + asort($ids); foreach ($ids as $id => $number) { - if (isset($goodsSkus[$id])) { - $finalIds[] = $id; - unset($goodsSkus[$id]); - } + $finalIds[] = $id; } - $finalIds = array_merge($finalIds, array_keys($goodsSkus)); + $idField = implode(',', $finalIds); - $goodsSkusBuilder->orderByRaw("FIELD({$idField},id) {$sortValue}"); + $goodsSkusBuilder->orderByRaw("FIELD(id,{$idField}) {$sortValue}"); } else { $goodsSkusBuilder->orderBy($sortField, $sortValue); } diff --git a/app/Http/Controllers/Goods/GoodsSkusController.php b/app/Http/Controllers/Goods/GoodsSkusController.php index 7b8b31d..5a9e5e1 100644 --- a/app/Http/Controllers/Goods/GoodsSkusController.php +++ b/app/Http/Controllers/Goods/GoodsSkusController.php @@ -96,7 +96,7 @@ class GoodsSkusController extends Controller $externals[$id][] = $businessOrderItem; } - arsort($ids); + $builder = GoodsSku::query(); $this->preparQueryGoodsSkus($request, $builder); @@ -114,21 +114,14 @@ class GoodsSkusController extends Controller }]) ->where('is_combination', 0); if ($sortField == "order_goods_num") { - $goodsSkus = (clone $builder)->filter() - ->where('is_combination', 0) - ->orderByDesc('id') - ->pluck('stock', 'id') - ->toArray(); $finalIds = []; + asort($ids); foreach ($ids as $id => $number) { - if (isset($goodsSkus[$id])) { - $finalIds[] = $id; - unset($goodsSkus[$id]); - } + $finalIds[] = $id; } - $finalIds = array_merge($finalIds, array_keys($goodsSkus)); + $idField = implode(',', $finalIds); - $goodsSkusBuilder->orderByRaw("FIELD({$idField},id) {$sortValue}"); + $goodsSkusBuilder->orderByRaw("FIELD(id,{$idField}) {$sortValue}"); } else { $goodsSkusBuilder->orderBy($sortField, $sortValue); }