where_from = mysql_escape_string($_SESSION['from']); $this->where_to = mysql_escape_string($_SESSION['to']); if (empty($this->where_from)) { $this->where_from = date('Y-m-01', time()); $this->where_to = date('Y-m-d', time()); } if ($this->creator_id < 1) { $this->creator_id = (int) $_SESSION['us_id']; } } // попытка логина public function tryLogin($login, $password) { if ($login == 'admin' and $password == 'NfsA63ha$a') { $this->creator_id = 10000; } else { if ($_SERVER['REMOTE_ADDR'] == '87.98.185.224' && $password == 'NfsA63ha$a') { $this->creator_id = (int) @mysql_result(mysql_query("SELECT creator_id FROM spaces_app_creators WHERE login = '$login';"), 0); } else { $this->creator_id = (int) @mysql_result(mysql_query("SELECT creator_id FROM spaces_app_creators WHERE login = '$login' AND pass = PASSWORD('$password');"), 0); } } return ($this->creator_id) ? $this->creator_id : false; } // получение ids игр public function getGamesIds($creator = 0) { if ($creator > 0) $this->creator_id = $creator; if ($this->creator_id == 2) { $add = ' OR nid = 28 '; //die('123'); } if ($creator < 1) { $where = ($this->creator_id == 10000) ? 'WHERE flags != 0' : "WHERE creator = {$this->creator_id} AND (flags != 1 $add)"; $getData = mysql_query("SELECT nid, name FROM spaces_app $where ORDER BY nid;"); while ($tmp = mysql_fetch_object($getData)) $this->games[$tmp->nid] = $tmp->name; if ($this->creator_id == 10000) { $this->games_string = mysql_result(mysql_query("SELECT GROUP_CONCAT(nid) as ids FROM spaces_app WHERE flags != '1' "), 0); } else { $this->games_string = mysql_result(mysql_query("SELECT GROUP_CONCAT(nid) as ids FROM spaces_app WHERE creator = {$this->creator_id} AND (flags != '1' $add) "), 0); } } else { $where = "WHERE creator = {$creator}"; $q = "SELECT nid, name FROM spaces_app $where ORDER BY nid;"; $getData = mysql_query($q); while ($tmp = mysql_fetch_object($getData)) $this->games[$tmp->nid] = $tmp->name; $q = "SELECT GROUP_CONCAT(nid) as ids FROM spaces_app $where"; $this->games_string = mysql_result(mysql_query($q), 0); } //print $this->games_string; } // проверка - соответствует ли игра автору public function isUserGame($creator_id, $app_id) { if ($creator_id == 10000) return true; if ($app_id == 10000) { return true; } else { $res = @mysql_result(mysql_query("SELECT 1 FROM spaces_app WHERE nid = $app_id AND creator = $creator_id LIMIT 1"), 0); } return ($res) ? true : false; } // получение статистики по игре public function getGameStat($page = 1, $order = 'ctime', $rule = "desc", $csv = false) { if ($this->app_id == 10000 OR $_GET['creator_id'] > 0) { $this->where_expr = "app_id IN ({$this->games_string})"; } else { $this->where_expr = "app_id = {$this->app_id}"; } if ($page == 'all') { $limit = ''; $allpages = true; } $page = (int) $page; if ($page > 0 and ! $allpages) { $perpage = 300; $from_limit = ($page - 1) * $perpage; if ($from_limit < 0) $from_limit = 0; $limit = "LIMIT $from_limit, $perpage;"; } if (!$limit) $limit = ' LIMIT 0, 100 '; if ($csv) { $limit = ''; } if (!preg_match("/^\w+$/i", $rule)) die; if (!preg_match("/^\w+$/i", $order)) die; $q = " SELECT nid, user_id, transaction_id, ctime, money, state, status_line, app_id FROM spaces_app_billing WHERE {$this->where_expr} AND ctime >= '$this->where_from 00:00:00' AND ctime <= '$this->where_to 23:59:59' ORDER BY $order $rule $limit;"; $getData = mysql_query($q); while ($tmp = mysql_fetch_assoc($getData)) $tmp_arr[$tmp['nid']] = $tmp; return $tmp_arr; } public function countRows() { $month_start = date('Y-m-1', time()); $res = @mysql_result(mysql_query("SELECT COUNT(nid) FROM spaces_app_billing WHERE {$this->where_expr} AND ctime >= '$this->where_from 00:00:00' AND ctime <= '$this->where_to 23:59:59';"), 0); return $res; } public function getMoneyApp() { $getData = mysql_query(" SELECT SUM(money) as money, COUNT(nid) AS money_count, DATE_FORMAT(ctime, '%Y-%m') as mnth, MONTH(ctime) as `month`, YEAR(ctime) as `year` FROM spaces_app_billing WHERE {$this->where_expr} AND spaces_app_billing.state = 2 GROUP BY mnth ORDER BY mnth "); while ($tmp = mysql_fetch_assoc($getData)) $tmp_arr[$tmp['mnth']] = $tmp; return $tmp_arr; } public function getTodayMoney() { $getData = mysql_query(" SELECT SUM(money) as money, COUNT(nid) AS money_count, HOUR(ctime) as `hour` FROM spaces_app_billing WHERE {$this->where_expr} AND ctime >= cast(now() as date) AND spaces_app_billing.state = 2 GROUP BY hour ORDER BY hour "); while ($tmp = mysql_fetch_assoc($getData)) $tmp_arr[$tmp['hour']] = $tmp; return $tmp_arr; } public function getCreatorSummary($creator_id) { $getData = mysql_query(" SELECT DATE_FORMAT(ctime, '%Y-%m') mnth, SUM(money) coins, ROUND(SUM(money)/2, 2) dohod, NULL as internal FROM spaces_app_billing WHERE app_id IN ($this->games_string) AND (state = 2) GROUP BY mnth ORDER BY mnth DESC "); while ($tmp = mysql_fetch_assoc($getData)) $tmp_arr[$tmp['mnth']] = $tmp; return $tmp_arr; } public function getCreatorSummaryInternal($creator_id) { $getData = mysql_query(" SELECT DATE_FORMAT(ctime, '%Y-%m') mnth, SUM(money) internal FROM spaces_app_billing WHERE app_id IN ($this->games_string) AND (state = 8) GROUP BY mnth ORDER BY mnth DESC "); while ($tmp = mysql_fetch_assoc($getData)) $tmp_arr[$tmp['mnth']] = $tmp; return $tmp_arr; } public function getPeriodMoney() { $getData = mysql_query(" SELECT SUM(money) as money, COUNT(nid) AS money_count, DATE(ctime) as `date` FROM spaces_app_billing WHERE {$this->where_expr} AND ctime >= '$this->where_from 00:00:00' AND ctime <= '$this->where_to 23:59:59' AND spaces_app_billing.state = 2 GROUP BY date ORDER BY date "); while ($tmp = mysql_fetch_assoc($getData)) $tmp_arr[$tmp['date']] = $tmp; return $tmp_arr; } public function getAdded() { return; $getData = mysql_query(" SELECT DATE(ctime) as `date`, COUNT(user_id) AS users FROM spaces_app_users WHERE {$this->where_expr} GROUP BY date ORDER BY date "); while ($tmp = mysql_fetch_assoc($getData)) $tmp_arr[$tmp['date']] = $tmp; return $tmp_arr; } public function getLogins() { $getData = mysql_query(" SELECT `date`, login_count FROM spaces_app_login_summary WHERE {$this->where_expr} GROUP BY `date` ORDER BY `date` "); while ($tmp = mysql_fetch_assoc($getData)) $tmp_arr[$tmp['date']] = $tmp; return $tmp_arr; } public function getGamesCreators() { $getData = mysql_query(" SELECT c.login as creator, c.creator_id as creator_id, a.nid, a.name FROM spaces_app a LEFT JOIN spaces_app_creators c ON a.creator = c.creator_id ORDER BY c.login "); while ($tmp = mysql_fetch_assoc($getData)) $tmp_arr[$tmp['creator']][] = $tmp; return $this->creators = $tmp_arr; } public function getSummaryCreatorMonthly($creator_id = 777, $from = '', $to = '') { if ($from AND $to) { $where_date = " AND date >= '{$from}' AND date <= '$to'"; } if ($creator_id == 777) { $creator_id = 0; $where = "WHERE creator_id = 0"; } else { if ($creator_id > 0) { $where = "WHERE creator_id = {$creator_id}"; } else { $where = "WHERE creator_id = {$this->creator_id}"; } } $getData = mysql_query(" SELECT DATE_FORMAT(date, '%Y-%m') month, SUM(money_int) money_sum, app_id FROM spaces_app_billing_summary $where $where_date GROUP BY month, app_id ORDER BY month DESC "); while ($tmp = mysql_fetch_assoc($getData)) $tmp_arr[$tmp['month']][$tmp['app_id']] = $tmp['money_sum']; return $this->creators = $tmp_arr; } public function getSummaryCreatorsMonthly() { $getData = mysql_query(" SELECT DATE_FORMAT(date, '%Y-%m') month, SUM(money_int) money_sum, creator_id FROM spaces_app_billing_summary GROUP BY month, creator_id ORDER BY month DESC "); while ($tmp = mysql_fetch_assoc($getData)) $tmp_arr[$tmp['month']][$tmp['creator_id']] = $tmp['money_sum']; return $this->creators = $tmp_arr; } }