game2006api/webapp/controller/ActivityController.class.php
hujiabin 3125a78dbf 1
2024-01-23 14:32:06 +08:00

63 lines
2.5 KiB
PHP

<?php
require_once('services/HashRateService.php');
require_once('mt/ServerTaskTime.php');
require_once('mt/ServerTask.php');
class ActivityController extends BaseAuthedController {
//服务器大事件
public function serverTask(){
$currentMeta = \mt\ServerTaskTime::getCurrentTime();
if (! $currentMeta){
myself()->_setV(TN_SERVER_TASK_STATE,0,\mt\ServerTask::NOT_ACCOMPLISH_STATE);
$this->_rspErr(111, 'The activity has not started yet');
return;
}
$taskDtoList1 = array();
$taskDtoList2 = array();
$taskListMeta = \mt\ServerTask::getMetaList();
$hashRateService = new services\HashRateService();
$hashRateService->init();
foreach ($taskListMeta as $taskMeta){
if ($taskMeta['type'] == \mt\ServerTask::MOBA_TYPE){
$taskDto = $hashRateService->serverTaskDto($taskMeta);
array_push($taskDtoList1,$taskDto);
}
if ($taskMeta['type'] == \mt\ServerTask::PVP_TYPE){
$taskDto = $hashRateService->serverTaskDto($taskMeta);
array_push($taskDtoList2,$taskDto);
}
}
$mobaCount = 0;
$pvpCount = 0;
foreach ($taskDtoList1 as $taskDto){
if ($taskDto['state'] == \services\HashRateService::FINISHED_STATE){
$mobaCount += 1;
}
}
foreach ($taskDtoList2 as $taskDto){
if ($taskDto['state'] == \services\HashRateService::FINISHED_STATE){
$pvpCount += 1;
}
}
if ($mobaCount == count($taskDtoList1)){
myself()->_setV(TN_SERVER_TASK_STATE,0,\mt\ServerTask::ACCOMPLISH_MOBA_STATE);
}
if ($pvpCount == count($taskDtoList2)){
myself()->_setV(TN_SERVER_TASK_STATE,0,\mt\ServerTask::ACCOMPLISH_PVP_STATE);
}
$drop_state = $hashRateService->getServerASKBoxMode();
$this->_rspData(array(
'obtain_start_time' => strtotime($currentMeta['obtain_start_time']),
'obtain_end_time' => strtotime($currentMeta['obtain_end_time']),
'income_start_time' => strtotime($currentMeta['income_start_time']),
'income_end_time' => strtotime($currentMeta['income_end_time']),
'status' => myself()->_getV(TN_SERVER_TASK_STATE,0),
'drop_state' => $drop_state,
'taskDtoList1' => $taskDtoList1,
'taskDtoList2' => $taskDtoList2,
));
}
}