Correccion y mejora command verificacion

parent 34b72abf
......@@ -9,10 +9,13 @@ use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
use App\Entity\PluSuscripcion;
use App\Entity\PluEstadoSuscripcionKushki;
use App\Entity\PluRegistroVerificacionSuscripcion;
use App\Entity\PluRegistroVerificacionSuscripcionRepository;
use App\Repository\PluEstadoSuscripcionKushkiRepository;
use App\Utilities\Utiles;
class VerificarSuscripcionKushkiCommand extends Command {
const subscriptionDelete = "subscriptionDelete";
const error = "ERROR";
const maxRetry = 3;
......@@ -44,9 +47,9 @@ class VerificarSuscripcionKushkiCommand extends Command {
$fechaTermino = $suscripcion->getSusFin();
$log->debug("Analizando suscripcion " . $suscripcion->getSusId() . " de la lista " . $suscripcion->getLisId()->getLisId() . " del msisdn " . $suscripcion->getSusMsisdn());
//$log->debug("diferencia de dias : " . $fechaActual->diff($fechaTermino)->days);
if ($fechaTermino < $fechaActual) {
$log->debug("suscripcion con id " . $suscripcion->getSusId() . " presentaba vigencia fuera de fecha");
$suscripcion->setSusVigente(PluSuscripcion::NO_VIGENTE);
$this->em->persist($suscripcion);
......@@ -72,34 +75,68 @@ class VerificarSuscripcionKushkiCommand extends Command {
curl_close($ch);
$log->debug('Retorno status a obtener informacion suscripcion:' . $status_code_informacion . ' | desc:' . $output);
$data = json_decode($output, true);
$log->debug(print_r($data,true));
$log->debug(print_r($data, true));
if ($data['code'] === 200) {
switch ($data["event"]) {
case "succesfullCharge":
//TODO, GENERAR TABLA QUE MARQUE QUE YA SE REVISO LA SUSCRIPCION POR EL DIA DE HOY
// QUE YA SE REVISO Y ACTUALIZO HOY
$fechaActual = new \DateTime();
$fecha = new \DateTime();
if ($periodo == "daily") {
$fechaUnaSemana = $fecha->modify('+1 days');
} else if ($periodo == "weekly") {
$fechaUnaSemana = $fecha->modify('+7 days');
}
$registradoHoy = $this->em
->getRepository(PluRegistroVerificacionSuscripcion::class)
->buscarRegistro($suscripcion->getSusId());
$suscripcion->setSusInicio($fechaActual);
$suscripcion->setSusFin($fechaUnaSemana);
$suscripcion->setSusStartDateKushki($data["startDate"]);
$suscripcion->setUpdatedAt(new \DateTime());
$this->em->persist($suscripcion);
$this->em->flush();
if ($registradoHoy == null) {
if ($periodo == "daily") {
$fechaUnaSemana = $fecha->modify('+1 days');
} else if ($periodo == "weekly") {
$fechaUnaSemana = $fecha->modify('+7 days');
}
$suscripcion->setSusInicio($fechaActual);
$suscripcion->setSusFin($fechaUnaSemana);
$suscripcion->setSusStartDateKushki($data["startDate"]);
$suscripcion->setUpdatedAt(new \DateTime());
$this->em->persist($suscripcion);
$this->em->flush();
$registroNuevo = new PluRegistroVerificacion();
$registroNuevo->setRvsIdSuscripcion($suscripcion->getSusId());
$registroNuevo->setRvsEstadoSuscripcionKushki("succesfullCharge");
$registroNuevo->setRvsEstado(1);
$registroNuevo->setRvsEliminado(0);
$registroNuevo->setCreatedAt(new \DateTime());
$registroNuevo->setUpdatedAt(new \DateTime());
$this->em->persist($registroNuevo);
$this->em->flush();
$log->debug("Se actualizo suscripcion " . $suscripcion->getSusId() . " de la lista " . $suscripcion->getLisId()->getLisId() . " del msisdn " . $suscripcion->getSusMsisdn() . " para estado successfulCharge");
$log->debug("Se actualizo suscripcion " . $suscripcion->getSusId() . " de la lista " . $suscripcion->getLisId()->getLisId() . " del msisdn " . $suscripcion->getSusMsisdn() . " para estado successfulCharge");
} else {
$log->debug("Ya se habia actualizado el dia de hoy, el registro " . $suscripcion->getSusId());
}
break;
case "failedRetry":
$registro = PluEstadoSuscripcionKushkiRepository::buscarRegistroEstado($suscripcion->getLisId()->getLisId());
$registradoHoy = $this->em
->getRepository(PluRegistroVerificacionSuscripcion::class)
->buscarRegistro($suscripcion->getSusId());
$registro = PluEstadoSuscripcionKushkiRepository::buscarRegistroEstado($suscripcion->getSusId());
if($registradoHoy == null){
$registroNuevo = new PluRegistroVerificacion();
$registroNuevo->setRvsIdSuscripcion($suscripcion->getSusId());
$registroNuevo->setRvsEstadoSuscripcionKushki("failedRetry");
$registroNuevo->setRvsEstado(2);
$registroNuevo->setRvsEliminado(0);
$registroNuevo->setCreatedAt(new \DateTime());
$registroNuevo->setUpdatedAt(new \DateTime());
$this->em->persist($registroNuevo);
$this->em->flush();
}else{
$log->debug("ya se habia generado un registro para el estado 'failedRetry' para la suscripcion ".$suscripcion->getSusId());
}
if ($registro == null) {
//si no existe
$nuevoRegistroEstadoSuscripcion = new PluEstadoSuscripcionKushki();
......@@ -131,7 +168,22 @@ class VerificarSuscripcionKushkiCommand extends Command {
break;
case "lastRetry":
//cuando todos los intentos fallan (3), se deben marcar la suscripcion actual como no valida
$registro = PluEstadoSuscripcionKushkiRepository::buscarRegistroEstado($suscripcion->getLisId()->getLisId());
$registro = PluEstadoSuscripcionKushkiRepository::buscarRegistroEstado($suscripcion->getSusId());
if($registradoHoy == null){
$registroNuevo = new PluRegistroVerificacion();
$registroNuevo->setRvsIdSuscripcion($suscripcion->getSusId());
$registroNuevo->setRvsEstadoSuscripcionKushki("lastRetry");
$registroNuevo->setRvsEstado(3);
$registroNuevo->setRvsEliminado(0);
$registroNuevo->setCreatedAt(new \DateTime());
$registroNuevo->setUpdatedAt(new \DateTime());
$this->em->persist($registroNuevo);
$this->em->flush();
}else{
$log->debug("ya se habia generado un registro para el estado 'lastRetry' para la suscripcion ".$suscripcion->getSusId());
}
$intentos = $registro->getEskIntento();
$intentos = $intentos + 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment