select('`date` as `labels`, `hits` as `values`') ->where([ '`podcast_id`' => $podcastId, '`date` >' => date('Y-m-d', strtotime('-60 days')), ]) ->orderBy('`labels`', 'ASC') ->findAll(); cache()->save("{$podcastId}_analytics_podcast_by_day", $found, 600); } return $found; } /** * Gets hits data for a podcast * * @param int $podcastId * * @return array */ public function getDataByMonth(int $podcastId): array { if (!($found = cache("{$podcastId}_analytics_podcast_by_month"))) { $found = $this->select('DATE_FORMAT(`date`,"%Y-%m-01") as `labels`') ->selectSum('`hits`', '`values`') ->where([ '`podcast_id`' => $podcastId, ]) ->groupBy('`labels`') ->orderBy('`labels`', 'ASC') ->findAll(); cache()->save( "{$podcastId}_analytics_podcast_by_month", $found, 600 ); } return $found; } /** * Gets unique listeners data for a podcast * * @param int $podcastId * * @return array */ public function getDataUniqueListenersByDay(int $podcastId): array { if ( !($found = cache( "{$podcastId}_analytics_podcast_unique_listeners_by_day" )) ) { $found = $this->select( '`date` as `labels`, `unique_listeners` as `values`' ) ->where([ '`podcast_id`' => $podcastId, '`date` >' => date('Y-m-d', strtotime('-60 days')), ]) ->orderBy('`labels`', 'ASC') ->findAll(); cache()->save( "{$podcastId}_analytics_podcast_unique_listeners_by_day", $found, 600 ); } return $found; } /** * Gets unique listeners data for a podcast * * @param int $podcastId * * @return array */ public function getDataUniqueListenersByMonth(int $podcastId): array { if ( !($found = cache( "{$podcastId}_analytics_podcast_unique_listeners_by_month" )) ) { $found = $this->select('DATE_FORMAT(`date`,"%Y-%m-01") as `labels`') ->selectSum('`unique_listeners`', '`values`') ->where([ '`podcast_id`' => $podcastId, ]) ->groupBy('`labels`') ->orderBy('`labels`', 'ASC') ->findAll(); cache()->save( "{$podcastId}_analytics_podcast_unique_listeners_by_month", $found, 600 ); } return $found; } }