From bba013a7abbed838ca15b918ba2f74fcaa0ad488 Mon Sep 17 00:00:00 2001 From: liapples Date: Fri, 12 Nov 2021 20:29:16 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=A7=84=E6=A0=BC=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E5=92=8C=E5=B8=82=E5=9C=BA=E4=BB=B7=E4=B9=9F=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E3=80=822=E3=80=81=E4=BF=AE=E6=94=B9=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E9=A1=B5=E6=98=BE=E7=A4=BA=E7=9A=84=E4=BB=B7=E6=A0=BCprice?= =?UTF-8?q?=E5=92=8Coriginal=5Fprice?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Jobs/ProductSpecSync.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/app/Jobs/ProductSpecSync.php b/app/Jobs/ProductSpecSync.php index aea4e8d..1f7b998 100644 --- a/app/Jobs/ProductSpecSync.php +++ b/app/Jobs/ProductSpecSync.php @@ -11,6 +11,7 @@ use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; +use Illuminate\Support\Facades\DB; class ProductSpecSync implements ShouldQueue { @@ -65,7 +66,11 @@ class ProductSpecSync implements ShouldQueue foreach ($product_specs as $spec) { AgentProductSpec::query() ->where([['product_spec_id', '=', $spec->id], ['price', '<', $spec->price]]) - ->update(['price' => $spec->price]); + ->update([ + 'price' => $spec->price, + 'stock' => DB::raw("IF(`stock` > {$spec->stock}, {$spec->stock}, `stock`)"), + 'original_price' => DB::raw("IF(`original_price` < {$spec->original_price}, {$spec->original_price}, `original_price`)"), + ]); } //供应商新增,但代理商还没有的规格,同步给代理商 @@ -91,6 +96,18 @@ class ProductSpecSync implements ShouldQueue ]; }, $agent_no_spec_ids) ); + + //设置产品的销售价(列表页显示的价格) + $psArr = $product_specs->toArray(); + $ap->price = min(array_column($psArr, 'price')); + $ap->original_price = min(array_column($psArr, 'original_price')); + + //如果代理商库存大于供应商库存,将代理商库存修改为供应商的库存 + $pStock = array_sum(array_column($psArr, 'stock')); + if ($ap->stock > $pStock) { + $ap->stock = $pStock; + } + $ap->save(); } }); }