1
This commit is contained in:
parent
c26641207d
commit
5b4dfb8bef
@ -465,42 +465,42 @@ class BaseAuthedController extends BaseController {
|
||||
|
||||
public function _getDailyV($x, $y, $defVal = 0)
|
||||
{
|
||||
return DynData::getV($x, $y, $defVal);
|
||||
return DynData::getDailyV($x, $y, $defVal);
|
||||
}
|
||||
|
||||
public function _setDailyV($x, $y, $val)
|
||||
{
|
||||
DynData::setV($x, $y, $val);
|
||||
DynData::setDailyV($x, $y, $val);
|
||||
}
|
||||
|
||||
public function _incDailyV($x, $y, $incVal)
|
||||
{
|
||||
DynData::incV($x, $y, $incVal);
|
||||
DynData::incDailyV($x, $y, $incVal);
|
||||
}
|
||||
|
||||
public function _decDailyV($x, $y, $decVal)
|
||||
{
|
||||
DynData::decV($x, $y, $decVal);
|
||||
DynData::decDailyV($x, $y, $decVal);
|
||||
}
|
||||
|
||||
public function _getWeeklyV($x, $y, $defVal = 0)
|
||||
{
|
||||
return DynData::getV($x, $y, $defVal);
|
||||
return DynData::getWeeklyV($x, $y, $defVal);
|
||||
}
|
||||
|
||||
public function _setWeeklyV($x, $y, $val)
|
||||
{
|
||||
DynData::setV($x, $y, $val);
|
||||
DynData::setWeeklyV($x, $y, $val);
|
||||
}
|
||||
|
||||
public function _incWeeklyV($x, $y, $incVal)
|
||||
{
|
||||
DynData::incV($x, $y, $incVal);
|
||||
DynData::incWeeklyV($x, $y, $incVal);
|
||||
}
|
||||
|
||||
public function _decWeeklyV($x, $y, $decVal)
|
||||
{
|
||||
DynData::decV($x, $y, $decVal);
|
||||
DynData::decWeeklyV($x, $y, $decVal);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -30,47 +30,8 @@ class DynData extends BaseModel {
|
||||
|
||||
public static function getV($x, $y, $defVal = 0)
|
||||
{
|
||||
$key = self::calcKey($x, $y);
|
||||
if (self::$dynData) {
|
||||
if (isset($dynData[$key])) {
|
||||
return getXVal(self::$dynData[$key], 'val', $defVal);
|
||||
} else {
|
||||
return $defVal;
|
||||
}
|
||||
} else {
|
||||
++self::$hitCount;
|
||||
if (self::$hitCount > 5 && is_null(self::$dynData)) {
|
||||
self::preload();
|
||||
return self::getV($x, $y, $defVal);
|
||||
} else {
|
||||
$row = SqlHelper::ormSelectOne(
|
||||
myself()->_getSelfMysql(),
|
||||
't_dyndata',
|
||||
array(
|
||||
'account_id' => myself()->_getAccountId(),
|
||||
'x' => $x,
|
||||
'y' => $y,
|
||||
)
|
||||
);
|
||||
return $row ? $row['val'] : $defVal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static function getDailyV($x, $y, $defVal = 0)
|
||||
{
|
||||
}
|
||||
|
||||
public function _setDailyV($x, $y, $val)
|
||||
{
|
||||
}
|
||||
|
||||
public function _incDailyV($x, $y, $incVal)
|
||||
{
|
||||
}
|
||||
|
||||
public function _decDailyV($x, $y, $decVal)
|
||||
{
|
||||
$valData = self::internalGetV($x, $y, $defVal);
|
||||
return $valData['val'];
|
||||
}
|
||||
|
||||
public static function setV($x, $y, $defVal)
|
||||
@ -91,6 +52,58 @@ class DynData extends BaseModel {
|
||||
self::incV($x, $y, 0 - $val);
|
||||
}
|
||||
|
||||
public static function getDailyV($x, $y, $defVal = 0)
|
||||
{
|
||||
$valData = self::internalGetV($x, $y, $defVal);
|
||||
if (myself()->_getDaySeconds($valData['modifytime']) < myself()->_getNowDaySeconds()) {
|
||||
$valData['val'] = $defVal;
|
||||
}
|
||||
return $valData['val'];
|
||||
}
|
||||
|
||||
public static function setDailyV($x, $y, $val)
|
||||
{
|
||||
self::setV($x, $y, $val);
|
||||
}
|
||||
|
||||
public static function incDailyV($x, $y, $Val)
|
||||
{
|
||||
$key = self::calcKey($x, $y);
|
||||
$oldVal = self::getDailyV($x, $y);
|
||||
self::internalSetV($x, $y, $oldVal + $val);
|
||||
}
|
||||
|
||||
public static function decDailyV($x, $y, $Val)
|
||||
{
|
||||
self::incDailyV($x, $y, 0 - $val);
|
||||
}
|
||||
|
||||
public static function getWeeklyV($x, $y, $defVal = 0)
|
||||
{
|
||||
$valData = self::internalGetV($x, $y, $defVal);
|
||||
if (myself()->_getDaySeconds($valData['modifytime']) < myself()->_getMondaySeconds()) {
|
||||
$valData['val'] = $defVal;
|
||||
}
|
||||
return $valData['val'];
|
||||
}
|
||||
|
||||
public static function setWeeklyV($x, $y, $val)
|
||||
{
|
||||
self::setV($x, $y, $val);
|
||||
}
|
||||
|
||||
public static function incWeeklyV($x, $y, $Val)
|
||||
{
|
||||
$key = self::calcKey($x, $y);
|
||||
$oldVal = self::getWeeklyV($x, $y);
|
||||
self::internalSetV($x, $y, $oldVal + $val);
|
||||
}
|
||||
|
||||
public static function decWeeklyV($x, $y, $Val)
|
||||
{
|
||||
self::incWeeklyV($x, $y, 0 - $val);
|
||||
}
|
||||
|
||||
public static function calcKey($x, $y)
|
||||
{
|
||||
$low32 = (int)$x;
|
||||
@ -143,6 +156,41 @@ class DynData extends BaseModel {
|
||||
}
|
||||
}
|
||||
|
||||
private static function internalGetV($x, $y, $defVal = 0)
|
||||
{
|
||||
$key = self::calcKey($x, $y);
|
||||
if (self::$dynData) {
|
||||
if (isset($dynData[$key])) {
|
||||
return $dynData[$key];
|
||||
} else {
|
||||
return array(
|
||||
'val' => $defVal,
|
||||
'modifytime' => $this->_getNowTime()
|
||||
);
|
||||
}
|
||||
} else {
|
||||
++self::$hitCount;
|
||||
if (self::$hitCount > 5 && is_null(self::$dynData)) {
|
||||
self::preload();
|
||||
return self::getV($x, $y, $defVal);
|
||||
} else {
|
||||
$row = SqlHelper::ormSelectOne(
|
||||
myself()->_getSelfMysql(),
|
||||
't_dyndata',
|
||||
array(
|
||||
'account_id' => myself()->_getAccountId(),
|
||||
'x' => $x,
|
||||
'y' => $y,
|
||||
)
|
||||
);
|
||||
return array(
|
||||
'val' => $row ? $row['val'] : $defVal,
|
||||
'modifytime' => $row ? $row['modifytime'] : myself()->_getNowTime(),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static $dynData = null;
|
||||
private static $hitCount = 0;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user