- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/integration/tasks/task.php
- Класс: BitrixSocialnetworkIntegrationTasksTask
- Вызов: Task::updateUserCounter
static function updateUserCounter(array $params = []): void
{
$logId = (int)($params['logId'] ?? 0);
$userId = (int)($params['userId'] ?? 0);
$siteId = SITE_ID;
if (
$logId <= 0
|| $userId <= 0
)
{
return;
}
UserCounterTable::delete([
'USER_ID' => $userId,
'SITE_ID' => SITE_ID,
'CODE' => '**L' . $logId,
]);
$query = new BitrixMainEntityQuery(UserCounterTable::getEntity());
$query->addFilter('=USER_ID', $userId);
$query->addFilter('=SITE_ID', $siteId);
$query->addSelect('CODE');
$query->registerRuntimeField(
'comment',
new BitrixMainEntityReferenceField('LC',
LogCommentTable::getEntity(),
[
'=ref.LOG_ID' => new SqlExpression('?i', $logId),
],
[ 'join_type' => 'INNER' ]
)
);
$query->whereExpr("%s = CONCAT('**LC', %s)", [ 'CODE', 'comment.ID' ]);
$res = $query->exec();
while ($counterFields = $res->fetch())
{
UserCounterTable::delete([
'USER_ID' => $userId,
'SITE_ID' => $siteId,
'CODE' => $counterFields['CODE'],
]);
}
// to send pushes only
UserCounterTable::update([
'USER_ID' => $userId,
'SITE_ID' => $siteId,
'CODE' => '**',
], [
'SENT' => 0,
]);
}