game2006api/webapp/models/RealtimeData.php
hujiabin 87a0e2134e 1
2024-08-17 17:34:32 +08:00

170 lines
4.9 KiB
PHP

<?php
namespace models;
use mt;
use phpcommon\SqlHelper;
class RealtimeData extends BaseModel {
private static $onlineNum = null;
private static $serverDays = null;
//获取在线人数
public static function getOnline()
{
if (is_null(self::$onlineNum)){
$db = self::internalGet('online_num');
self::$onlineNum = max(1, $db ? $db['value1']: 0);
}
return self::$onlineNum;
}
//获取服务器自然天数
public static function getServerDays()
{
if (is_null(self::$serverDays)){
$row = self::internalGet('open_service_time');
if ($row) {
$nowDaySeconds = myself()->_getNowDaySeconds();
$openDaySeconds = myself()->_getDaySeconds($row['value1']);
$passDays = ($nowDaySeconds - $openDaySeconds) / 3600 / 24;
self::$serverDays = 1 + max($passDays, 0);
} else {
self::$serverDays = 1;
}
}
return self::$serverDays;
}
//获取成长任务的赛季
public static function getMissionSeason(){
$db = self::internalGet('star_mission_season');
return max(1, $db ? $db['value1']: 0);
}
//设置成长任务的赛季
public static function setMissionSeason($value){
SqlHelper::upsert
(myself()->_getMysql(''),
't_realtime_data',
array(
'name' => 'star_mission_season'
),
array(
'value1' => $value,
'modifytime' => myself()->_getNowTime()
),
array(
'name' => 'star_mission_season',
'value1' => $value,
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime()
)
);
}
//获取通行证的赛季
public static function getPassSeason(){
$db = self::internalGet('battle_pass_season');
return max(1, $db ? $db['value1']: 0);
}
//设置通行证的赛季
public static function setPassSeason($value){
SqlHelper::upsert
(myself()->_getMysql(''),
't_realtime_data',
array(
'name' => 'battle_pass_season'
),
array(
'value1' => $value,
'modifytime' => myself()->_getNowTime()
),
array(
'name' => 'battle_pass_season',
'value1' => $value,
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime()
)
);
}
//获取排位的赛季
public static function getRankSeason(){
$db = self::internalGet('ranking_season');
return max(0, $db ? $db['value1']: 0);
}
//设置排位的赛季
public static function setRankSeason($value){
SqlHelper::upsert
(myself()->_getMysql(''),
't_realtime_data',
array(
'name' => 'ranking_season'
),
array(
'value1' => $value,
'modifytime' => myself()->_getNowTime()
),
array(
'name' => 'ranking_season',
'value1' => $value,
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime()
)
);
}
private static function internalGet($name)
{
$row = SqlHelper::ormSelectOne
(myself()->_getMysql(''),
't_realtime_data',
array(
'name' => $name
)
);
return $row ? $row : '';
}
public static function getDailyCec($nameIndex)
{
$row = self::internalGet("daily_output_cec_".$nameIndex);
if (!$row){
return 0;
}
if (myself()->_getDaySeconds($row['modifytime']) < myself()->_getNowDaySeconds()) {
$row['value1'] = 0;
}
return $row['value1'];
}
public static function incDailyCec($nameIndex,$value){
$oldValue = self::getDailyCec($nameIndex);
self::internalSet('daily_output_cec_'.$nameIndex,$oldValue+$value);
}
private static function internalSet($name,$value){
SqlHelper::upsert
(myself()->_getMysql(''),
't_realtime_data',
array(
'name' => $name
),
array(
'value1' => $value,
'modifytime' => myself()->_getNowTime()
),
array(
'name' => $name,
'value1' => $value,
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime()
)
);
}
const CEC_NAME_INDEX1 = "normal";
const CEC_NAME_INDEX2 = "special";
}