This commit is contained in:
hujiabin 2024-04-20 14:44:26 +08:00
parent d887ba26a9
commit 92ce5dbd95
4 changed files with 27 additions and 65 deletions

View File

@ -20,10 +20,8 @@ class Activity(object):
['obtain_end_time', 0, '完成进度阶段结束时间'],
['income_start_time', 0, '宝箱掉落阶段开始时间'],
['income_end_time', 0, '宝箱掉落阶段结束时间'],
['status', 0, '0:任务进行时 1:4v4完成任务 2:pvp完成任务 '],
['drop_state', 0, ' 宝箱掉落模式 1:4v4 2:pvp '],
['!taskDtoList1', [serverTask()], '4v4任务列表'],
['!taskDtoList2', [serverTask()], 'pvp任务列表'],
['status', 0, '0:任务未完成 1:完成任务 '],
['!taskDtoList', [serverTask()], '任务列表'],
]
}
]

View File

@ -17,49 +17,34 @@ class ActivityController extends BaseAuthedController {
$this->_rspErr(111, 'The activity has not started yet');
return;
}
$taskDtoList1 = array();
$taskDtoList2 = array();
$taskDtoList = 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);
}
$taskDto = $hashRateService->serverTaskDto($taskMeta);
array_push($taskDtoList,$taskDto);
}
$mobaCount = 0;
$pvpCount = 0;
foreach ($taskDtoList1 as $taskDto){
$count = 0;
foreach ($taskDtoList as $taskDto){
if ($taskDto['state'] == \services\HashRateService::FINISHED_STATE){
$mobaCount += 1;
$count += 1;
}
}
foreach ($taskDtoList2 as $taskDto){
if ($taskDto['state'] == \services\HashRateService::FINISHED_STATE){
$pvpCount += 1;
}
}
if ($mobaCount == count($taskDtoList1)){
if ($count == count($taskDtoList)){
GlobalData::addServerTaskStatus(\mt\ServerTask::ACCOMPLISH_MOBA_STATE);
}
if ($pvpCount == count($taskDtoList2)){
GlobalData::addServerTaskStatus(\mt\ServerTask::ACCOMPLISH_PVP_STATE);
}
$drop_state = $hashRateService->getServerASKBoxMode();
// $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' => GlobalData::getServerTaskStatus(),
'drop_state' => $drop_state,
'taskDtoList1' => $taskDtoList1,
'taskDtoList2' => $taskDtoList2,
'taskDtoList' => $taskDtoList,
));
}

View File

@ -27,7 +27,7 @@ class HashRateService extends BaseService
private $mobaBattleData = array();
private $pvpBattleData = array();
private $serverTaskData = array();
private $mobaBattleDataServerTask = array();
private $battleDataServerTask = array();
private $pvpBattleDataServerTask = array();
public function init()
@ -59,8 +59,6 @@ class HashRateService extends BaseService
$this->serverTaskData = getXVal($serverDataDb, 'data', array());
if (!$this->serverTaskData){
$this->serverTaskData = array(
'pvpData' => array(),
'mobaData' => array(),
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime(),
);
@ -69,14 +67,11 @@ class HashRateService extends BaseService
if ($currentServerTask && myself()->_getDaySeconds(getXVal($this->serverTaskData, 'modifytime', 0)) <
myself()->_getDaySeconds(strtotime($currentServerTask['obtain_start_time']))) {
$this->serverTaskData = array(
'pvpData' => array(),
'mobaData' => array(),
'modifytime' => myself()->_getNowTime(),
);
GlobalData::addServerTaskStatus(\mt\ServerTask::NOT_ACCOMPLISH_STATE);
}
$this->pvpBattleDataServerTask = $this->serverTaskData['pvpData'];
$this->mobaBattleDataServerTask = $this->serverTaskData['mobaData'];
$this->battleDataServerTask = $this->serverTaskData;
}
@ -263,12 +258,7 @@ class HashRateService extends BaseService
private function internalGetServerTaskBattleData($taskMate)
{
$battleData = null;
if ($taskMate['type'] == \mt\ServerTask::MOBA_TYPE) {
$battleData = $this->mobaBattleDataServerTask;
} else if ($taskMate['type'] == \mt\ServerTask::PVP_TYPE){
$battleData = $this->pvpBattleDataServerTask;
}
$battleData = $this->battleDataServerTask;
return $battleData ? $battleData : array();
}

View File

@ -1243,8 +1243,6 @@ class TameBattleDataService extends BaseService {
$currentServerTask = mt\ServerTaskTime::getCurrentTime();
if (!isset($serverTaskData['data'])) {
$serverTaskData['data'] = array(
'pvpData' => array(),
'mobaData' => array(),
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime()
);
@ -1252,9 +1250,7 @@ class TameBattleDataService extends BaseService {
if ($currentServerTask && myself()->_getDaySeconds($serverTaskData['data']['modifytime']) <
myself()->_getDaySeconds(strtotime($currentServerTask['obtain_start_time']))) {
$serverTaskData['data'] = array(
'pvpData' => array(),
'mobaData' => array(),
'createtime' => $hisBattleData['server_task_data']['createtime'],
'createtime' => $serverTaskData['data']['createtime'],
'modifytime' => myself()->_getNowTime()
);
}
@ -1288,12 +1284,7 @@ class TameBattleDataService extends BaseService {
$this->applyEx($hisBattleData['hash_rate_data']['pvpData']);
$hisBattleData['hash_rate_data']['modifytime'] = myself()->_getNowTime();
}
if (! $server_task_state && $currentServerTask &&
myself()->_getNowTime() > strtotime($currentServerTask['obtain_start_time']) &&
myself()->_getNowTime() < strtotime($currentServerTask['obtain_end_time'])) {
$this->applyEx($serverTaskData['data']['pvpData']);
$serverTaskData['data']['modifytime'] = myself()->_getNowTime();
}
}
break;
@ -1304,19 +1295,17 @@ class TameBattleDataService extends BaseService {
$this->applyEx($hisBattleData['hash_rate_data']['mobaData']);
$hisBattleData['hash_rate_data']['modifytime'] = myself()->_getNowTime();
}
if (! $server_task_state && $currentServerTask &&
myself()->_getNowTime() > strtotime($currentServerTask['obtain_start_time']) &&
myself()->_getNowTime() < strtotime($currentServerTask['obtain_end_time'])) {
$this->applyEx($serverTaskData['data']['mobaData']);
$serverTaskData['data']['modifytime'] = myself()->_getNowTime();
}
}
break;
default:{
}
break;
default:{}
}
if (! $server_task_state && $currentServerTask &&
myself()->_getNowTime() > strtotime($currentServerTask['obtain_start_time']) &&
myself()->_getNowTime() < strtotime($currentServerTask['obtain_end_time'])) {
$this->applyEx($serverTaskData['data']);
$serverTaskData['data']['modifytime'] = myself()->_getNowTime();
}
HashRateBattleData::add(json_encode($hisBattleData));
GlobalData::addServerTaskData($serverTaskData);