/** * @param int $lastDays * * @return array */ public function getStatisticData($lastDays = 10) { $timestamp = DateTimer::getZeroTimeStamp(strtotime('-' . $lastDays - 1 . ' days')); $dateTime = DateTimer::getDateTime4TimeStamp($timestamp); $donateEntity = $this->getDonateLogEntity(); $typList = $donateEntity->getDonateTypes(); $donateHistory = $donateEntity->getDonateHistorySuccess($dateTime); $result = []; // set some default values $range = DateTimer::getDateRange4Period($dateTime, new \DateTime()); foreach ($range as $date) { foreach ($typList as $type) { $result[$date->format('Y-m-d')][$type] = ['amount' => 0, 'coins' => 0]; } } if ($donateHistory) { foreach ($donateHistory as $donateData) { /** @var \DateTime $date */ $date = $donateData['created']; $result[$date->format('Y-m-d')][$donateData['type']]['amount'] += $donateData['amount']; $result[$date->format('Y-m-d')][$donateData['type']]['coins'] += $donateData['coins']; } } return $result; }
/** * @param int $lastDays * * @return array */ public function getStatisticData($lastDays = 10) { $dateTime = DateTimer::getDateTime4TimeStamp(strtotime('-' . $lastDays - 1 . ' days')); $numberList = $this->getStatisticDataNumberList($dateTime); $result = []; if ($this->defaultValues) { // set some default values $range = DateTimer::getDateRange4Period($dateTime, new DateTime()); foreach ($range as $date) { $result[$date->format($this->format)] = 0; } } if ($numberList) { foreach ($numberList as $numberData) { /** @var DateTime $date */ $date = $numberData['created']; $dateFormat = $date->format($this->format); if (!isset($result[$dateFormat])) { $result[$dateFormat] = 0; } $result[$dateFormat] += $numberData['amount']; } } return $result; }