This commit is contained in:
hujiabin 2024-01-23 15:00:35 +08:00
parent 6ae266d81a
commit 6f801c05f2

View File

@ -2,6 +2,11 @@
namespace services; namespace services;
require_once('mt/AchievementsCycle.php');
require_once('mt/AchievementsPower.php');
require_once('mt/ServerTask.php');
require_once('mt/ServerTaskTime.php');
require_once('models/Hero.php'); require_once('models/Hero.php');
require_once('models/HashRate.php'); require_once('models/HashRate.php');
require_once('models/HashRateBattleData.php'); require_once('models/HashRateBattleData.php');
@ -11,9 +16,6 @@ use models\GlobalData;
use models\HashRateBattleData; use models\HashRateBattleData;
use models\HashRate; use models\HashRate;
use models\Hero; use models\Hero;
use mt\AchievementsPower;
use mt\ServerTask;
use mt\ServerTaskTime;
class HashRateService extends BaseService class HashRateService extends BaseService
{ {
@ -89,60 +91,60 @@ class HashRateService extends BaseService
switch ($taskMate['Completion_type']){ switch ($taskMate['Completion_type']){
//吃鸡或4v4获得胜利 //吃鸡或4v4获得胜利
case AchievementsPower::TOTAL_WINS_TIMES : { case \mt\AchievementsPower::TOTAL_WINS_TIMES : {
$taskDto['current'] = $this->getBattleData($taskMate, $taskDto['current'] = $this->getBattleData($taskMate,
'total_win_times'); 'total_win_times');
} }
break; break;
//击杀人数 //击杀人数
case AchievementsPower::TOTAL_KILL_TIMES : { case \mt\AchievementsPower::TOTAL_KILL_TIMES : {
$taskDto['current'] = $this->getBattleData($taskMate, $taskDto['current'] = $this->getBattleData($taskMate,
'total_kills_times'); 'total_kills_times');
} }
break; break;
//使用X道具 //使用X道具
case AchievementsPower::USE_ITEM_TIMES : { case \mt\AchievementsPower::USE_ITEM_TIMES : {
$taskDto['current'] = $this->getWeaponsSlotData($taskMate); $taskDto['current'] = $this->getWeaponsSlotData($taskMate);
} }
break; break;
//X分钟内结束比赛 //X分钟内结束比赛
case AchievementsPower::NOMINAL_TIME_BATTLE_END : { case \mt\AchievementsPower::NOMINAL_TIME_BATTLE_END : {
$taskDto['current'] = $this->getBattleData($taskMate, $taskDto['current'] = $this->getBattleData($taskMate,
'total_fiveMin_times'); 'total_fiveMin_times');
} }
break; break;
//在局内升级最快次数 //在局内升级最快次数
case AchievementsPower::IN_BATTLE_UP_LV : { case \mt\AchievementsPower::IN_BATTLE_UP_LV : {
$taskDto['current'] = $this->getBattleData($taskMate, $taskDto['current'] = $this->getBattleData($taskMate,
'total_first_Lv_up'); 'total_first_Lv_up');
} }
break; break;
//游戏场次 //游戏场次
case AchievementsPower::TOTAL_BATTLE_TIMES : { case \mt\AchievementsPower::TOTAL_BATTLE_TIMES : {
$taskDto['current'] = $this->getBattleData($taskMate, $taskDto['current'] = $this->getBattleData($taskMate,
'total_battle_times'); 'total_battle_times');
} }
break; break;
//最后一名次数 //最后一名次数
case AchievementsPower::TOTAL_LAST_RUNNER : { case \mt\AchievementsPower::TOTAL_LAST_RUNNER : {
$taskDto['current'] = $this->getBattleData($taskMate, $taskDto['current'] = $this->getBattleData($taskMate,
'total_last_runner_times'); 'total_last_runner_times');
} }
break; break;
//救援队友数 //救援队友数
case AchievementsPower::RESCUE_TEAMMATE_TIMES : { case \mt\AchievementsPower::RESCUE_TEAMMATE_TIMES : {
$taskDto['current'] = $this->getBattleData($taskMate, $taskDto['current'] = $this->getBattleData($taskMate,
'total_rescue_times'); 'total_rescue_times');
} }
break; break;
//累计行走距离(米) //累计行走距离(米)
case AchievementsPower::WALKING_DISTANCE : { case \mt\AchievementsPower::WALKING_DISTANCE : {
$taskDto['current'] = $this->getBattleData($taskMate, $taskDto['current'] = $this->getBattleData($taskMate,
'total_walking_distance'); 'total_walking_distance');
} }
break; break;
//指定英雄升阶数 //指定英雄升阶数
case AchievementsPower::HERO_UP_QUALITY : { case \mt\AchievementsPower::HERO_UP_QUALITY : {
$state = false; $state = false;
Hero::getHeroList(function ($row) use ($taskMate,&$state) { Hero::getHeroList(function ($row) use ($taskMate,&$state) {
if ($row['hero_id'] == $taskMate['condition'] && $row['quality'] >= $taskMate['Completed_quantity']){ if ($row['hero_id'] == $taskMate['condition'] && $row['quality'] >= $taskMate['Completed_quantity']){
@ -155,17 +157,17 @@ class HashRateService extends BaseService
} }
break; break;
//拥有英雄nft数 //拥有英雄nft数
case AchievementsPower::OWN_HERO_NFT_NUM : { case \mt\AchievementsPower::OWN_HERO_NFT_NUM : {
//...../ //...../
} }
break; break;
//拥有芯片nft数 //拥有芯片nft数
case AchievementsPower::OWN_CHIP_NFT_NUM : { case \mt\AchievementsPower::OWN_CHIP_NFT_NUM : {
//....../ //....../
} }
break; break;
//拥有金币数 //拥有金币数
case AchievementsPower::OWN_GOLD_NUM : { case \mt\AchievementsPower::OWN_GOLD_NUM : {
$taskDto['current'] = myself()->_getPeriodV(TN_TOTAL_GATHER_GOLD,0); $taskDto['current'] = myself()->_getPeriodV(TN_TOTAL_GATHER_GOLD,0);
} }
break; break;
@ -200,9 +202,9 @@ class HashRateService extends BaseService
private function internalGetBattleData($taskMate) private function internalGetBattleData($taskMate)
{ {
$battleData = null; $battleData = null;
if ($taskMate['scene'] == AchievementsPower::PVP_SCENE) { if ($taskMate['scene'] == \mt\AchievementsPower::PVP_SCENE) {
$battleData = $this->pvpBattleData; $battleData = $this->pvpBattleData;
} else if ($taskMate['scene'] == AchievementsPower::MOBA_SCENE){ } else if ($taskMate['scene'] == \mt\AchievementsPower::MOBA_SCENE){
$battleData = $this->mobaBattleData; $battleData = $this->mobaBattleData;
} }
return $battleData ? $battleData : array(); return $battleData ? $battleData : array();
@ -226,19 +228,19 @@ class HashRateService extends BaseService
'state' => self::NOT_FINISHED_STATE, 'state' => self::NOT_FINISHED_STATE,
); );
switch ($taskMate['condition']){ switch ($taskMate['condition']){
case ServerTask::TOTAL_BATTLE_TIMES_COND : { case \mt\ServerTask::TOTAL_BATTLE_TIMES_COND : {
$taskDto['current'] = $this->getServerTaskBattleData($taskMate,"total_battle_times"); $taskDto['current'] = $this->getServerTaskBattleData($taskMate,"total_battle_times");
} }
break; break;
case ServerTask::TOTAL_KILL_NUM_COND :{ case \mt\ServerTask::TOTAL_KILL_NUM_COND :{
$taskDto['current'] = $this->getServerTaskBattleData($taskMate,"total_kills_times"); $taskDto['current'] = $this->getServerTaskBattleData($taskMate,"total_kills_times");
} }
break; break;
case ServerTask::TOTAL_DAMGE_OUT_COND :{ case \mt\ServerTask::TOTAL_DAMGE_OUT_COND :{
$taskDto['current'] = $this->getServerTaskBattleData($taskMate,"total_damage_out"); $taskDto['current'] = $this->getServerTaskBattleData($taskMate,"total_damage_out");
} }
break; break;
case ServerTask::TOTAL_USE_SKILL_TIMES_COND :{ case \mt\ServerTask::TOTAL_USE_SKILL_TIMES_COND :{
$taskDto['current'] = $this->getServerTaskBattleData($taskMate,"use_skill_times"); $taskDto['current'] = $this->getServerTaskBattleData($taskMate,"use_skill_times");
} }
} }
@ -260,9 +262,9 @@ class HashRateService extends BaseService
private function internalGetServerTaskBattleData($taskMate) private function internalGetServerTaskBattleData($taskMate)
{ {
$battleData = null; $battleData = null;
if ($taskMate['type'] == ServerTask::MOBA_TYPE) { if ($taskMate['type'] == \mt\ServerTask::MOBA_TYPE) {
$battleData = $this->mobaBattleDataServerTask; $battleData = $this->mobaBattleDataServerTask;
} else if ($taskMate['type'] == ServerTask::PVP_TYPE){ } else if ($taskMate['type'] == \mt\ServerTask::PVP_TYPE){
$battleData = $this->pvpBattleDataServerTask; $battleData = $this->pvpBattleDataServerTask;
} }
return $battleData ? $battleData : array(); return $battleData ? $battleData : array();
@ -289,12 +291,12 @@ class HashRateService extends BaseService
$mobaCount = 0; $mobaCount = 0;
$pvpCount = 0; $pvpCount = 0;
foreach ($taskList1 as $taskDto){ foreach ($taskList1 as $taskDto){
if ($taskDto['state'] == \services\HashRateService::FINISHED_STATE){ if ($taskDto['state'] == self::FINISHED_STATE){
$mobaCount += 1; $mobaCount += 1;
} }
} }
foreach ($taskList2 as $taskDto){ foreach ($taskList2 as $taskDto){
if ($taskDto['state'] == \services\HashRateService::FINISHED_STATE){ if ($taskDto['state'] == self::FINISHED_STATE){
$pvpCount += 1; $pvpCount += 1;
} }
} }