1
This commit is contained in:
parent
676031c7e6
commit
a067f08f62
@ -2,6 +2,62 @@
|
||||
|
||||
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 {
|
||||
|
||||
}
|
||||
|
@ -15,6 +15,10 @@ class MissionService extends BaseService {
|
||||
|
||||
private $userInfo = null;
|
||||
private $seasonDb = null;
|
||||
private $hisBattleData = array();
|
||||
private $seasonBattleData = array();
|
||||
private $weeklyBattleData = array();
|
||||
private $dailyBattleData = array();
|
||||
|
||||
public function init($userInfo, $seasonDb)
|
||||
{
|
||||
@ -378,27 +382,83 @@ class MissionService extends BaseService {
|
||||
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)
|
||||
{
|
||||
$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;
|
||||
}
|
||||
|
||||
private function getWeaponKills($missionMeta)
|
||||
{
|
||||
$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;
|
||||
}
|
||||
|
||||
private function getWeaponSlotUseTimes($missionMeta)
|
||||
{
|
||||
$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;
|
||||
}
|
||||
|
||||
private function getEquipObtainCount($missionMeta)
|
||||
{
|
||||
$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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user