70 lines
2.1 KiB
PHP
70 lines
2.1 KiB
PHP
<?php
|
|
|
|
use phpcommon\SqlHelper;
|
|
|
|
class TempToolsController extends BaseController {
|
|
|
|
public function _handlePre()
|
|
{
|
|
parent::_handlePre();
|
|
}
|
|
|
|
public function getBattleData()
|
|
{
|
|
$targetId = getReqVal('target_id', '');
|
|
$time = getReqVal('time', '');
|
|
$conn = myself()->_getMysql($targetId);
|
|
$data = array();
|
|
$survivalTime = 0;
|
|
$sameTimes = 0;
|
|
$sessionChgTimes = 0;
|
|
{
|
|
$rows = SqlHelper::ormSelect(
|
|
$conn,
|
|
't_battle_record',
|
|
array(
|
|
'account_id' => $targetId
|
|
)
|
|
);
|
|
foreach ($rows as $row) {
|
|
$reqObj = json_decode($row['request'], true);
|
|
$reqObj['start_time'] = $reqObj['game_time'] -
|
|
$reqObj['alive_time']/1000;
|
|
$survivalTime += $reqObj['alive_time']/1000;
|
|
array_push($data, $reqObj);
|
|
}
|
|
}
|
|
usort($data, function ($a, $b) {
|
|
return $a['start_time'] < $b['start_time'] ? -1 : 1;
|
|
});
|
|
$lastSessionId = '';
|
|
{
|
|
for ($i = 0; $i < count($data); ++$i){
|
|
if ($i + 1 >= count($data)) {
|
|
break;
|
|
}
|
|
if ($data[$i]['start_time'] + $time < $data[$i + 1]['start_time']) {
|
|
++$i;
|
|
++$sameTimes;
|
|
}
|
|
if ($lastSessionId) {
|
|
if ($lastSessionId != $data[$i]['session_id']) {
|
|
++$sessionChgTimes;
|
|
$lastSessionId = $data[$i]['session_id'];
|
|
}
|
|
} else {
|
|
$lastSessionId = $data[$i]['session_id'];
|
|
}
|
|
}
|
|
}
|
|
myself()->_rspData(array(
|
|
'battle_times' => count($data),
|
|
'same_times' => $sameTimes,
|
|
'session_chg_times' => $sessionChgTimes,
|
|
'survival_time' => $survivalTime,
|
|
'data' => $data
|
|
));
|
|
}
|
|
|
|
}
|