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); }