#!/usr/local/bin/php query( StatisticModel::class, [ 'transfered' => [ '$ne' => true ] ], [ 'sort' => [ 'date' => 1 ], // 'skip' => $iteration * $size, 'limit' => $size ] ); $iteration++; return $ret; } $lastCheckedMonth = ""; $lastCheckedDay = ""; $userMonth = []; $userDay = []; $models = getModels(); while (sizeof($models)>0) { foreach ($models as $model) { $ts = floor( strval($model->date) / 1000) ; if (date("m", $ts) != $lastCheckedMonth) { $lastCheckedMonth = date("m", $ts); $userMonth = []; } if (date("d", $ts) != $lastCheckedDay) { $lastCheckedDay = date("d", $ts); $userDay = []; } if ($model->statType == StatisticModel::STAT_TYPE_NOTIZIA) { AnalyticsHelper::notiziaImpression( $model->content, date("d", $ts), date("m", $ts), date("Y", $ts) ); } else if ($model->statType == StatisticModel::STAT_TYPE_PAGE) { AnalyticsHelper::pageImpression( $model->content, date("d", $ts), date("m", $ts), date("Y", $ts), is_null($model->user) || !array_key_exists($model->user->id, $userDay), is_null($model->user) || !array_key_exists($model->user->id, $userMonth), is_null($model->user) || $model->user->isNew ); } else if ($model->statType == StatisticModel::STAT_TYPE_BANNER_CLICK) { AnalyticsHelper::bannerClick( $model->content->banner, date("d", $ts), date("m", $ts), date("Y", $ts) ); } else if ($model->statType == StatisticModel::STAT_TYPE_BANNER_IMPRESSION) { AnalyticsHelper::bannerImpression( $model->content->banner, date("d", $ts), date("m", $ts), date("Y", $ts) ); } if (!is_null($model->user)) { $userDay[ $model->user->id ] = 1; $userMonth[ $model->user->id ] = 1; } $model->transfered = true; GlobalVariables::get("dao")->save($model); } echo "Completed iteration $iteration", PHP_EOL; $models = getModels(); } ?>