From e888ef42681c6f1f9506a99d60742bbe2f07cc79 Mon Sep 17 00:00:00 2001 From: hujiabin <519660157@qq.com> Date: Thu, 18 Jan 2024 15:54:08 +0800 Subject: [PATCH] 1 --- doc/HashRate.py | 3 +- .../controller/BaseAuthedController.class.php | 5 +- .../controller/HashRateController.class.php | 8 ++- webapp/mt/AchievementsCycle.php | 12 ++++ webapp/services/HashRateService.php | 2 +- webapp/services/TameBattleDataService.php | 68 ++++++++++--------- 6 files changed, 60 insertions(+), 38 deletions(-) diff --git a/doc/HashRate.py b/doc/HashRate.py index 73e62d1b..6af018d7 100644 --- a/doc/HashRate.py +++ b/doc/HashRate.py @@ -15,9 +15,10 @@ class HashRate(object): 'response': [ _common.RspHead(), ['!list', [HashRateList()], '行为列表'], + ['obtain_start_time', 0, '获得期开始时间'], ['obtain_end_time', 0, '获得期结束时间'], ['income_end_time', 0, '盈利期结束时间'], - ['state', 0, '0:获得期 1:盈利期'], + ['state', 0, '0:未开始 1:获得期 2:盈利期'], ['myHashRate', 0, '我的算力'], ] }, diff --git a/webapp/controller/BaseAuthedController.class.php b/webapp/controller/BaseAuthedController.class.php index 49673f80..2879da8e 100644 --- a/webapp/controller/BaseAuthedController.class.php +++ b/webapp/controller/BaseAuthedController.class.php @@ -815,7 +815,10 @@ class BaseAuthedController extends BaseController { public function _getPeriodV($x, $y, $decVal = 0){ $currentPeriod= \mt\AchievementsCycle::getCurrentPeriod(); - return DynData::getPeriodV($x, $y,strtotime($currentPeriod['obtain_start_time']), $decVal); + if ($currentPeriod){ + return DynData::getPeriodV($x, $y,strtotime($currentPeriod['obtain_start_time']), $decVal); + } + return $decVal; } } diff --git a/webapp/controller/HashRateController.class.php b/webapp/controller/HashRateController.class.php index 514dbde3..b6160ff1 100644 --- a/webapp/controller/HashRateController.class.php +++ b/webapp/controller/HashRateController.class.php @@ -19,21 +19,25 @@ class HashRateController extends BaseAuthedController public function info(){ $mateList = \mt\AchievementsPower::getMetaList(); - $currentPeriod= \mt\AchievementsCycle::getCurrentPeriod(); + $currentPeriod= \mt\AchievementsCycle::getPeriod(); $hashRateDtoList = array(); foreach ($mateList as $mate) { $temp = $this->hashRateService->hashRateTaskDto($mate ,$currentPeriod); array_push($hashRateDtoList, $temp); } + $obtain_start_time = strtotime($currentPeriod['obtain_start_time']); $obtain_end_time = strtotime($currentPeriod['obtain_end_time']); $income_end_time = strtotime($currentPeriod['income_end_time']); $state = 0; - if ($obtain_end_time < myself()->_getNowTime()){ + if(myself()->_getNowTime() >= $obtain_start_time && myself()->_getNowTime() <= $obtain_end_time){ $state = 1; + }elseif ($obtain_end_time < myself()->_getNowTime()){ + $state = 2; } $myHashRate = HashRate::getMyHashRate($currentPeriod['id']); $this->_rspData(array( 'list' => $hashRateDtoList, + 'obtain_start_time' => $obtain_start_time, 'obtain_end_time' => $obtain_end_time, 'income_end_time' => $income_end_time, 'state' => $state, diff --git a/webapp/mt/AchievementsCycle.php b/webapp/mt/AchievementsCycle.php index e2c1201a..1f6b4eb3 100644 --- a/webapp/mt/AchievementsCycle.php +++ b/webapp/mt/AchievementsCycle.php @@ -17,6 +17,18 @@ class AchievementsCycle { return array(); } + public static function getPeriod() + { + $metaList = self::getMetaList(); + foreach ($metaList as $key => $meta) { + if (myself()->_getNowTime() >= strtotime($meta['obtain_start_time']) && + myself()->_getNowTime() <= strtotime($meta['income_end_time'])) { + return $meta; + } + } + return $metaList[1]; + } + public static function getMetaList() { if (!self::$metaList) { diff --git a/webapp/services/HashRateService.php b/webapp/services/HashRateService.php index 24f1c83b..7c622362 100644 --- a/webapp/services/HashRateService.php +++ b/webapp/services/HashRateService.php @@ -33,7 +33,7 @@ class HashRateService extends BaseService 'modifytime' => myself()->_getNowTime(), ); } - $currentPeriod= \mt\AchievementsCycle::getCurrentPeriod(); + $currentPeriod= \mt\AchievementsCycle::getPeriod(); if (myself()->_getDaySeconds(getXVal($this->hashRateData, 'modifytime', 0)) < myself()->_getDaySeconds(strtotime($currentPeriod['obtain_start_time']))) { $this->hashRateData = array( diff --git a/webapp/services/TameBattleDataService.php b/webapp/services/TameBattleDataService.php index 6038aa4c..870dbaca 100644 --- a/webapp/services/TameBattleDataService.php +++ b/webapp/services/TameBattleDataService.php @@ -1220,41 +1220,43 @@ class TameBattleDataService extends BaseService { error_log("_addHashRateTask"); $hisBattleData = HashRateBattleData::getMyBattleData(); $currentPeriod= \mt\AchievementsCycle::getCurrentPeriod(); - if (!isset($hisBattleData['data'])) { - $hisBattleData['data'] = array( - 'pvpData' => array(), - 'mobaData' => array(), - 'createtime' => myself()->_getNowTime(), - 'modifytime' => myself()->_getNowTime() - ); - } - if (myself()->_getDaySeconds($hisBattleData['data']['modifytime']) < - myself()->_getDaySeconds(strtotime($currentPeriod['obtain_start_time']) )) { - $hisBattleData['data'] = array( - 'pvpData' => array(), - 'mobaData' => array(), - 'createtime' => $hisBattleData['data']['createtime'], - 'modifytime' => myself()->_getNowTime() - ); - } - if ($currentPeriod && strtotime($currentPeriod['obtain_end_time']) > myself()->_getNowTime()){ - switch (getXVal($this->allInfo,'room_mode', 0)){ - case self::MATCH_MODE_PVP :{ - $this->applyEx($hisBattleData['data']['pvpData']); - } - break; - case self::ROOM_MODE_MOBA :{ - $this->applyEx($hisBattleData['data']['mobaData']); - } - break; - default:{ - - } - break; + if ($currentPeriod){ + if (!isset($hisBattleData['data'])) { + $hisBattleData['data'] = array( + 'pvpData' => array(), + 'mobaData' => array(), + 'createtime' => myself()->_getNowTime(), + 'modifytime' => myself()->_getNowTime() + ); } - $hisBattleData['data']['modifytime'] = myself()->_getNowTime(); + if (myself()->_getDaySeconds($hisBattleData['data']['modifytime']) < + myself()->_getDaySeconds(strtotime($currentPeriod['obtain_start_time']) )) { + $hisBattleData['data'] = array( + 'pvpData' => array(), + 'mobaData' => array(), + 'createtime' => $hisBattleData['data']['createtime'], + 'modifytime' => myself()->_getNowTime() + ); + } + if ($currentPeriod && strtotime($currentPeriod['obtain_end_time']) > myself()->_getNowTime()){ + switch (getXVal($this->allInfo,'room_mode', 0)){ + case self::MATCH_MODE_PVP :{ + $this->applyEx($hisBattleData['data']['pvpData']); + } + break; + case self::ROOM_MODE_MOBA :{ + $this->applyEx($hisBattleData['data']['mobaData']); + } + break; + default:{ + + } + break; + } + $hisBattleData['data']['modifytime'] = myself()->_getNowTime(); + } + HashRateBattleData::add(json_encode($hisBattleData)); } - HashRateBattleData::add(json_encode($hisBattleData)); } private function applyEx(&$battleData)