- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/comments/viewed/group.php
- Класс: BitrixTasksCommentsViewedGroup
- Вызов: Group::markAsRead
public function markAsRead( ?int $groupId, ?string $role, string $type): Result
{
$result = new Result();
$action = $this->resolveAction($groupId, $role, $type);
$r = $this->prepareByAction($action, ['groupId' => $groupId, 'role' => $role]);
if ($r->isSuccess())
{
[$groupCondition, $userJoin, $select] = $r->getData();
}
else
{
$result->addErrors($r->getErrors());
return $result;
}
$listGroup = ViewedTable::getListForReadAll($this->userId, $userJoin, $groupCondition, $select);
$list = $this->collapse($listGroup);
$items = $this->fillByAction($action, $list);
$typeName = $type == Enum::SCRUM_NAME ? Enum::PROJECT_NAME : $type;
foreach ($items as $item)
{
// TODO: replace to batchInert
ViewedGroupTable::upsert([
'USER_ID' => $item['USER_ID'],
'GROUP_ID' => $item['GROUP_ID'],
'MEMBER_TYPE' => $item['MEMBER_TYPE'],
'VIEWED_DATE' => new DateTime(),
'TYPE_ID' => Enum::resolveIdByName($typeName)
]);
}
return $result;
}