public function cromSolar($id, $caso = null)
 {
     $adapter = $this->tableGateway->getAdapter();
     $sql = new Sql($adapter);
     $selecttot = $sql->select()->from('ta_plato')->join(array('c' => 'ta_comentario'), 'c.ta_plato_in_id=ta_plato.in_id', array('cantidad' => new \Zend\Db\Sql\Expression('COUNT(c.in_id)')), 'left')->join('ta_tipo_plato', 'ta_plato.ta_tipo_plato_in_id=ta_tipo_plato.in_id ', array('tipo_plato_nombre' => 'va_nombre'), 'left')->join(array('pl' => 'ta_plato_has_ta_local'), 'pl.Ta_plato_in_id = ta_plato.in_id', array(), 'left')->join(array('tl' => 'ta_local'), 'tl.in_id = pl.Ta_local_in_id', array('latitud' => 'de_latitud', 'longitud' => 'de_longitud', 'direccion' => 'va_direccion', 'telefono' => 'va_telefono'), 'left')->join(array('tr' => 'ta_restaurante'), 'tr.in_id = tl.ta_restaurante_in_id', array('restaurant_nombre' => 'va_nombre', 'restaurant_estado' => 'en_estado'), 'left')->join(array('tc' => 'ta_tipo_comida'), 'tc.in_id = tr.Ta_tipo_comida_in_id', array('nombre_tipo_comida' => 'va_nombre_tipo'), 'left')->join(array('tu' => 'ta_ubigeo'), 'tu.in_id = tl.ta_ubigeo_in_id', array('distrito' => 'ch_distrito', 'departamento' => 'ch_departamento'), 'left')->where(array('ta_plato.in_id' => $id));
     $selecttot->group('ta_plato.in_id');
     $selectString = $sql->getSqlStringForSqlObject($selecttot);
     $results = $adapter->query($selectString, $adapter::QUERY_MODE_EXECUTE);
     $plato = $results->toArray();
     $selectto = $sql->select()->from('ta_plato')->join(array('tpt' => 'ta_plato_has_ta_tag'), 'tpt.Ta_plato_in_id = ta_plato.in_id', array('tag_id' => 'ta_tag_in_id'), 'left')->join(array('tt' => 'ta_tag'), 'tt.in_id =tpt.ta_tag_in_id', array('tag' => 'va_nombre'), 'left')->where(array('ta_plato.in_id' => $id));
     $selectStrin = $sql->getSqlStringForSqlObject($selectto);
     $result = $adapter->query($selectStrin, $adapter::QUERY_MODE_EXECUTE);
     $tag = $result->toArray();
     $solr = \Classes\Solr::getInstance()->getSolr();
     if ($solr->ping()) {
         if ($caso !== 1) {
             $solr->deleteByQuery('id:' . $id);
         }
         $document = new \Apache_Solr_Document();
         $document->id = $id;
         $document->name = $plato[0]['va_nombre'];
         $document->tx_descripcion = $plato[0]['tx_descripcion'];
         $document->va_precio = $plato[0]['va_precio'];
         $document->en_estado = $plato[0]['en_estado'];
         $document->plato_tipo = $plato[0]['tipo_plato_nombre'];
         $document->va_direccion = $plato[0]['direccion'];
         $document->restaurante = $plato[0]['restaurant_nombre'];
         $document->tipo_comida = $plato[0]['nombre_tipo_comida'];
         $document->en_destaque = $plato[0]['en_destaque'];
         $document->va_telefono = $plato[0]['telefono'];
         $document->latitud = $plato[0]['latitud'];
         $document->longitud = $plato[0]['longitud'];
         $document->departamento = $plato[0]['departamento'];
         foreach ($tag as $resultado) {
             $document->setMultiValue('tag', $resultado['tag']);
         }
         $document->distrito = $plato[0]['distrito'];
         $document->va_imagen = $plato[0]['va_imagen'];
         $document->comentarios = $plato[0]['cantidad'];
         $document->restaurant_estado = $plato[0]['restaurant_estado'];
         $document->puntuacion = $plato[0]['Ta_puntaje_in_id'];
         $solr->addDocument($document);
         $solr->commit();
     }
 }
 public function eliminarsolarAction()
 {
     $solr = \Classes\Solr::getInstance()->getSolr();
     if ($solr->ping()) {
         $solr->deleteByQuery('*:*');
         $solr->commit();
         $solr->optimize();
         echo 'cron finalizado eliminar';
         exit;
     }
 }
 public function jsonmapasaAction()
 {
     $distrit = $this->params()->fromQuery('distrito');
     $view = new viewModel();
     $view->setTerminal(true);
     $valor1 = explode(',', $distrit);
     $distrito = $valor1[0];
     $texto = $this->params()->fromQuery('q');
     setcookie('distrito', $distrito);
     $valor = explode(" ", $texto);
     if ($valor[0] == 'restaurante:') {
         $buscar = $valor[1] . ' ' . $valor[2] . ' ' . $valor[3] . ' ' . $valor[4];
         $plato = $valor[0] . '"' . $buscar . '"';
     } elseif ($valor[0] == 'tag:') {
         $buscar = $valor[1] . ' ' . $valor[2] . ' ' . $valor[3];
         $plato = $valor[0] . '"' . $buscar . '"';
     } elseif ($valor[0] == 'name:') {
         $buscar = $valor[1] . ' ' . $valor[2] . ' ' . $valor[3] . ' ' . $valor[4];
         $plato = $valor[0] . '"' . $buscar . '"';
     } else {
         $filter = new \Zend\I18n\Filter\Alnum(true);
         $plato = $filter->filter($texto);
         setcookie('q', $texto);
     }
     if ($distrito and $distrito != 'LIMA') {
         $distrit = '"' . $distrito . '"';
         $resultados = false;
         $palabraBuscar = isset($plato) ? $plato : false;
         $list = 1000;
         $fd = array('fq' => 'en_estado:activo AND restaurant_estado:activo AND distrito:' . strtoupper($distrito), 'fl' => 'id,latitud,longitud,tx_descripcion,va_imagen,restaurante_estado,restaurante,name,plato_tipo,distrito', 'wt' => 'json');
         if ($palabraBuscar) {
             $solar = \Classes\Solr::getInstance()->getSolr();
             if (get_magic_quotes_gpc() == 1) {
                 $palabraBuscar = stripslashes($palabraBuscar);
             }
             try {
                 $resultados = $solar->search($palabraBuscar, 0, $list, $fd);
             } catch (Exception $e) {
                 die("<html><head><title>SEARCH EXCEPTION</title><body><pre>{$e->__toString()}</pre></body></html>");
             }
         }
     } elseif ($distrito == 'LIMA') {
         $limite = 1000;
         $resultados = false;
         $palabraBuscar = isset($plato) ? $plato : false;
         $fd = array('fq' => 'en_estado:activo AND restaurant_estado:activo AND departamento:' . strtoupper($distrito), 'fl' => 'id,latitud,longitud,tx_descripcion,va_imagen,restaurante_estado,restaurante,name,plato_tipo,distrito', 'wt' => 'json');
         if ($palabraBuscar) {
             $solar = \Classes\Solr::getInstance()->getSolr();
             if (get_magic_quotes_gpc() == 1) {
                 $palabraBuscar = stripslashes($palabraBuscar);
             }
             try {
                 $resultados = $solar->search($palabraBuscar, 0, $limite, $fd);
                 // var_dump($resultados);exit;
             } catch (Exception $e) {
                 $this->redirect()->toUrl('/');
             }
         }
     } else {
         $limite = 1000;
         // $distrito= '"LIMA"';
         $resultados = false;
         $palabraBuscar = isset($plato) ? $plato : false;
         $fd = array('fq' => 'en_estado:activo AND restaurant_estado:activo ', 'fl' => 'id,latitud,longitud,tx_descripcion,va_imagen,restaurante_estado,restaurante,name,plato_tipo,distrito', 'wt' => 'json');
         if ($palabraBuscar) {
             $solar = \Classes\Solr::getInstance()->getSolr();
             if (get_magic_quotes_gpc() == 1) {
                 $palabraBuscar = stripslashes($palabraBuscar);
             }
             try {
                 $resultados = $solar->search($palabraBuscar, 0, $limite, $fd);
                 // var_dump($resultados);exit;
             } catch (Exception $e) {
                 $this->redirect()->toUrl('/');
             }
         }
     }
     echo $resultados->getRawResponse();
     exit;
 }
Beispiel #4
0
 public function eliminaprevia2($id)
 {
     $solr = \Classes\Solr::getInstance()->getSolr();
     if ($solr->ping()) {
         $solr->deleteByQuery('id:' . $id);
     }
     $solr->commit();
     $solr->optimize();
 }