Browse Source

1、规格库存和市场价也同步。2、修改列表页显示的价格price和original_price

master
李可松 4 years ago
parent
commit
bba013a7ab
  1. 19
      app/Jobs/ProductSpecSync.php

19
app/Jobs/ProductSpecSync.php

@ -11,6 +11,7 @@ use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\DB;
class ProductSpecSync implements ShouldQueue class ProductSpecSync implements ShouldQueue
{ {
@ -65,7 +66,11 @@ class ProductSpecSync implements ShouldQueue
foreach ($product_specs as $spec) { foreach ($product_specs as $spec) {
AgentProductSpec::query() AgentProductSpec::query()
->where([['product_spec_id', '=', $spec->id], ['price', '<', $spec->price]]) ->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) }, $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();
} }
}); });
} }

Loading…
Cancel
Save