game2006api/webapp/controller/TempToolsController.class.php
aozhiwei 85917b3687 1
2022-06-01 11:00:29 +08:00

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
));
}
}