170 lines
4.9 KiB
PHP
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";
|
|
|
|
}
|