diff --git a/app/Events/BusinessOrdersUpdate.php b/app/Events/BusinessOrdersUpdate.php index abf9823..08b3393 100644 --- a/app/Events/BusinessOrdersUpdate.php +++ b/app/Events/BusinessOrdersUpdate.php @@ -36,9 +36,9 @@ class BusinessOrdersUpdate { [$goodsCode, $skuCode] = explode('_', $this->businessOrderItem['external_sku_id']); $this->goodsSku = GoodsSku::query()->where('sku_code', $skuCode) - ->with(['goods' => function ($query) use ($goodsCode) { + ->whereHas('goods', function ($query) use ($goodsCode) { $query->where('goods_code', $goodsCode); - }]) + }) ->first(); if ($this->goodsSku) { $this->goodsSku->stock += $this->num; diff --git a/app/Http/Controllers/Shop/ShopsController.php b/app/Http/Controllers/Shop/ShopsController.php index b1acbcc..ff62287 100644 --- a/app/Http/Controllers/Shop/ShopsController.php +++ b/app/Http/Controllers/Shop/ShopsController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Shop; use App\Http\Controllers\Controller; +use App\Models\GoodsSku; use App\Models\Shop; use App\Http\Resources\ShopsResource; use Illuminate\Http\Request; @@ -113,7 +114,7 @@ class ShopsController extends Controller $fields = implode(',', [ 'shop_id', 'external_sku_id', - 'count(id) as count', + 'sum(goods_number) as num', ]); $res = BusinessOrderItem::query() ->select(DB::raw($fields)) @@ -123,9 +124,23 @@ class ShopsController extends Controller ->get(); $data = []; foreach ($res as $item) { - $data[$item->external_sku_id][] = [ + [$goodsCode, $skuCode] = explode('_', $item['external_sku_id']); + $sku = GoodsSku::query()->where('sku_code', $skuCode) + ->whereHas('goods', function ($query) use ($goodsCode) { + $query->where('goods_code', $goodsCode); + }) + ->first(); + if (empty($sku)) { + continue; + } + $sku = $sku->toArray(); + if (!isset($data[$sku['id']]['total'])) { + $data[$sku['id']]['total'] = 0; + } + $data[$sku['id']]['total'] += $item->num; + $data[$sku['id']]['items'][] = [ 'shop_name' => $item->shop->name, - 'count' => $item->count, + 'num' => $item->num, ]; }