- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/task/viewedgroup.php
- Класс: BitrixTasksInternalsTaskViewedGroupTable
- Вызов: ViewedGroupTable::upsert
static function upsert(array $data): void
{
$now = new DateTime();
$typeId = (int)($data['TYPE_ID']) ? (int)$data['TYPE_ID'] : Enum::UNDEFINED;
$userId = isset($data['USER_ID']) ? (int)$data['USER_ID'] : 0;
$groupId = isset($data['GROUP_ID']) ? (int)$data['GROUP_ID'] : 0;
$memberType = in_array($data['MEMBER_TYPE'], MemberTable::possibleTypes()) ? $data['MEMBER_TYPE']: Group::MEMBER_TYPE_UNDEFINED;
$insertFields = [
'TYPE_ID' => $typeId,
'USER_ID' => $userId,
'GROUP_ID' => $groupId,
'VIEWED_DATE' => $now,
'MEMBER_TYPE' => $memberType,
];
$updateFields = [
'VIEWED_DATE' => $now,
];
$connection = MainApplication::getConnection();
$queries = $connection->getSqlHelper()->prepareMerge(
static::getTableName(),
[
'MEMBER_TYPE',
'USER_ID',
'GROUP_ID',
'TYPE_ID'
],
$insertFields,
$updateFields
);
foreach($queries as $query)
{
$connection->queryExecute($query);
}
}