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, '完成进度阶段结束时间'], ['obtain_end_time', 0, '完成进度阶段结束时间'],
['income_start_time', 0, '宝箱掉落阶段开始时间'], ['income_start_time', 0, '宝箱掉落阶段开始时间'],
['income_end_time', 0, '宝箱掉落阶段结束时间'], ['income_end_time', 0, '宝箱掉落阶段结束时间'],
['status', 0, '0:任务进行时 1:4v4完成任务 2:pvp完成任务 '], ['status', 0, '0:任务未完成 1:完成任务 '],
['drop_state', 0, ' 宝箱掉落模式 1:4v4 2:pvp '], ['!taskDtoList', [serverTask()], '任务列表'],
['!taskDtoList1', [serverTask()], '4v4任务列表'],
['!taskDtoList2', [serverTask()], 'pvp任务列表'],
] ]
} }
] ]

View File

@ -17,49 +17,34 @@ class ActivityController extends BaseAuthedController {
$this->_rspErr(111, 'The activity has not started yet'); $this->_rspErr(111, 'The activity has not started yet');
return; return;
} }
$taskDtoList1 = array(); $taskDtoList = array();
$taskDtoList2 = array();
$taskListMeta = \mt\ServerTask::getMetaList(); $taskListMeta = \mt\ServerTask::getMetaList();
$hashRateService = new services\HashRateService(); $hashRateService = new services\HashRateService();
$hashRateService->init(); $hashRateService->init();
foreach ($taskListMeta as $taskMeta){ foreach ($taskListMeta as $taskMeta){
if ($taskMeta['type'] == \mt\ServerTask::MOBA_TYPE){ $taskDto = $hashRateService->serverTaskDto($taskMeta);
$taskDto = $hashRateService->serverTaskDto($taskMeta); array_push($taskDtoList,$taskDto);
array_push($taskDtoList1,$taskDto);
}
if ($taskMeta['type'] == \mt\ServerTask::PVP_TYPE){
$taskDto = $hashRateService->serverTaskDto($taskMeta);
array_push($taskDtoList2,$taskDto);
}
} }
$mobaCount = 0; $count = 0;
$pvpCount = 0;
foreach ($taskDtoList1 as $taskDto){ foreach ($taskDtoList as $taskDto){
if ($taskDto['state'] == \services\HashRateService::FINISHED_STATE){ if ($taskDto['state'] == \services\HashRateService::FINISHED_STATE){
$mobaCount += 1; $count += 1;
} }
} }
foreach ($taskDtoList2 as $taskDto){
if ($taskDto['state'] == \services\HashRateService::FINISHED_STATE){ if ($count == count($taskDtoList)){
$pvpCount += 1;
}
}
if ($mobaCount == count($taskDtoList1)){
GlobalData::addServerTaskStatus(\mt\ServerTask::ACCOMPLISH_MOBA_STATE); GlobalData::addServerTaskStatus(\mt\ServerTask::ACCOMPLISH_MOBA_STATE);
} }
if ($pvpCount == count($taskDtoList2)){ // $drop_state = $hashRateService->getServerASKBoxMode();
GlobalData::addServerTaskStatus(\mt\ServerTask::ACCOMPLISH_PVP_STATE);
}
$drop_state = $hashRateService->getServerASKBoxMode();
$this->_rspData(array( $this->_rspData(array(
'obtain_start_time' => strtotime($currentMeta['obtain_start_time']), 'obtain_start_time' => strtotime($currentMeta['obtain_start_time']),
'obtain_end_time' => strtotime($currentMeta['obtain_end_time']), 'obtain_end_time' => strtotime($currentMeta['obtain_end_time']),
'income_start_time' => strtotime($currentMeta['income_start_time']), 'income_start_time' => strtotime($currentMeta['income_start_time']),
'income_end_time' => strtotime($currentMeta['income_end_time']), 'income_end_time' => strtotime($currentMeta['income_end_time']),
'status' => GlobalData::getServerTaskStatus(), 'status' => GlobalData::getServerTaskStatus(),
'drop_state' => $drop_state, 'taskDtoList' => $taskDtoList,
'taskDtoList1' => $taskDtoList1,
'taskDtoList2' => $taskDtoList2,
)); ));
} }

View File

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

View File

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