pluck("id")->toArray(); //获取正在进行中的订单,即使已经到了截止日,只要状态是在进行中的都继续生成 $unGeneratedOrders = (new Orders())->whereIn("status", [Orders::STATUS_ONGOING]) ->whereIn("project_id", $projects) ->whereRaw("DATEDIFF(`from_date`, now()) <= 0") ->whereDoesntHave("orderItems", function ($query) { $query->whereRaw("DATEDIFF(`service_date`, now()) = 0"); }) ->orderBy("id") ->limit($threshold) ->get(); foreach ($unGeneratedOrders as $order) { $service_date = date("Y-m-d"); if (Carbon::parse($order->to_date)->diffInDays($service_date, true) > 0) { DB::table((new Orders())->getTable())->where("id", $order->id)->update([ "to_date" => $service_date, "updated_at" => date("Y-m-d H:i:s") ]); } (new OrderItems())->createItem($order->id, $service_date); } return true; } }