Untitled
unknown
php
2 years ago
1.7 kB
4
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...