diff --git a/doc/_common.py b/doc/_common.py index 12ded3e..47d520d 100644 --- a/doc/_common.py +++ b/doc/_common.py @@ -250,7 +250,7 @@ class SeasonMission(object): def __init__(self): self.fields = [ - ['state', 0, '0:不可领取 1:可领取 2:已领取'], + ['state', 0, '任务状态 0:可领取 1:已领取 2:未完成(不可领取)'], ['current', 0, '当前匹配场次'], ['target', 0, '目标匹配场次'], ['target_rank', 0, '目标段位'], diff --git a/webapp/controller/SeasonController.class.php b/webapp/controller/SeasonController.class.php index ef5db98..5741358 100644 --- a/webapp/controller/SeasonController.class.php +++ b/webapp/controller/SeasonController.class.php @@ -4,15 +4,19 @@ require_once('mt/Parameter.php'); require_once('mt/Rank.php'); require_once('mt/Season.php'); +require_once('models/User.php'); require_once('models/Season.php'); +require_once('models/Mission.php'); require_once('services/AwardService.php'); require_once('services/PropertyChgService.php'); require_once('services/SeasonService.php'); +require_once('services/MissionService.php'); use phpcommon\SqlHelper; use models\User; use models\Season; +use models\Mission; class SeasonController extends BaseAuthedController { @@ -22,6 +26,7 @@ class SeasonController extends BaseAuthedController { private $seasonService = null; private $currSeasonMeta = null; private $seasonDb = null; + private $missionService = null; public function _handlePre() { @@ -48,6 +53,7 @@ class SeasonController extends BaseAuthedController { $this->_rspErr(10, '服务器内部错误'); die(); } + $this->missionService = new services\MissionService(); } public function info() @@ -67,7 +73,7 @@ class SeasonController extends BaseAuthedController { public function getMissionReward() { $mission = $this->getMissionInfo(); - if ($mission['state'] != 1) { + if ($mission['state'] != Mission::RECEIVEABLE_STATE) { $this->_rspErr(1, '不可领取'); return; } @@ -77,11 +83,24 @@ class SeasonController extends BaseAuthedController { private function getMissionInfo() { $info = array( - 'state' => 0, + 'state' => Mission::NOT_FINISHED_STATE, 'current' => 0, 'target' => 0, 'target_rank' => 0 ); + $missionMeta = mt\Task::get($this->currSeasonMeta['task_id']); + if ($missionMeta) { + $info['target_rank'] = $missionMeta['param1']; + $info['target'] = $missionMeta['target']; + $missionDb = Mission::find($missionMeta['id']); + $missionDto = $this->missionService->getMissionDto( + $this->userInfo, $this->seasonDb, $missionDb, $missionMeta); + if ($missionDto) { + $info['state'] = $missionDto['state']; + $info['current'] = $missionDto['current']; + $info['target'] = $missionDto['target']; + } + } return $info; } diff --git a/webapp/models/Mission.php b/webapp/models/Mission.php index a666313..da5e156 100644 --- a/webapp/models/Mission.php +++ b/webapp/models/Mission.php @@ -20,7 +20,7 @@ class Mission extends BaseModel { 't_mission', array( 'account_id' => myself()->_getAccountId(), - 'mission_id' => $missionid, + 'mission_id' => $missionId, ) ); return $row;