diff --git a/process/Task.php b/process/Task.php index 3206a152..fb94be22 100644 --- a/process/Task.php +++ b/process/Task.php @@ -138,22 +138,24 @@ class Task */ public function setPurchase() { - $list = WarehouseProduct::where('purchase', 0)->order('id desc')->limit(100)->select()->toArray(); - $productIds = array_unique(array_column($list, 'product_id')); - $products = StoreProduct::whereIn('id', $productIds)->field('id,purchase')->select()->toArray(); - $products = reset_index($products, 'id'); - $update = []; - foreach ($list as $item) { - $product = $products[$item['product_id']] ?? []; - if (empty($product) || empty($product['purchase'])) { - continue; + new Crontab('0 0 * * * *', function () { + $list = WarehouseProduct::where('purchase', 0)->order('id desc')->limit(100)->select()->toArray(); + $productIds = array_unique(array_column($list, 'product_id')); + $products = StoreProduct::whereIn('id', $productIds)->field('id,purchase')->select()->toArray(); + $products = reset_index($products, 'id'); + $update = []; + foreach ($list as $item) { + $product = $products[$item['product_id']] ?? []; + if (empty($product) || empty($product['purchase'])) { + continue; + } + $update[] = [ + 'id' => $item['id'], + 'purchase' => min($product['purchase'], $item['price']), + ]; } - $update[] = [ - 'id' => $item['id'], - 'purchase' => min($product['purchase'], $item['price']), - ]; - } - (new WarehouseProduct())->saveAll($update); + (new WarehouseProduct())->saveAll($update); + }); } }