92 lines
3.2 KiB
PHP
92 lines
3.2 KiB
PHP
<?php
|
|
|
|
require_once('services/PropertyChgService.php');
|
|
require_once('services/AwardService.php');
|
|
require_once('services/RookieTaskService.php');
|
|
|
|
require_once('mt/RookieTask.php');
|
|
|
|
require_once('models/RookieTask.php');
|
|
|
|
use models\RookieTask;
|
|
class RookieTaskController extends BaseAuthedController {
|
|
|
|
public function bindRookieTask(){
|
|
RookieTask::bindUser();
|
|
$this->_rspOk();
|
|
}
|
|
|
|
public function taskList(){
|
|
$day = getReqVal('day', 1);
|
|
$metaList = \mt\RookieTask::getCustomDayMetaList($day);
|
|
$taskList1 = array();
|
|
foreach ($metaList as $meta){
|
|
$metaDto = \services\RookieTaskService::getTaskDto($meta);
|
|
array_push($taskList1,$metaDto);
|
|
}
|
|
$metaList2 = \mt\RookieTask::getCustomDayMetaList();
|
|
$taskList2 = array();
|
|
foreach ($metaList2 as $meta){
|
|
$metaDto = \services\RookieTaskService::getTaskDto($meta);
|
|
array_push($taskList2,$metaDto);
|
|
}
|
|
$this->_rspData(array(
|
|
'task_list1' => $taskList1,
|
|
'task_list2' => $taskList2,
|
|
));
|
|
}
|
|
|
|
public function commitTaskS(){
|
|
$task_id = getReqVal('task_id', 0);
|
|
$taskMeta = mt\RookieTask::find($task_id);
|
|
if (!$taskMeta) {
|
|
$this->_rspErr(1, 'task_id parameter error');
|
|
return;
|
|
}
|
|
$taskMetaDto = \services\RookieTaskService::getTaskDto($taskMeta);
|
|
if (!$taskMetaDto) {
|
|
$this->_rspErr(10, 'server internal error');
|
|
return;
|
|
}
|
|
if ($taskMetaDto['state'] == \services\RookieTaskService::RECEIVED_STATE) {
|
|
$this->_rspErr(2, "Can't get it again");
|
|
return;
|
|
}
|
|
if ($taskMetaDto['state'] == \services\RookieTaskService::NOT_FINISHED_STATE) {
|
|
$this->_rspErr(3, 'task objectives not achieved');
|
|
return;
|
|
}
|
|
if ($taskMetaDto['state'] == \services\RookieTaskService::UNARRIVED_TIME_STATE) {
|
|
$this->_rspErr(3, 'The task is not started');
|
|
return;
|
|
}
|
|
$dropMeta = mt\Drop::get($taskMeta['reward']);
|
|
if (!$dropMeta) {
|
|
$this->_rspErr(10, 'server internal error:' . $taskMeta['reward']);
|
|
return;
|
|
}
|
|
$propertyChgService = new services\PropertyChgService();
|
|
$awardService = new services\AwardService();
|
|
$this->_scatterDrop('rookieTask:' . $task_id, $dropMeta, $awardService, $propertyChgService);
|
|
RookieTask::add($task_id);
|
|
$this->_rspData(array(
|
|
'award' => $awardService->toDto(),
|
|
'property_chg' => $propertyChgService->toDto(),
|
|
));
|
|
}
|
|
|
|
public function getTaskRedTags(){
|
|
$metaList = \mt\RookieTask::allList();
|
|
$list = array();
|
|
foreach ($metaList as $meta){
|
|
$metaDto = \services\RookieTaskService::getTaskDto($meta);
|
|
if ($metaDto['state'] == \services\RookieTaskService::FINISHED_STATE){
|
|
array_push($list,$meta['task_day']);
|
|
}
|
|
}
|
|
$this->_rspData(array(
|
|
'list' => $list,
|
|
));
|
|
}
|
|
|
|
} |