63 lines
2.5 KiB
PHP
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,
|
|
));
|
|
}
|
|
|
|
} |