1
This commit is contained in:
parent
676031c7e6
commit
a067f08f62
@ -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 {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user