• Модуль: statistic
  • Путь к файлу: ~/bitrix/modules/statistic/classes/mysql/statistic.php
  • Класс: CStatistics
  • Вызов: CStatistics::CleanUpEventDynamic
static function CleanUpEventDynamic()
{
	set_time_limit(0);
	ignore_user_abort(true);
	$err_mess = "File: ".__FILE__."
Line: "; $DB = CDatabase::GetModuleConnection('statistic'); $DAYS = intval(COption::GetOptionString("statistic", "EVENT_DYNAMIC_DAYS")); $EID = 0; if ($DAYS>=0) { $strSql = " SELECT ID, ifnull(DYNAMIC_KEEP_DAYS,'".$DAYS."') as DYNAMIC_KEEP_DAYS FROM b_stat_event "; $w = $DB->Query($strSql, false, $err_mess.__LINE__); while ($wr = $w->Fetch()) { $EDAYS = intval($wr["DYNAMIC_KEEP_DAYS"]); $EID = intval($wr["ID"]); $strSql = " SELECT ID, COUNTER, MONEY FROM b_stat_event_day WHERE EVENT_ID = ".$EID." AND DATE_STAT <= DATE_SUB(CURDATE(),INTERVAL ".$EDAYS." DAY) "; $z = $DB->Query($strSql, false, $err_mess.__LINE__); while ($zr=$z->Fetch()) { $ID = $zr["ID"]; if (intval($zr["COUNTER"])>0) { $arFields = Array( "DATE_CLEANUP" => $DB->GetNowFunction(), "COUNTER" => "COUNTER + ".intval($zr["COUNTER"]), "MONEY" => "MONEY + ".doubleval($zr["MONEY"]) ); $DB->Update("b_stat_event",$arFields,"WHERE ID='$EID'",$err_mess.__LINE__); } $strSql = "DELETE FROM b_stat_event_day WHERE ID='$ID'"; $DB->Query($strSql, false, $err_mess.__LINE__); } } if (intval($EID)>0 && COption::GetOptionString("statistic", "USE_AUTO_OPTIMIZE")=="Y") { $DB->Query("OPTIMIZE TABLE b_stat_event_day", false, $err_mess.__LINE__); } } }