161 lines
5.0 KiB
PHP
161 lines
5.0 KiB
PHP
<?php
|
|
|
|
/**
|
|
* 冰雪传奇H5
|
|
* 2022 XX信息科技有限公司
|
|
*
|
|
* @author 123456
|
|
* @wx 123456
|
|
* @qq 123456
|
|
*/
|
|
|
|
//header('Access-Control-Allow-Origin: *');
|
|
|
|
header('Content-type: text/html; charset=utf-8');
|
|
|
|
include 'config.php';
|
|
include 'function.php';
|
|
|
|
$account = input('account');
|
|
|
|
// TODO:要做json文件缓存
|
|
$srvData = [
|
|
'login' => [999, 997, 990],
|
|
'serverlist' => [],
|
|
];
|
|
$defaultSrvId = 1;
|
|
$index = 0;
|
|
$nowTime = time();
|
|
$newSrvTime = (24 * 60 * 60) * 7;
|
|
|
|
// 获取选择的区服ID
|
|
$mySQLi = new mysqli($_CONFIG_DB['db_host'], $_CONFIG_DB['db_user'], $_CONFIG_DB['db_password'], $_CONFIG_DB['db_name'], $_CONFIG_DB['db_port']);
|
|
if($mySQLi->connect_errno) returnJson(['code' => 1, 'msg' => $mySQLi->connect_error]);
|
|
$mySQLi->set_charset($_CONFIG_DB['db_charset']);
|
|
|
|
$stmt = $mySQLi->prepare('select server_id from player where username=?');
|
|
$stmt->bind_param('s', $account);
|
|
$stmt->execute();
|
|
|
|
$result = $stmt->get_result();
|
|
$row = $result->fetch_array();
|
|
|
|
$result->free_result();
|
|
$stmt->close();
|
|
|
|
$serverId = !empty($row) ? intval($row['server_id']) : 0;
|
|
|
|
// 查询
|
|
$status = 1;
|
|
// $stmt = $mySQLi->prepare('select id, server_id, name, host, port, status, time, merge_id from server where server_id = ? and status >= ? order by server_id asc limit 1000');
|
|
// $stmt->bind_param('id', $serverId, $status);
|
|
$stmt = $mySQLi->prepare('select id, server_id, name, host, port, status, time, merge_id from server where status >= ? order by server_id asc limit 1000');
|
|
$stmt->bind_param('d', $status);
|
|
$stmt->bind_result($id, $server_id, $name, $host, $port, $status, $time, $merge_id);
|
|
$stmt->execute();
|
|
$stmt->store_result();
|
|
|
|
$srvData['serverlist'][$index] = [];
|
|
$srvData['serverlist'][$index]['name'] = '1-100区';
|
|
|
|
// 全部显示 --------------------------------------------
|
|
|
|
while($stmt->fetch()) {
|
|
$sid = $merge_id ? $merge_id : $server_id;
|
|
//echo "$sid, $id, $server_id, $host, $port, $status, $time, $merge_id<br>";
|
|
$srvData['serverlist'][$index]['serverlist'][] = [
|
|
'id' => $id,
|
|
'serverName' => (isset($name) && $name ? $name : $_CONFIG['game_first_name']).$server_id.'区',
|
|
'srvaddr' => isset($host) && $host && '127.0.0.1' != $host ? $host : $_CONFIG['game_host'],
|
|
'srvport' => isset($port) && $port ? $port : ($_CONFIG['game_port'] + $sid),
|
|
'srvid' => $sid,
|
|
'type' => 3 != $status ? ($nowTime - $time <= $newSrvTime ? 1 : 2) : $status, // 1:新, 2:火爆, 3:维护
|
|
'opentime' => date('Y-m-d H:i:s', $time),
|
|
'pf' => $_CONFIG['pf'],
|
|
'serverAlias' => 's'.$sid,
|
|
'originalSrvid' => $sid
|
|
];
|
|
//$index++;
|
|
}
|
|
|
|
// 自动合并 --------------------------------------------
|
|
|
|
/*$list = [];
|
|
|
|
while($stmt->fetch()) {
|
|
//$sid = $merge_id ? $merge_id : $server_id;
|
|
//echo "$sid, $id, $server_id, $host, $port, $status, $time, $merge_id<br>";
|
|
|
|
if(!$merge_id) {
|
|
$list[$server_id] = $server_id;
|
|
} else {
|
|
if(!isset($list[$server_id]) || $server_id > $list[$server_id]) {
|
|
$list[$merge_id] = $server_id;
|
|
}
|
|
}
|
|
//$index++;
|
|
}
|
|
|
|
//print_r($list);exit;
|
|
|
|
foreach ($list as $sid => $last_id) {
|
|
$srvData['serverlist'][$index]['serverlist'][] = [
|
|
'id' => $sid,
|
|
'serverName' => (isset($name) && $name ? $name : $_CONFIG['game_first_name']).$server_id.'区',
|
|
'srvaddr' => isset($host) && $host && '127.0.0.1' != $host ? $host : $_CONFIG['game_host'],
|
|
'srvport' => isset($port) && $port ? $port : ($_CONFIG['game_port'] + $sid),
|
|
'srvid' => $sid,
|
|
'type' => 3 != $status ? ($nowTime - $time <= $newSrvTime ? 1 : 2) : $status, // 1:新, 2:火爆, 3:维护
|
|
'opentime' => date('Y-m-d H:i:s', $time),
|
|
'pf' => $_CONFIG['pf'],
|
|
'serverAlias' => 's'.$sid,
|
|
'originalSrvid' => $sid
|
|
];
|
|
}*/
|
|
|
|
// --------------------------------------------
|
|
|
|
//echo "Records:".$stmt->num_rows."<br>";
|
|
|
|
// 关闭MySQL
|
|
$stmt->free_result();
|
|
$stmt->close();
|
|
$mySQLi->close();
|
|
|
|
returnJson($srvData);
|
|
|
|
/*$groupMax = 10;
|
|
$groupSubMax = 100;
|
|
|
|
$nowDate = date('Y-m-d H:i:s');
|
|
$lastSrvId = $groupMax * $groupSubMax;
|
|
$_day = $lastSrvId;
|
|
|
|
for($gid = 1; $gid <= $groupMax; $gid++) {
|
|
$srvData['serverlist'][$gid - 1] = [];
|
|
|
|
$gidStart = ($gid < 2 ? $gid : ($gid - 1) * $groupSubMax);
|
|
$gidEnd = $gid * $groupSubMax;
|
|
|
|
for($cid = 1; $cid <= $groupSubMax; $cid++) {
|
|
$srvData['serverlist'][$gid - 1]['name'] = $gidStart.'-'.$gidEnd.'区';
|
|
$srvData['serverlist'][$gid - 1]['serverlist'][] = [
|
|
'id' => $index,
|
|
'serverName' => $_CONFIG['game_first_name'].$index.'区',
|
|
'srvaddr' => $_CONFIG['game_host'],
|
|
'srvport' => 9000 + $defaultSrvId,
|
|
'srvid' => $defaultSrvId,
|
|
'type' => ($index > ($lastSrvId - 10) ? 1 : 2), // 1:新, 2:火爆, 3:维护
|
|
'opentime' => ($index == $lastSrvId ? $nowDate : date('Y-m-d H:i:s', strtotime('-'.$_day.' day'))),
|
|
'pf' => $_CONFIG['pf'],
|
|
'serverAlias' => 's'.$defaultSrvId,
|
|
'originalSrvid' => $defaultSrvId
|
|
];
|
|
|
|
$index++;
|
|
$_day--;
|
|
}
|
|
}
|
|
|
|
echo json_encode($srvData);*/
|