|
@@ -3,10 +3,15 @@
|
|
|
namespace app\commands;
|
|
namespace app\commands;
|
|
|
|
|
|
|
|
use app\components\FirebaseHelper;
|
|
use app\components\FirebaseHelper;
|
|
|
|
|
+use v1\models\Dependencia;
|
|
|
use v1\models\Evento;
|
|
use v1\models\Evento;
|
|
|
|
|
+use v1\models\EventoAccion;
|
|
|
use v1\models\EventoGrupo;
|
|
use v1\models\EventoGrupo;
|
|
|
use v1\models\Grupo;
|
|
use v1\models\Grupo;
|
|
|
|
|
+use v1\models\Red;
|
|
|
|
|
+use v1\models\Resultado;
|
|
|
use v1\models\Usuario;
|
|
use v1\models\Usuario;
|
|
|
|
|
+use v1\models\UsuarioDependencia;
|
|
|
use v1\models\UsuarioGrupo;
|
|
use v1\models\UsuarioGrupo;
|
|
|
use yii\console\Controller;
|
|
use yii\console\Controller;
|
|
|
use yii\db\Expression;
|
|
use yii\db\Expression;
|
|
@@ -18,15 +23,24 @@ class EventoController extends Controller {
|
|
|
return $this->stdout($cadena."\n");
|
|
return $this->stdout($cadena."\n");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public function cambiarFecha($string) {
|
|
|
|
|
+ $formato = "D M d Y H:i:s P";
|
|
|
|
|
+ $fecha = \DateTime::createFromFormat($formato, $string);
|
|
|
|
|
+
|
|
|
|
|
+ return $fecha;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
public function actionSincronizar() {
|
|
public function actionSincronizar() {
|
|
|
$firebase = new FirebaseHelper();
|
|
$firebase = new FirebaseHelper();
|
|
|
$firestore = $firebase->firestore();
|
|
$firestore = $firebase->firestore();
|
|
|
|
|
|
|
|
$refGrupos = $firestore->collection("grupos");
|
|
$refGrupos = $firestore->collection("grupos");
|
|
|
$refUsuarios = $firestore->collection("usuarios");
|
|
$refUsuarios = $firestore->collection("usuarios");
|
|
|
|
|
+ $refDependencias = $firestore->collection("dependencias");
|
|
|
|
|
|
|
|
$grupos = [];
|
|
$grupos = [];
|
|
|
$usuarios = [];
|
|
$usuarios = [];
|
|
|
|
|
+ $dependencias = [];
|
|
|
|
|
|
|
|
foreach($refGrupos->documents() as $grupo) {
|
|
foreach($refGrupos->documents() as $grupo) {
|
|
|
$grupos[$grupo->id()] = $grupo->data();
|
|
$grupos[$grupo->id()] = $grupo->data();
|
|
@@ -35,11 +49,15 @@ class EventoController extends Controller {
|
|
|
foreach($refUsuarios->documents() as $usuario) {
|
|
foreach($refUsuarios->documents() as $usuario) {
|
|
|
$usuarios[$usuario->id()] = $usuario->data();
|
|
$usuarios[$usuario->id()] = $usuario->data();
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ foreach($refDependencias->documents() as $dependencia) {
|
|
|
|
|
+ $dependencias[$dependencia->id()] = $dependencia->data();
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
$ultimaFecha = null;
|
|
$ultimaFecha = null;
|
|
|
$limite = 1; // 1000;
|
|
$limite = 1; // 1000;
|
|
|
$continuar = true;
|
|
$continuar = true;
|
|
|
- // do {
|
|
|
|
|
|
|
+ do {
|
|
|
$this->stdout("Sincronizando ...");
|
|
$this->stdout("Sincronizando ...");
|
|
|
$ref = $firestore->collection("eventos")
|
|
$ref = $firestore->collection("eventos")
|
|
|
// ->where("sincronizado", "==", null)
|
|
// ->where("sincronizado", "==", null)
|
|
@@ -64,11 +82,15 @@ class EventoController extends Controller {
|
|
|
$modelo->nombre = $data["nombre"];
|
|
$modelo->nombre = $data["nombre"];
|
|
|
$modelo->descripcion = $data["descripcion"];
|
|
$modelo->descripcion = $data["descripcion"];
|
|
|
$modelo->ciudad = $data["ciudad"];
|
|
$modelo->ciudad = $data["ciudad"];
|
|
|
- $fechaInicio = \DateTime::createFromFormat('Y-m-d\TH:i:s.u\Z', $data["fechaInicio"]);
|
|
|
|
|
|
|
+ $creado = \DateTime::createFromFormat('Y-m-d\TH:i:s.u\Z', $data["timestamp"]);
|
|
|
|
|
+ if ($creado !== false) {
|
|
|
|
|
+ $modelo->creado = $creado->format(\DateTime::RFC3339_EXTENDED);
|
|
|
|
|
+ }
|
|
|
|
|
+ $fechaInicio = $this->cambiarFecha($data["fechaInicio"]);
|
|
|
if ($fechaInicio !== false) {
|
|
if ($fechaInicio !== false) {
|
|
|
$modelo->fechaInicio = $fechaInicio->format(\DateTime::RFC3339_EXTENDED);
|
|
$modelo->fechaInicio = $fechaInicio->format(\DateTime::RFC3339_EXTENDED);
|
|
|
}
|
|
}
|
|
|
- $fechaFinal = \DateTime::createFromFormat('Y-m-d\TH:i:s.u\Z', $data["fechaFinal"]);
|
|
|
|
|
|
|
+ $fechaFinal = $this->cambiarFecha($data["fechaFinal"]);
|
|
|
if ($fechaFinal !== false) {
|
|
if ($fechaFinal !== false) {
|
|
|
$modelo->fechaFinal = $fechaFinal->format(\DateTime::RFC3339_EXTENDED);
|
|
$modelo->fechaFinal = $fechaFinal->format(\DateTime::RFC3339_EXTENDED);
|
|
|
}
|
|
}
|
|
@@ -84,6 +106,50 @@ class EventoController extends Controller {
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ foreach($data["redes"] as $red) {
|
|
|
|
|
+ $eventoRed = Red::find()
|
|
|
|
|
+ ->andWhere([
|
|
|
|
|
+ "idEvento" => $modelo->id,
|
|
|
|
|
+ "url" => $red->url
|
|
|
|
|
+ ])
|
|
|
|
|
+ ->one();
|
|
|
|
|
+
|
|
|
|
|
+ if ($eventoRed === null) {
|
|
|
|
|
+ $eventoRed = new Red();
|
|
|
|
|
+
|
|
|
|
|
+ $eventoRed->idEvento = $modelo->id;
|
|
|
|
|
+ $eventoRed->key = $red->key;
|
|
|
|
|
+ $eventoRed->url = $red->url;
|
|
|
|
|
+ $eventoRed->redSocial = $red->redSocial;
|
|
|
|
|
+
|
|
|
|
|
+ if (!$eventoRed->save()) {
|
|
|
|
|
+ $this->stdoutln('Ocurrió un error al guardar una red. '.Json::encode($eventoRed->getFirstErrors()));
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ foreach ($data["accion"] as $accion) {
|
|
|
|
|
+ $eventoAccion = EventoAccion::find()
|
|
|
|
|
+ ->andWhere([
|
|
|
|
|
+ "idEvento" => $modelo->id,
|
|
|
|
|
+ "accion" => $accion
|
|
|
|
|
+ ])
|
|
|
|
|
+ ->one();
|
|
|
|
|
+
|
|
|
|
|
+ if ($eventoAccion === null) {
|
|
|
|
|
+ $eventoAccion = new EventoAccion();
|
|
|
|
|
+
|
|
|
|
|
+ $eventoAccion->idEvento = $modelo->id;
|
|
|
|
|
+ $eventoAccion->accion = $accion;
|
|
|
|
|
+
|
|
|
|
|
+ if (!$eventoAccion->save()) {
|
|
|
|
|
+ $this->stdoutln('Ocurrió un error al guardar un evento-accion. '.Json::encode($eventoAccion->getFirstErrors()));
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
foreach ($data["grupos"] as $grupoEvento) {
|
|
foreach ($data["grupos"] as $grupoEvento) {
|
|
|
$grupoModelo = Grupo::findOne(["firebaseId" => $grupoEvento]);
|
|
$grupoModelo = Grupo::findOne(["firebaseId" => $grupoEvento]);
|
|
|
if($grupoModelo === null && isset($grupos[$grupoEvento])) {
|
|
if($grupoModelo === null && isset($grupos[$grupoEvento])) {
|
|
@@ -99,25 +165,37 @@ class EventoController extends Controller {
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
if ($grupoModelo !== null) {
|
|
if ($grupoModelo !== null) {
|
|
|
- $eventoGrupo = new EventoGrupo();
|
|
|
|
|
-
|
|
|
|
|
- $eventoGrupo->idEvento = $modelo->id;
|
|
|
|
|
- $eventoGrupo->idGrupo = $grupoModelo->id;
|
|
|
|
|
-
|
|
|
|
|
- if(!$eventoGrupo->save()) {
|
|
|
|
|
- $this->stdoutln('Ocurrió un error al guardar un evento-grupo. '.Json::encode($eventoGrupo->getFirstErrors()));
|
|
|
|
|
|
|
+ $eventoGrupo = EventoGrupo::find()
|
|
|
|
|
+ ->andWhere([
|
|
|
|
|
+ "idEvento" => $modelo->id,
|
|
|
|
|
+ "idGrupo" => $grupoModelo->id
|
|
|
|
|
+ ])
|
|
|
|
|
+ ->one();
|
|
|
|
|
+
|
|
|
|
|
+ if ($eventoGrupo === null) {
|
|
|
|
|
+ $eventoGrupo = new EventoGrupo();
|
|
|
|
|
+
|
|
|
|
|
+ $eventoGrupo->idEvento = $modelo->id;
|
|
|
|
|
+ $eventoGrupo->idGrupo = $grupoModelo->id;
|
|
|
|
|
+
|
|
|
|
|
+ if(!$eventoGrupo->save()) {
|
|
|
|
|
+ $this->stdoutln('Ocurrió un error al guardar un evento-grupo. '.Json::encode($eventoGrupo->getFirstErrors()));
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
foreach ($data["usuarios"] as $usuarioEvento) {
|
|
foreach ($data["usuarios"] as $usuarioEvento) {
|
|
|
$usuarioModelo = Usuario::findOne(["uid" => $usuarioEvento["uid"]]);
|
|
$usuarioModelo = Usuario::findOne(["uid" => $usuarioEvento["uid"]]);
|
|
|
|
|
+ $usuarioRef = $usuarios[$usuarioEvento["uid"]];
|
|
|
|
|
+
|
|
|
|
|
+ // Usuarios
|
|
|
if ($usuarioModelo === null && isset($usuarios[$usuarioEvento["uid"]])) {
|
|
if ($usuarioModelo === null && isset($usuarios[$usuarioEvento["uid"]])) {
|
|
|
$usuarioModelo = new Usuario();
|
|
$usuarioModelo = new Usuario();
|
|
|
- $usuarioRef = $usuarios[$usuarioEvento["uid"]];
|
|
|
|
|
|
|
+ $usuarioModelo->uid = $usuarioRef["uid"];
|
|
|
$usuarioModelo->nombre = $usuarioRef["nombre"];
|
|
$usuarioModelo->nombre = $usuarioRef["nombre"];
|
|
|
- if (isset($usuarioRef["correo"])) {
|
|
|
|
|
- $usuarioModelo->email = $usuarioRef["correo"];
|
|
|
|
|
|
|
+ if (isset($usuarioRef["email"])) {
|
|
|
|
|
+ $usuarioModelo->email = $usuarioRef["email"];
|
|
|
}
|
|
}
|
|
|
$usuarioModelo->telefono = $usuarioRef["telefono"];
|
|
$usuarioModelo->telefono = $usuarioRef["telefono"];
|
|
|
$usuarioModelo->facebook = $usuarioRef["facebook"];
|
|
$usuarioModelo->facebook = $usuarioRef["facebook"];
|
|
@@ -141,25 +219,103 @@ class EventoController extends Controller {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if ($usuarioModelo !== null && isset($usuarios[$usuarioEvento["uid"]]) && isset($usuarios[$usuarioEvento["uid"]]["grupo"]) && isset($usuarios[$usuarioEvento["uid"]]["grupo"][0])) {
|
|
|
|
|
- $modelGrupo = Grupo::findOne(['firebaseId' => $usuarios[$usuarioEvento["uid"]]["grupo"][0]]);
|
|
|
|
|
-
|
|
|
|
|
|
|
+ // Grupos
|
|
|
|
|
+ if ($usuarioModelo !== null && isset($usuarioRef["grupos"]) && isset($usuarioRef["grupos"][0])) {
|
|
|
|
|
+ $modelGrupo = Grupo::findOne(['firebaseId' => $usuarioRef["grupos"][0]]);
|
|
|
$usuarioGrupo = UsuarioGrupo::find()
|
|
$usuarioGrupo = UsuarioGrupo::find()
|
|
|
- ->andWhere(["idUsuario" => $usuarioModelo->id])
|
|
|
|
|
- ->andWhere(["idGrupo" => $modelGrupo->id])
|
|
|
|
|
|
|
+ ->andWhere([
|
|
|
|
|
+ "idUsuario" => $usuarioModelo->id,
|
|
|
|
|
+ "idGrupo" => $modelGrupo->id
|
|
|
|
|
+ ])
|
|
|
->one();
|
|
->one();
|
|
|
|
|
|
|
|
if ($usuarioGrupo === null) {
|
|
if ($usuarioGrupo === null) {
|
|
|
$usuarioGrupo = new UsuarioGrupo();
|
|
$usuarioGrupo = new UsuarioGrupo();
|
|
|
|
|
|
|
|
$usuarioGrupo->idUsuario = $usuarioModelo->id;
|
|
$usuarioGrupo->idUsuario = $usuarioModelo->id;
|
|
|
- $usuarioGrupo->idGrupo = $usuarioGrupo->id;
|
|
|
|
|
|
|
+ $usuarioGrupo->idGrupo = $modelGrupo->id;
|
|
|
|
|
|
|
|
if(!$usuarioGrupo->save()) {
|
|
if(!$usuarioGrupo->save()) {
|
|
|
$this->stdoutln('Ocurrió un error al guardar un usuario-grupo. '.Json::encode($usuarioGrupo->getFirstErrors()));
|
|
$this->stdoutln('Ocurrió un error al guardar un usuario-grupo. '.Json::encode($usuarioGrupo->getFirstErrors()));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // Resultados
|
|
|
|
|
+ if ($usuarioModelo !== null && isset($data["resultado"])) {
|
|
|
|
|
+ $resultados = $data["resultado"];
|
|
|
|
|
+ for ($i = 0; $i < count($resultados); $i++) {
|
|
|
|
|
+ $res = count($resultados[$usuarioModelo->uid]);
|
|
|
|
|
+ if ($res > 0) {
|
|
|
|
|
+ foreach($resultados[$usuarioModelo->uid] as $acciones) {
|
|
|
|
|
+ if (isset($acciones) && isset($acciones[0])){
|
|
|
|
|
+ $resultadoModelo = Resultado::find()
|
|
|
|
|
+ ->andWhere([
|
|
|
|
|
+ "idUsuario" => $usuarioModelo->id,
|
|
|
|
|
+ "idEvento" => $modelo->id,
|
|
|
|
|
+ "accion" => $acciones
|
|
|
|
|
+ ])
|
|
|
|
|
+ ->one();
|
|
|
|
|
+
|
|
|
|
|
+ if ($resultadoModelo === null) {
|
|
|
|
|
+ $resultadoModelo = new Resultado();
|
|
|
|
|
+
|
|
|
|
|
+ $resultadoModelo->idUsuario = $usuarioModelo->id;
|
|
|
|
|
+ $resultadoModelo->idEvento = $modelo->id;
|
|
|
|
|
+ $resultadoModelo->accion = $acciones;
|
|
|
|
|
+
|
|
|
|
|
+ if(!$resultadoModelo->save()) {
|
|
|
|
|
+ $this->stdoutln('Ocurrió un error al guardar un resultado. '.Json::encode($resultadoModelo->getFirstErrors()));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Dependencias
|
|
|
|
|
+ if ($usuarioModelo !== null && isset($usuarioRef["dependencias"]) && isset($usuarioRef["dependencias"][0])) {
|
|
|
|
|
+ foreach($usuarioRef["dependencias"] as $dependencia) {
|
|
|
|
|
+ $dependenciaModel = Dependencia::findOne(["firebaseId" => $dependencia]);
|
|
|
|
|
+ if ($dependenciaModel === null) {
|
|
|
|
|
+ $dependenciaRef = $dependencias[$dependencia];
|
|
|
|
|
+ $dependenciaModel = new Dependencia();
|
|
|
|
|
+
|
|
|
|
|
+ $dependenciaModel->nombre = $dependenciaRef['nombre'];
|
|
|
|
|
+ $dependenciaModel->descripcion = $dependenciaRef['descripcion'];
|
|
|
|
|
+ $dependenciaModel->estatus = $dependenciaRef['estatus'];
|
|
|
|
|
+
|
|
|
|
|
+ $creado = \DateTime::createFromFormat('Y-m-d\TH:i:s.u\Z', $dependenciaRef["timestamp"]);
|
|
|
|
|
+ if ($creado !== false) {
|
|
|
|
|
+ $dependenciaModel->creado = $creado->format(\DateTime::RFC3339_EXTENDED);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(!$dependenciaModel->save()) {
|
|
|
|
|
+ $this->stdoutln('Ocurrió un error al guardar una dependencia. '.Json::encode($dependenciaModel->getFirstErrors()));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //UsuarioDependencia
|
|
|
|
|
+ $usuarioDependencia = UsuarioDependencia::find()
|
|
|
|
|
+ ->andWhere([
|
|
|
|
|
+ "idUsuario" => $usuarioModelo->id,
|
|
|
|
|
+ "idDependencia" => $dependenciaModel->id
|
|
|
|
|
+ ])
|
|
|
|
|
+ ->one();
|
|
|
|
|
+
|
|
|
|
|
+ if ($usuarioDependencia === null) {
|
|
|
|
|
+ $usuarioDependencia = new UsuarioDependencia();
|
|
|
|
|
+
|
|
|
|
|
+ $usuarioDependencia->idUsuario = $usuarioModelo->id;
|
|
|
|
|
+ $usuarioDependencia->idDependencia = $dependenciaModel->id;
|
|
|
|
|
+
|
|
|
|
|
+ if(!$usuarioDependencia->save()) {
|
|
|
|
|
+ $this->stdoutln('Ocurrió un error al guardar un usuario-dependencia. '.Json::encode($usuarioDependencia->getFirstErrors()));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
$hoy = new \DateTime();
|
|
$hoy = new \DateTime();
|
|
@@ -181,11 +337,11 @@ class EventoController extends Controller {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
# Si los registros procesados son menores al límite, terminar
|
|
# Si los registros procesados son menores al límite, terminar
|
|
|
- /* if($c < $limite) {
|
|
|
|
|
|
|
+ if($c < $limite) {
|
|
|
$continuar = false;
|
|
$continuar = false;
|
|
|
- } */
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // } while($continuar);
|
|
|
|
|
|
|
+ } while($continuar);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|