This commit is contained in:
hujiabin 2024-01-22 15:52:30 +08:00
parent cf107daa9e
commit 15e1c01d11
5 changed files with 103 additions and 40 deletions

View File

@ -1730,3 +1730,21 @@ CREATE TABLE `t_hash_rate_battle_data` (
`modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
PRIMARY KEY (`idx`)
) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
--
-- Table structure for table `t_hash_rate_battle_data`
--
DROP TABLE IF EXISTS `t_global_data`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t_global_data` (
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
`name` varchar(60) NOT NULL DEFAULT '' COMMENT '参数名',
`data` mediumblob COMMENT 'data',
`createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
`modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
PRIMARY KEY (`idx`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -21,6 +21,17 @@ CREATE TABLE `t_hash_rate_battle_data` (
PRIMARY KEY (`idx`)
) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE `t_global_data` (
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
`name` varchar(60) NOT NULL DEFAULT '' COMMENT '参数名',
`data` mediumblob COMMENT 'data',
`createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
`modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
PRIMARY KEY (`idx`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
alter table t_chip add column `quality` int(11) NOT NULL DEFAULT '0' COMMENT '品阶';
insert into version (version) values(2023122801);

View File

@ -0,0 +1,52 @@
<?php
namespace models;
use mt;
use phpcommon\SqlHelper;
class GlobalData extends BaseModel
{
public static function getServerTaskData(){
$db = self::internalGet('server_event');
return $db ? json_decode($db['data'], true) : array();
}
public static function addServerTaskData($battleData){
self::internalGetAdd("server_event",$battleData);
}
private static function internalGetAdd($name,$battleData)
{
SqlHelper::upsert
(myself()->_getSelfMysql(),
't_global_data',
array(
'name' =>$name,
),
array(
'data' => $battleData,
'modifytime' => myself()->_getNowTime(),
),
array(
'name' => $name,
'data' => $battleData,
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime()
)
);
}
private static function internalGet($name)
{
$row = SqlHelper::ormSelectOne
(myself()->_getMysql(''),
't_global_data',
array(
'name' => $name
)
);
return $row ? $row : '';
}
}

View File

@ -5,7 +5,9 @@ namespace services;
require_once('models/Hero.php');
require_once('models/HashRate.php');
require_once('models/HashRateBattleData.php');
require_once('models/GlobalData.php');
use models\GlobalData;
use models\HashRateBattleData;
use models\HashRate;
use models\Hero;
@ -51,7 +53,8 @@ class HashRateService extends BaseService
$this->pvpBattleData = $this->hashRateData['pvpData'];
$this->mobaBattleData = $this->hashRateData['mobaData'];
$this->serverTaskData = getXVal($this->hisBattleData, 'server_task_data', array());
$serverDataDb = GlobalData::getServerTaskData();
$this->serverTaskData = getXVal($serverDataDb, 'data', array());
if (!$this->serverTaskData){
$this->serverTaskData = array(
'pvpData' => array(),

View File

@ -5,50 +5,34 @@ require_once('mt/Item.php');
require_once('mt/Equip.php');
require_once('mt/Season.php');
require_once('mt/Rank.php');
require_once('mt/RankReward.php');
require_once('mt/KillReward.php');
require_once('mt/Parameter.php');
require_once('mt/Hero.php');
require_once('mt/HeroQuality.php');
require_once('mt/AttrHelper.php');
require_once('mt/PveGemini.php');
require_once('mt/PveGeminiMode.php');
require_once('mt/RankSeason.php');
require_once('mt/LevelUp.php');
require_once('mt/StarLevel.php');
require_once('mt/AchievementsCycle.php');
require_once('mt/ServerTaskTime.php');
require_once('models/Season.php');
require_once('models/Battle.php');
require_once('models/Bag.php');
require_once('models/Hero.php');
require_once('models/Gun.php');
require_once('models/Chip.php');
require_once('models/Nft.php');
require_once('models/FragmentPool.php');
require_once('models/RealtimeData.php');
require_once('models/BattleHistory.php');
require_once('models/NftActive.php');
require_once('models/FragmentRecord.php');
require_once('models/BattleSettlement.php');
require_once('models/RankBattle.php');
require_once('models/HashRate.php');
require_once('models/HashRateBattleData.php');
require_once('models/GlobalData.php');
require_once('services/RankActivityService.php');
require_once('services/FormulaService.php');
require_once('services/AwardService.php');
require_once('services/PropertyChgService.php');
require_once('services/LogService.php');
use models\BattleSettlement;
use models\Chip;
use models\FragmentRecord;
use models\HashRateTask;
use models\Nft;
use models\NftActive;
use models\GlobalData;
use models\RankBattle;
use models\User;
use mt;
@ -58,13 +42,7 @@ use phpcommon\SqlHelper;
use models\Season;
use models\Battle;
use models\HashRateBattleData;
use models\Bag;
use models\Hero;
use models\Gun;
use models\RealtimeData;
use models\FragmentPool;
use models\BattleHistory;
use services\FormulaService;
use services\LogService;
class TameBattleDataService extends BaseService {
@ -119,8 +97,8 @@ class TameBattleDataService extends BaseService {
return false;
}
//记录算力系统有效行为
$this->_updateHashRateData();die;
//记录战斗有效行为
$this->_updateBattleData();
switch ($matchMode) {
//PVP模式
@ -170,7 +148,7 @@ class TameBattleDataService extends BaseService {
break;
case self::ROOM_MODE_MOBA :
{
$this->updateMobaData();
// $this->updateMobaData();
}
break;
default:
@ -1221,9 +1199,10 @@ class TameBattleDataService extends BaseService {
$battleData[$key] = max(getXVal($battleData, $key, 0), $val);
}
private function _updateHashRateData(){
error_log("_addHashRateTask");
private function _updateBattleData(){
error_log("_updateBattleData");
$hisBattleData = HashRateBattleData::getMyBattleData();
$serverTaskData = GlobalData::getServerTaskData();
//算力系统任务统计
$currentHashRate= \mt\AchievementsCycle::getCurrentPeriod();
@ -1248,17 +1227,17 @@ class TameBattleDataService extends BaseService {
//服务器大事件任务统计
$server_task_state = myself()->_getV(TN_SERVER_TASK_STATE,0);
$currentServerTask = mt\ServerTaskTime::getCurrentTime();
if (!isset($hisBattleData['server_task_data'])) {
$hisBattleData['server_task_data'] = array(
if (!isset($serverTaskData['data'])) {
$serverTaskData['data'] = array(
'pvpData' => array(),
'mobaData' => array(),
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime()
);
}
if ($currentServerTask && myself()->_getDaySeconds($hisBattleData['server_task_data']['modifytime']) <
if ($currentServerTask && myself()->_getDaySeconds($serverTaskData['data']['modifytime']) <
myself()->_getDaySeconds(strtotime($currentServerTask['obtain_start_time']))) {
$hisBattleData['server_task_data'] = array(
$serverTaskData['data'] = array(
'pvpData' => array(),
'mobaData' => array(),
'createtime' => $hisBattleData['server_task_data']['createtime'],
@ -1297,8 +1276,8 @@ class TameBattleDataService extends BaseService {
if (! $server_task_state &&
myself()->_getNowTime() > strtotime($currentServerTask['obtain_start_time']) &&
myself()->_getNowTime() < strtotime($currentServerTask['obtain_end_time'])) {
$this->applyEx($hisBattleData['server_task_data']['pvpData']);
$hisBattleData['server_task_data']['modifytime'] = myself()->_getNowTime();
$this->applyEx($serverTaskData['data']['pvpData']);
$serverTaskData['data']['modifytime'] = myself()->_getNowTime();
}
}
@ -1311,8 +1290,8 @@ class TameBattleDataService extends BaseService {
if (! $server_task_state &&
myself()->_getNowTime() > strtotime($currentServerTask['obtain_start_time']) &&
myself()->_getNowTime() < strtotime($currentServerTask['obtain_end_time'])) {
$this->applyEx($hisBattleData['server_task_data']['mobaData']);
$hisBattleData['server_task_data']['modifytime'] = myself()->_getNowTime();
$this->applyEx($serverTaskData['data']['mobaData']);
$serverTaskData['data']['modifytime'] = myself()->_getNowTime();
}
}
@ -1323,7 +1302,7 @@ class TameBattleDataService extends BaseService {
break;
}
HashRateBattleData::add(json_encode($hisBattleData));
GlobalData::addServerTaskData($serverTaskData);
}
private function applyEx(&$battleData)