Я создал чаевую игру, пользователи могут угадать значение, и после 12 часов текущий курс доллара США/евро будет взят по запросу API, а победители, набравшие ближайшее значение, будут (только один победитель, в случае, если русские пользователи набрали одинаковое количество, все они выиграют).(laravel eloquent) получить ближайшие значения (чаевая игра)
Как получить «ближайший» отзыв из базы данных?
foreach ($rounds_closed as $round_closed)
{
//get latest rate
$amount = 458.12;
//set transaction as processed and set latest rate
$round_closed->update([
'status' => 2,
'win_tip' => $amount,
]);
//get lucky winners
//here I would need eloquent code to choose the "nearest" winners
$winners_transactions = Transaction::where('round_id', $round_closed->id)->where('assessment', $round_closed->win_tip)->get();
//if we have at least one winner
if ($winners_transactions->count() > 0)
{
//calculate their win amount
$sum = $round_closed->transactions->sum('amount');
$fee = $sum * 0.10;
$sum = $sum - $fee;
$sum = number_format($sum/$winners_transactions->count(), 8, '.', '');
foreach ($winners_transactions as $winner_transaction)
{
//mark transaction as payed out
$winner_transaction->update([
'payout' => 1,
]);
//payout user
}
}
}