- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/queue/all.php
- Класс: BitrixImOpenLinesQueueAll
- Вызов: All::getOperatorsQueue
public function getOperatorsQueue($currentOperator = 0): array
{
$queueTime = $this->getQueueTime();
$result = [
'RESULT' => false,
'OPERATOR_ID' => 0,
'OPERATOR_LIST' => [],
'DATE_QUEUE' => (new DateTime())->add($queueTime . ' SECONDS'),
'QUEUE_HISTORY' => [],
];
$operatorList = [];
$queueHistory = [];
$fullCountOperators = 0;
$res = ImOpenLinesQueue::getList([
'select' => [
'ID',
'USER_ID'
],
'filter' => [
'=CONFIG_ID' => $this->config['ID']
],
'order' => [
'SORT' => 'ASC',
'ID' => 'ASC'
],
]);
while($queueUser = $res->fetch())
{
$fullCountOperators++;
if($this->isOperatorAvailable($queueUser['USER_ID'], $currentOperator))
{
$operatorList[] = $queueUser['USER_ID'];
$queueHistory[$queueUser['USER_ID']] = true;
}
}
$this->processingEmptyQueue($this->config['ID'], $fullCountOperators);
if(!empty($operatorList))
{
$result = [
'RESULT' => true,
'OPERATOR_ID' => 0,
'OPERATOR_LIST' => $operatorList,
'DATE_QUEUE' => (new DateTime())->add($queueTime . ' SECONDS'),
'QUEUE_HISTORY' => $queueHistory,
];
}
return $result;
}