Esempio n. 1
0
 /**
  * @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;
 }