1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
RecentChannel.php
См. документацию.
1<?php
2
3namespace Bitrix\Im\V2\Recent;
4
5use Bitrix\Im\Model\ChatTable;
6use Bitrix\Im\Model\EO_Chat_Collection;
7use Bitrix\Im\V2\Chat;
8
9class RecentChannel extends Recent
10{
11 public static function getOpenChannels(int $limit, ?int $lastMessageId = null): self
12 {
13 $recent = new static();
14 $chatEntities = static::getOrmEntities($limit, $lastMessageId);
15
16 foreach ($chatEntities as $entity)
17 {
18 $recentItem = new RecentItem();
19 $recentItem
20 ->setMessageId($entity->getLastMessageId())
21 ->setChatId($entity->getId())
22 ->setDialogId('chat' . $entity->getId())
23 ;
24 $recent[] = $recentItem;
25 }
26
27 return $recent;
28 }
29
30 protected static function getOrmEntities(int $limit, ?int $lastMessageId = null): EO_Chat_Collection
31 {
32 $query = ChatTable::query()
33 ->setSelect(['ID', 'LAST_MESSAGE_ID'])
34 ->where('TYPE', Chat::IM_TYPE_OPEN_CHANNEL)
35 ->setLimit($limit)
36 ->setOrder(['LAST_MESSAGE_ID' => 'DESC'])
37 ;
38
39 if (isset($lastMessageId))
40 {
41 $query->where('LAST_MESSAGE_ID', '<', $lastMessageId);
42 }
43
44 return $query->fetchCollection();
45 }
46}
static getOpenChannels(int $limit, ?int $lastMessageId=null)
Определения RecentChannel.php:11
static getOrmEntities(int $limit, ?int $lastMessageId=null)
Определения RecentChannel.php:30
$query
Определения get_search.php:11
$entity