Untitled
unknown
php
3 years ago
1.7 kB
7
Indexable
$start = strtotime('yesterday');
$end = strtotime('today');
$data = [];
$params = [];
$date = date('Y-m-d', $start);
$sql = 'SELECT user_id , platform, install_ts FROM app_installs WHERE user_id IS NOT NULL AND install_ts BETWEEN :start AND :end';
foreach ($this->site_dbs as $site_db)
{
$installs = $this->_app->db->getAll($sql, ['start' => $start, 'end' => $end], $site_db);
foreach ($installs as $ins)
{
try
{
$u = new MUserAdmin($ins['user_id'], $site_db);
$p = [
'site_id' => $u->site_id,
'app_platform' => $ins['platform'],
'voc' => $u->voc,
'country_iso' => $u->getGeoData()->country,
'date' => $date
];
$key = implode('_', $p);
$data[$key] = !empty($data[$key]) ? $data[$key] + 1 : 1;
$params[$key] = $p;
}
catch (Exception $e)
{
continue;
}
}
}
$sql = 'UPDATE mobile_app_stats SET installs_cnt = installs_cnt + :installs_cnt WHERE site_id = :site_id AND
app_platform = :app_platform AND voc = :voc AND country_iso = :country_iso AND date = :date ';
foreach ($data as $k => $cnt)
{
$params[$k]['installs_cnt'] = $cnt;
$this->_app->db->query($sql, $params[$k], C::Db()->STATS);
}Editor is loading...