This commit is contained in:
aozhiwei 2021-12-14 14:26:26 +08:00
parent 676031c7e6
commit a067f08f62
2 changed files with 117 additions and 1 deletions

View File

@ -2,6 +2,62 @@
namespace services; namespace services;
/*
数据结构:
{
"total_battle_times": 0,
"total_single_battle_times": 0,
"total_team_battle_times": 0,
"single_battle_rank": 0,
"team_battle_rank": 0,
"total_win_times": 0,
"total_kills_times": 0,
"max_kills_times": 0,
"total_damage_out":0,
"max_damage_out": 0,
"total_damage_in": 0,
"total_recover_hp": 0,
"max_recover_hp": 0,
"total_alive_time": 0,
"max_alive_time": 0,
"rescue_teammate_times": 0,
"diving_times": 0,
"open_airdrop_times": 0,
"use_medicine_times": 0,
"destory_car_times": 0,
"use_camouflage_times": 0,
"use_skill_times": 0,
"ride_car_move_distance": 0,
"ride_car_kills": 0,
"to_teammate_like_times": 0,
"weapon_type_data": {
"${equip_type}_${equip_subtype}":
{
"kills": 1,
"damage_out": 1,
"obtain_count": 1,
}
},
"weapon_slot_data": {
"${slot}":
{
"use_times": 1,
}
},
"createtime": 0,
"modifytime": 0,
}
涉及的表:
t_battle.data
t_season.data
{
"daily_data": {},
"weekly_data": {
1: {}
}
}
*/
class BattleDataService extends BaseService { class BattleDataService extends BaseService {
} }

View File

@ -15,6 +15,10 @@ class MissionService extends BaseService {
private $userInfo = null; private $userInfo = null;
private $seasonDb = null; private $seasonDb = null;
private $hisBattleData = array();
private $seasonBattleData = array();
private $weeklyBattleData = array();
private $dailyBattleData = array();
public function init($userInfo, $seasonDb) public function init($userInfo, $seasonDb)
{ {
@ -43,7 +47,7 @@ class MissionService extends BaseService {
return $missionDto; return $missionDto;
} }
} }
$handled = true; $handled =true;
switch ($missionMeta['condition']) { switch ($missionMeta['condition']) {
case mt\Task::DAILY_LOGIN_TIMES_COND: case mt\Task::DAILY_LOGIN_TIMES_COND:
{ {
@ -378,27 +382,83 @@ class MissionService extends BaseService {
return $val; return $val;
} }
private function internalGetBattleData($missionMeta)
{
$battleData = null;
if ($missionMeta['type'] == mt\Task::DAILY_MISSON_TYPE) {
$battleData = $this->$this->dailyBattleData;
} else {
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) {
$battleData = getXVal($this->weeklyBattleData, $missionMeta['week'], array());
} else {
$battleData = $this->seasonBattleData;
}
} else {
$battleData = $this->hisBattleData;
}
}
return $battleData ? $battleData : array();
}
private function getWeaponDamageOut($missionMeta) private function getWeaponDamageOut($missionMeta)
{ {
$val = 0; $val = 0;
$battleData = $this->internalGetBattleData($missionMeta);
$weaponData = getXVal($battleData, 'weapon_type_data', null);
if ($weaponData) {
$key = $missionMeta['param1'] . '_' . $missionMeta['param2'];
$data = getXVal($weaponData, $key, null);
if ($data) {
$val = getXVal($data, 'damage_out', 0);
}
}
return $val; return $val;
} }
private function getWeaponKills($missionMeta) private function getWeaponKills($missionMeta)
{ {
$val = 0; $val = 0;
$battleData = $this->internalGetBattleData($missionMeta);
$weaponData = getXVal($battleData, 'weapon_type_data', null);
if ($weaponData) {
$key = $missionMeta['param1'] . '_' . $missionMeta['param2'];
$data = getXVal($weaponData, $key, null);
if ($data) {
$val = getXVal($data, 'kills', 0);
}
}
return $val; return $val;
} }
private function getWeaponSlotUseTimes($missionMeta) private function getWeaponSlotUseTimes($missionMeta)
{ {
$val = 0; $val = 0;
$battleData = $this->internalGetBattleData($missionMeta);
$weaponData = getXVal($battleData, 'weapon_slot_data', null);
if ($weaponData) {
$key = $missionMeta['param1'];
$data = getXVal($weaponData, $key, null);
if ($data) {
$val = getXVal($data, 'use_times', 0);
}
}
return $val; return $val;
} }
private function getEquipObtainCount($missionMeta) private function getEquipObtainCount($missionMeta)
{ {
$val = 0; $val = 0;
$battleData = $this->internalGetBattleData($missionMeta);
$weaponData = getXVal($battleData, 'weapon_type_data', null);
if ($weaponData) {
$key = $missionMeta['param1'] . '_' . $missionMeta['param2'];
$data = getXVal($weaponData, $key, null);
if ($data) {
$val = getXVal($data, 'obtain_count', 0);
}
}
return $val; return $val;
} }