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.
53 lines
1.4 KiB
53 lines
1.4 KiB
<?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; |
|
} |
|
}
|
|
|