diff --git a/webapp/controller/MissionController.class.php b/webapp/controller/MissionController.class.php index 919b52de..62b17aa8 100644 --- a/webapp/controller/MissionController.class.php +++ b/webapp/controller/MissionController.class.php @@ -241,7 +241,10 @@ class MissionController extends BaseAuthedController { public function boostOfferRewardMission() { $missionId = getReqVal('mission_id', 0); - $this->missionService->boostOfferRewardMission($missionId); + $this->missionService->boostOfferRewardMission( + $missionId, + $this->awardService, + $this->propertyChgService); } } diff --git a/webapp/services/MissionService.php b/webapp/services/MissionService.php index 4288e685..2f83bf8e 100644 --- a/webapp/services/MissionService.php +++ b/webapp/services/MissionService.php @@ -4,6 +4,7 @@ namespace services; require_once('mt/Task.php'); require_once('mt/Parameter.php'); +require_once('mt/Drop.php'); require_once('models/Mission.php'); require_once('models/Battle.php'); @@ -684,7 +685,7 @@ class MissionService extends BaseService { myself()->_rspOk(); } - public function boostOfferRewardMission($missionId) + public function boostOfferRewardMission($missionId, $awardService, $propertyChgService) { $idx = 0; $mission = null; @@ -692,13 +693,14 @@ class MissionService extends BaseService { myself()->_rspErr(1, 'mission_id parameter error'); return; } - if ($mission['sendtime'] > 0) { - myself()->_rspErr(1, 'mission_id parameter error2'); + /*$leftTime = max(0, ($mission['sendtime'] + $missionMeta['time'] + 1000)-myself()->_getNowTime()); + if ($leftTime > 0) { + myself()->_rspErr(1, 'mission_id parameter error' . $leftTime); return; - } + }*/ $missionMeta = mt\Task::get($missionId); if (!$missionMeta) { - myself()->_rspErr(1, 'mission_id parameter error2'); + myself()->_rspErr(1, 'mission_id parameter error3'); return; } if (myself()->_getItemCount(V_ITEM_DIAMOND, $this->userInfo) < $missionMeta['boost']){ @@ -711,9 +713,17 @@ class MissionService extends BaseService { 'item_num' => $missionMeta['boost'] ) )); + $dropMeta = mt\Drop::get($missionMeta['reward']); + if (!$dropMeta) { + myself()->_rspErr(10, 'server internal error:' . $missionMeta['reward']); + return; + } + myself()->_scatterDrop('mission:' . $missionId, $dropMeta, $awardService, $propertyChgService); $this->removeOfferRewardMission($missionId); $this->saveOfferRewardMission(); - myself()->_rspOk(); + myself()->_rspData(array( + 'award' => $awardService->toDto(), + )); } private function getOfferRewardMissionById($missionId, &$mission, &$idx)