$mysql_conf['host'], 'port' => $mysql_conf['port'], 'user' => $mysql_conf['user'], 'passwd' => $mysql_conf['passwd'], 'dbname' => 'gamedb2001_' . $mysql_conf['instance_id'] )); return $conn; } protected function getRedis() { $key = 'game2001api'; $redis_conf = getRedisConfig($key); $r = new phpcommon\Redis(array( 'host' => $redis_conf['host'], 'port' => $redis_conf['port'], 'passwd' => $redis_conf['passwd'], )); return $r; } public function rankInfo() { $account_id = $_REQUEST['account_id']; //登录校验 $login = loginVerify($account_id, $_REQUEST['session_id']); if (!$login) { phpcommon\sendError(ERR_USER_BASE + 1, 'session无效'); return; } $conn = $this->getMysql($account_id); if (!$conn) { phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); return; } $kill_list = array(); $kill_rank = 0; $alive_list = array(); $alive_rank = 0; $harm_list = array(); $harm_rank = 0; $rate_list = array(); $rate_rank = 0; $win_list = array(); $win_rank = 0; $user_list = array(); //个人信息 $row = $conn->execQueryOne('SELECT user_name, avatar_url, kills, alive_time, harm, win_times, game_times FROM user ' . ' WHERE accountid=:accountid;', array( ':accountid' => $account_id )); if ($row) { array_push($user_list, array( 'account_id' => $account_id, 'name' => $row['user_name'], 'avatar_url' => $row['avatar_url'], 'kill' => phpcommon\safediv($row['kills'], $row['game_times']), 'alive'=> phpcommon\safediv($row['alive_time'], $row['game_times']), 'harm' => phpcommon\safediv($row['harm'], $row['game_times']), 'win_rate' => phpcommon\safediv($row['win_times'], $row['game_times']), 'win_game' => $row['win_times'] )); } //击杀榜 $r = $this->getRedis(); $kill_rank_db = $r->get("game2001api: kill_rank"); $kill_db = json_decode($kill_rank_db); $i = 0; foreach ($kill_db as $kill) { if ($i > 49) { break; } if ($kill_db[$i][0] == $account_id) { $kill_rank = $i + 1; } array_push($kill_list, array( 'account_id' => $kill_db[$i][0], 'name' => $kill_db[$i][1], 'avatar_url' => $kill_db[$i][2], 'kill' => $kill_db[$i][3], 'alive'=> $kill_db[$i][4], 'harm' => $kill_db[$i][5], 'win_rate' => $kill_db[$i][6], 'win_game' => $kill_db[$i][7] )); $i++; } //生存榜 $alive_rank_db = $r->get("game2001api: alive_rank"); $alive_db = json_decode($alive_rank_db); $i = 0; foreach ($alive_db as $alive) { if ($i > 49) { break; } if ($alive_db[$i][0] == $account_id) { $alive_rank = $i + 1; } array_push($alive_list, array( 'account_id' => $alive_db[$i][0], 'name' => $alive_db[$i][1], 'avatar_url' => $alive_db[$i][2], 'kill' => $alive_db[$i][3], 'alive'=> $alive_db[$i][4], 'harm' => $alive_db[$i][5], 'win_rate' => $alive_db[$i][6], 'win_game' => $alive_db[$i][7] )); $i++; } //伤害榜 $harm_rank_db = $r->get("game2001api: harm_rank"); $harm_db = json_decode($harm_rank_db); $i = 0; foreach ($harm_db as $harm) { if ($i > 49) { break; } if ($harm_db[$i][0] == $account_id) { $harm_rank = $i + 1; } array_push($harm_list, array( 'account_id' => $harm_db[$i][0], 'name' => $harm_db[$i][1], 'avatar_url' => $harm_db[$i][2], 'kill' => $harm_db[$i][3], 'alive'=> $harm_db[$i][4], 'harm' => $harm_db[$i][5], 'win_rate' => $harm_db[$i][6], 'win_game' => $harm_db[$i][7] )); $i++; } //胜率榜 $rate_rank_db = $r->get("game2001api: rate_rank"); $rate_db = json_decode($rate_rank_db); $i = 0; foreach ($rate_db as $rate) { if ($i > 49) { break; } if ($rate_db[$i][0] == $account_id) { $rate_rank = $i + 1; } array_push($rate_list, array( 'account_id' => $rate_db[$i][0], 'name' => $rate_db[$i][1], 'avatar_url' => $rate_db[$i][2], 'kill' => $rate_db[$i][3], 'alive'=> $rate_db[$i][4], 'harm' => $rate_db[$i][5], 'win_rate' => $rate_db[$i][6], 'win_game' => $rate_db[$i][7] )); $i++; } //胜场榜 $win_rank_db = $r->get("game2001api: win_rank"); $win_db = json_decode($win_rank_db); $i = 0; foreach ($win_db as $win) { if ($i > 49) { break; } if ($win_db[$i][0] == $account_id) { $win_rank = $i + 1; } array_push($win_list, array( 'account_id' => $win_db[$i][0], 'name' => $win_db[$i][1], 'avatar_url' => $win_db[$i][2], 'kill' => $win_db[$i][3], 'alive'=> $win_db[$i][4], 'harm' => $win_db[$i][5], 'win_rate' => $win_db[$i][6], 'win_game' => $win_db[$i][7] )); $i++; } echo json_encode(array( 'errcode' => 0, 'errmsg' => "", 'user_list' => $user_list, 'kill_rank' => $kill_rank, 'kill_list' => $kill_list, 'alive_rank' => $alive_rank, 'alive_list' => $alive_list, 'harm_rank' => $harm_rank, 'harm_list' => $harm_list, 'rate_rank' => $rate_rank, 'rate_list' => $rate_list, 'win_rank' => $win_rank, 'win_list' => $win_list )); } } ?>