forked from SimplesIP/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.4 KiB
54 lines
1.4 KiB
2 years ago
|
<?php
|
||
|
|
||
|
namespace app\Controllers;
|
||
|
|
||
|
use app\Core\Controller;
|
||
|
use app\Models\Queue;
|
||
|
use app\Models\EventQueue;
|
||
|
use app\Models\SupervisorQueue;
|
||
|
|
||
|
use Exception;
|
||
|
|
||
|
/**
|
||
|
* Description of SupervisorController
|
||
|
*
|
||
|
* @author root
|
||
|
*/
|
||
|
class SupervisorQueueController extends Controller
|
||
|
{
|
||
|
|
||
|
private $queue;
|
||
|
private $eventqueue;
|
||
|
private $supervisorqueue;
|
||
|
|
||
|
public function __construct()
|
||
|
{
|
||
|
$this->queue = new Queue();
|
||
|
$this->eventqueue = new EventQueue();
|
||
|
$this->supervisorqueue = new SupervisorQueue();
|
||
|
}
|
||
|
public function calcTimeAwait()
|
||
|
{
|
||
|
try {
|
||
|
$this->supervisorqueue->begin();
|
||
|
$queue = $this->queue->findAllQueue();
|
||
|
foreach ($queue as $q) {
|
||
|
$timewait = 0;
|
||
|
$count = 0;
|
||
|
$waits = $this->eventqueue->findAllEventByAwait($q->nome);
|
||
|
foreach ($waits as $w) {
|
||
|
$timewait += time() - $w->uid1;
|
||
|
$count++;
|
||
|
}
|
||
|
$this->supervisorqueue->updateEsperaByQueue($q->nome, $timewait, $count);
|
||
|
}
|
||
|
$this->supervisorqueue->commit();
|
||
|
return true;
|
||
|
} catch (Exception $ex) {
|
||
|
$this->supervisorqueue->rollback();
|
||
|
logger()->error($ex->getMessage());
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
}
|