value; while (true) { $page = 0; $orders = Order::with([ 'profits' => fn($q) => $q->where('status', 0) ]) // 订单已完成 ->where('status', Order::STATUS_COMPLETED) // 没有售后订单 ->whereDoesntHave('afterSales') // 售后期过了 ->where('completed_at', '<', now()->subDays($saleDays)) // 未支付提成 ->whereNull('profit_paid') ->limit(200) ->get(); foreach ($orders as $order) { foreach($order->profits as $profit) { try { DB::beginTransaction(); if ($payWay === PayWay::WxpayTransfer->value) { if (!$profit->pay_no) { $profit->update([ 'pay_no' => serial_number(), 'pay_way' => $payWay ]); } $service->wechatTransfer($profit); } DB::commit(); } catch (\Exception $e) { DB::rollBack(); // $this->error($e->getMessage()); } } // 没有待付款的提成记录 if (!$order->profits()->where('status', 0)->exists()) { // 更新订单 $order->update(['profit_paid' => now()]); } } $page++; if ($page === 0) { sleep(60); } elseif ($page === 1) { sleep(30); } else { sleep(15); } } } }