game2006api/webapp/services/RookieTaskService.php
2024-10-11 12:05:19 +08:00

42 lines
1.3 KiB
PHP

<?php
namespace services;
require_once('mt/RookieTask.php');
require_once('models/RookieTask.php');
use models\RookieTask;
use phpcommon;
class RookieTaskService extends BaseService
{
const NOT_FINISHED_STATE = 0; //未完成
const FINISHED_STATE = 1; //完成未领取
const RECEIVED_STATE = 2; //完成已领取
const UNARRIVED_TIME_STATE = 3;//未到时间
public static function getTaskDto($taskMeta){
$taskDto = array(
'task_id' => $taskMeta['id'],
'current' => RookieTask::getCurrentVal($taskMeta['type']),
'target' => getXVal($taskMeta, 'target', 1),
'state' => self::NOT_FINISHED_STATE,
);
$starTime = RookieTask::getMyStarTime();
if ($taskMeta['task_day'] > 0){
$time = ($taskMeta['task_day']-1) * 86400;
if (myself()->_getNowDaySeconds() < $starTime+$time){
$taskDto['state'] = self::UNARRIVED_TIME_STATE;
}
}
if ($taskDto['current'] >= $taskDto['target']) {
$taskDto['current'] = $taskDto['target'];
$taskDto['state'] = self::FINISHED_STATE;
}
$taskDb = RookieTask::find($taskMeta['id']);
if ($taskDb){
$taskDto['state'] = self::RECEIVED_STATE;
}
return $taskDto;
}
}