Laravel Livewire Расчет торговой аналитикиPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel Livewire Расчет торговой аналитики

Сообщение Anonymous »

Я работаю над проектом, где мне нужно вычислить аналитику торговли пользователями и обновить ее на пользовательской панели. Все прошло гладко, пока число каждой пользовательской сделки не увеличилось (в общей сложности 10 000 сделок и выше), что увеличивает время нагрузки. Есть ли способ ускорить процесс?

Код: Выделить всё

public function updateChart()
{
$trades = $this->filterTrades();

$tradeAnalyticsService = app(TradeAnalyticsService::class, ['trades' => $trades, 'balance' => $this->portfolio->balance]);
$this->netProfitData = $tradeAnalyticsService->getRangeNetProfit();
$this->winLoseData = $tradeAnalyticsService->getWinLossPercentage();
$this->bestTradeReturn = $tradeAnalyticsService->getBestTradeReturn();
$this->worstTradeReturn = $tradeAnalyticsService->getWorstTradeReturn();
$this->essentialsData = $tradeAnalyticsService->getEssentialsData();
$this->emit('updateData');
}

public function filterTrades()
{
$trades = $this->portfolio->trades(['return', 'return_percentage', 'status', 'entry_date', 'id', 'instrument'])->latest('entry_date')->get();

// $trades = Trade::select(['return', 'return_percentage', 'status', 'entry_date', 'id'])->where('portfolio_id', $this->portfolio->id)->orderBy('entry_date')->get();

switch ($this->filter) {
case '7D':
return $trades->where('entry_date', '=', now()->startOfWeek());
break;

case '1M':
return $trades->where('entry_date', '=', now()->startOfMonth());
break;

case '3M':
return $trades->where('entry_date', '=', now()->startOfMonth()->subMonths(2));
break;

case '6M':
return $trades->where('entry_date', '=', now()->startOfMonth()->subMonth(5));
break;

case '1Y':
return $trades->where('entry_date', '=', now()->startOfYear());
break;

case '2Y':
return $trades->where('entry_date', '=', now()->startOfYear()->subYears(1));
break;

case '3Y':
return $trades->where('entry_date', '=', now()->startOfYear()->subYears(2));
break;

case 'All':
return $trades;
break;

default:
return $trades;
break;
}
}
< /code>
tradeanalyticsservice.php


Подробнее здесь: [url]https://stackoverflow.com/questions/70124129/laravel-livewire-calculate-trade-analytics[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»