✏️ 正在编辑: CallcenterOperador.php
路径:
/srv/systems_dir/yuppiecred/application/models/CallcenterOperador.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Model_CallcenterOperador extends Model_Usuario { public function getCampanhasAlocadas($operadorId) { if(!$operadorId) { return null; } $dbtable = new Model_DbTable_CallcenterCampanhaOperador(); $select = $dbtable->getAdapter()->select() ->from(array('operadores_campanhas' => 'tb_callcenter_campanha_operadores'), array('operador_id', 'campanha_id')) ->joinInner(array('campanhas' => 'tb_callcenter_campanhas'), 'operadores_campanhas.campanha_id = campanhas.id', array('nome', 'data_inicial', 'data_final', 'situacao', 'descricao')) ->where('campanhas.excluido <> 1') ->where('operadores_campanhas.excluido <> 1') ->where('campanhas.situacao = ?', 'LIBERADA') ->where('operadores_campanhas.operador_id = ?', $operadorId) ->where('CURDATE() >= data_inicial AND (CURDATE() <= data_final or data_final is null)') ->group(array('operadores_campanhas.id')) ->order('campanhas.nome ASC'); return $dbtable->getAdapter()->fetchAll($select); } /** * @param null $fields * @param string|string[] $order * @param bool|null $ativos * @return array */ public function listar( $fields = null, $order = ["grupo ASC", "login ASC" ], ?bool $ativos = false ) { $params = array(); $where = null; if( Yuppie_Auth::getIdentity()->grupo == "Corretor" ){ $dbtable = new Model_DbTable_GrupoUsuario(); $fields['grupos'] = $dbtable->exibirGruposCorretor(); $params[] = "parent_corretor = " . Yuppie_Auth::getIdentity()->id; } if( isset($fields['empresa_id']) && !empty($fields['empresa_id']) ){ $params[] = "usuarios.empresa_id = " . $fields['empresa_id']; } if( isset($fields['corretor_id']) && !empty($fields['corretor_id']) ){ $params[] = "corretor_id = " . $fields['corretor_id']; } if( isset($fields['grupo_id']) && !empty($fields['grupo_id']) ){ $params[] = "usuarios.grupo_id = " . $fields['grupo_id']; } if( isset($fields['grupo']) && !empty($fields['grupo']) ){ $params[] = "usuarios.grupo = '" . $fields['grupo'] . "'"; } if( isset($fields['login']) && !empty($fields['login']) ){ $params[] = "usuarios.login LIKE '%" . $fields['login'] . "%'"; } if( !empty($fields['assuntos_chamado']) ){ $params[] = "usuarios.assuntos_chamado LIKE '%" . $fields['assuntos_chamado'] . "%'"; } if( isset($fields['grupos']) && !empty($fields['grupos']) ){ $grupos = implode(", ", $fields['grupos']); if( count($grupos) > 0 ) $params[] = '(usuarios.grupo_id IN (' . $grupos . '))'; } if (!empty($fields['campanha_id'])) { $params[] = "(campanha_op.campanha_id = " . $fields['campanha_id'] . ")"; } if ($ativos) { $params[] = 'usuarios.desativado <> 1'; } if( count($params) > 0 ){ $where = implode(' AND ', $params); } $dbtable = new Model_DbTable_Usuario(); return $dbtable->fetchOperadores($where, $order); } public static function deslogarDiscador($pausa) { if (!$class = Core_Discador_Factory::load()) return []; $dbtable = new Model_DbTable_Usuario(); $usuario = $dbtable->fetchRow(['id = ?' => Yuppie_Auth::getIdentity()->id])->toArray(); $retornoSonax = $class->atendenteLogout($usuario['discador_id']); if ($retornoSonax == "1") { $operador = Yuppie_Auth::getIdentity()->nome; $dbPausaOperador = new Model_DbTable_CallcenterPausaOperador(); $acaoYuppie = $pausa['pausa_yuppie'] == 1 ? 'pausar' : 'play'; $pausaAtual = $dbPausaOperador->fetchRow(['operador = ?' => $operador], ['id DESC']); (new Model_DbTable_Usuario)->update([ 'ramal_status' => $pausa['id'] ], ['id = ?' => Yuppie_Auth::getIdentity()->id]); if ($pausaAtual->acao != $acaoYuppie) { $acao = new Model_CallcenterPausaOperador([ 'acao' => $pausa['pausa_yuppie'] == 1 ? 'pausar' : 'play', 'motivo_acao' => $pausa['descricao'], 'operador' => Yuppie_Auth::getIdentity()->nome, 'data_hora_acao' => date('Y-m-d H:i:s', time()) ]); $acao->salvar($acao); } } return $retornoSonax; } public function alocarDesalocarOperadoresCampanhas(int $opcao, array $campanhas, int $operadorId) { $acao = $opcao == 1 ? 'insert' : 'deletar'; $campanhaOperador = new Model_DbTable_CallcenterCampanhaOperador(); try { foreach ($campanhas as $campanha) { $campanhaOperador->$acao([ 'campanha_id' => $campanha, 'operador_id' => $operadorId ]); } } catch (Exception $e) { return false; } return true; } }
💾 保存文件
← 返回文件管理器