From 0d66eef8550bdbfddf888d78a01e0b3f09b8a87e Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 13 Dec 2021 15:12:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BB=BB=E5=8A=A1=E6=94=B9?= =?UTF-8?q?=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webapp/controller/MissionController.class.php | 1 + webapp/controller/SeasonController.class.php | 1 + webapp/services/MissionService.php | 103 +++++++++--------- 3 files changed, 54 insertions(+), 51 deletions(-) diff --git a/webapp/controller/MissionController.class.php b/webapp/controller/MissionController.class.php index b7f180f..138f5ef 100644 --- a/webapp/controller/MissionController.class.php +++ b/webapp/controller/MissionController.class.php @@ -57,6 +57,7 @@ class MissionController extends BaseAuthedController { } $this->awardService = new services\AwardService(); $this->missionService = new services\MissionService(); + $this->missionService->init($this->userInfo, $this->seasonDb); } public function missionList() diff --git a/webapp/controller/SeasonController.class.php b/webapp/controller/SeasonController.class.php index 9214a2a..651c916 100644 --- a/webapp/controller/SeasonController.class.php +++ b/webapp/controller/SeasonController.class.php @@ -55,6 +55,7 @@ class SeasonController extends BaseAuthedController { die(); } $this->missionService = new services\MissionService(); + $this->missionService->init($this->userInfo, $this->seasonDb); } public function info() diff --git a/webapp/services/MissionService.php b/webapp/services/MissionService.php index a61cbba..9249761 100644 --- a/webapp/services/MissionService.php +++ b/webapp/services/MissionService.php @@ -15,10 +15,11 @@ class MissionService extends BaseService { private $userInfo = null; private $seasonDb = null; - private $missionDb = null; - public function init($userInfo, $seasonDb, $missionDb) + public function init($userInfo, $seasonDb) { + $this->userInfo = $userInfo; + $this->seasonDb = $seasonDb; } public function getMissionDto($userInfo, $seasonDb, $missionDb, $missionMeta) @@ -53,14 +54,14 @@ class MissionService extends BaseService { case mt\Task::PLAYER_LEVEL_COND: { //玩家等级达到X - $missionDto['current'] = $userInfo['level']; + $missionDto['current'] = $this->userInfo['level']; } break; case mt\Task::TOTAL_BATTLE_TIMES_COND: { //进行X场比赛 - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'total_battle_times'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'total_battle_times'); } break; case mt\Task::SHARE_GAME_TIMES_COND: @@ -75,57 +76,57 @@ class MissionService extends BaseService { case mt\Task::SINGLE_BATTLE_TIMES_COND: { //进行X场单人比赛 - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'total_single_battle_times'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'total_single_battle_times'); } break; case mt\Task::TEAM_BATTLE_TIMES_COND: { //进行X场组队比赛 - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'total_team_battle_times'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'total_team_battle_times'); } break; case mt\Task::SINGLE_BATTLE_RANK_COND: { //单人比赛排名前X - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'single_battle_rank'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'single_battle_rank'); } break; case mt\Task::TEAM_BATTLE_RANK_COND: { //组队比赛排名前X - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'team_battle_rank'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'team_battle_rank'); } break; case mt\Task::TOTAL_KILL_NUM_COND: { //累计击败X个敌人 - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'total_kills_times'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'total_kills_times'); } break; case mt\Task::TOTAL_DAMGE_OUT_COND: { //累计造成X点伤害 - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'total_damage_out'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'total_damage_out'); } break; case mt\Task::RESCUE_TEAMMATE_TIMES_COND: { //救援X个队友 - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'rescue_teammate_times'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'rescue_teammate_times'); } break; case mt\Task::TOTAL_SURVIVAL_TIME_COND: { //累计生存X分钟 - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'total_alive_time'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'total_alive_time'); } break; case mt\Task::USE_WEAPON_KILL_NUM_COND: @@ -155,104 +156,104 @@ class MissionService extends BaseService { case mt\Task::TOTAL_DIVING_TIMES_COND: { //累计潜水X次 - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'diving_times'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'diving_times'); } break; case mt\Task::TOTAL_DAMAGE_IN_COND: { //累计受到X点伤害 - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'total_damage_in'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'total_damage_in'); } break; case mt\Task::TOTAL_RECOVER_HP_COND: { //累计恢复X点血量 - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'total_recover_hp'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'total_recover_hp'); } break; case mt\Task::TOTAL_OPEN_AIRDROP_COND: { //累计打开空投补给X次 - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'open_airdrop_times'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'open_airdrop_times'); } break; case mt\Task::BATTLE_IN_HERO_LV_COND: { //单局内英雄技能升级到X级 - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, 'max_single_battle_hero_lv'); } break; case mt\Task::BATTLE_IN_GUN_LV_COND: { //单局内英雄专属枪械升到X级 cond_param1=英雄id - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, 'max_single_battle_hero_weapon_lv' . $missionMeta['param1']); } break; case mt\Task::TOTAL_MEDICINE_TIMES_COND: { //累计使用X药品Y次 cond_param1=槽位 - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'use_medicine_times'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'use_medicine_times'); } break; case mt\Task::TOTAL_DESTORY_CAR_TIMES_COND: { //累计破坏载具X个 - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'destory_car_times'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'destory_car_times'); } break; case mt\Task::TOTAL_USE_CAMOUFLAGE_TIMES_COND: { //累计使用X个伪装物 - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'use_camouflage_times'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'use_camouflage_times'); } break; case mt\Task::TOTAL_USE_SKILL_TIMES_COND: { //累计使用X次角色技能 - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'use_skill_times'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'use_skill_times'); } break; case mt\Task::RIDE_CAR_MOVE_DISTANCE_COND: { //驾驶或乘坐载具累计移动X米(所有模式) - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'ride_car_move_distance'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'ride_car_move_distance'); } break; case mt\Task::RIDE_CAR_KILL_NUM_COND: { //驾驶或乘坐载具累计击杀X个敌人(所有模式) - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'ride_car_kills'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'ride_car_kills'); } break; case mt\Task::LIKE_TEAMMATE_TIMES_COND: { //战斗结算中累计给队友点赞X次 - $missionDto['current'] = $this->getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, - 'to_teammate_like_times'); + $missionDto['current'] = $this->getBattleData($missionDb, $missionMeta, + 'to_teammate_like_times'); } break; case mt\Task::SEASON_LEVEL_COND: { //赛季段位达到X - $missionDto['current'] = $userInfo['rank']; + $missionDto['current'] = $this->userInfo['rank']; } break; case mt\Task::CONSUME_GOLD_COND: { //消耗X个金币 - $missionDto['current'] = $userInfo['consume_gold']; + $missionDto['current'] = $this->userInfo['consume_gold']; } break; case mt\Task::BATTLE_RANK_COND: @@ -355,20 +356,20 @@ class MissionService extends BaseService { return $missionDto; } - private function getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, $key) + private function getBattleData($missionDb, $missionMeta, $key) { $val = 0; if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) { if ($missionMeta['type'] == mt\Task::SEASONCARD_MISSON_TYPE && $missionMeta['subtype'] == mt\Task::SEASON_WEAKLY_MISSON_SUBTYPE) { - $weeklyData = getXVal($seasonDb, 'weekly_data', array()); + $weeklyData = getXVal($this->seasonDb, 'weekly_data', array()); $weekDb = getXVal($weeklyData, $missionMeta['week'], array()); $val = getXVal($weekDb, $key, 0); } else { - $val = getXVal($seasonDb, $key, 0); + $val = getXVal($this->seasonDb, $key, 0); } } else { - $val = getXVal($userInfo, $key, 0); + $val = getXVal($this->userInfo, $key, 0); } return $val; }