make(RecordRepository::class)->getBaseConfig(); // 获取当前页数据 有效记录、已获取积分低于订单金额 $model = LegumesLog::field('id,order_money,get_legumes,get_integral') ->whereIn('status',[0,1]) ->where('get_integral < order_money'); $count = $model->count(); $list = $model->page($page,$limit)->select()->toArray(); if(count($list) <= 0) throw new \Exception('无处理数据!'); // 循环处理 $updateData = []; foreach($list as $item){ $getIntegral = (float)sprintf("%.2f",$item['get_legumes'] * $set['legumes_price']); $updateData[] = [ 'id' => $item['id'], 'get_integral' => $getIntegral >= $item['order_money'] ? $item['order_money'] : $getIntegral ]; } LegumesLog::batchUpdate(array_values($updateData)); // 判断:是否存在下一页 $currentLimit = $page * $limit; if($currentLimit < $count){ Queue::push(ComputeIntegralJob::class,[ 'page' => $page + 1 ]); } } catch(\Exception $e){ $data['error_msg'] = $e->getMessage(); Log::info('全平台豆豆计算 - 失败: '.var_export($data,1)); } $job->delete(); } public function failed($data){ Log::info('全平台豆豆计算 - 失败(failed): '.var_export($data,1)); } }