Logica envio de urls a clientes

parent 33b8ad01
......@@ -37,21 +37,45 @@ class EnviarWapushUsuariosCommand extends Command {
protected function execute(InputInterface $input, OutputInterface $output) {
$log = Utiles::setLog('App\Command::EnviarWapushUsuariosCommand', 'command/enviarWapushUsuarios');
$io = new SymfonyStyle($input, $output);
$suscripciones = $this->em->getRepository(PluSuscripcion::class)->findBy(array("susVigente" => 1));
$log->debug("suscripciones a procesar ".count($suscripciones));
//tipo informacional(prueba)
try{
foreach ($suscripciones as $index => $suscripcion):
$retornoWapPush = EntelWapush::wsGenerarPeticionWapPush($suscripcion->getSusId(), PluTipoWapush::TIPO_WP_DATOS_CUENTA, array($suscripcion->getSusId()));
$log->debug("retorno wapush a ".$suscripcion->getSusMsisdn()." : $retornoWapPush");
if ($retornoWapPush == 200) {
$log->debug("wapush enviado a ".$suscripcion->getSusMsisdn());
} else {
$log->debug('wappush NOOK a '.$suscripcion->getSusMsisdn());
$fechaActual = new \DateTime();
$fechaSiguiente = new \DateTime();
$ultimaFechaEjecucion = $this->em->getRepository(PluEntelProximaFecha::class)->getUltimaFechaEjecucion();
$ejecutar = 0;
if ($ultimaFechaEjecucion == null) {
$ejecutar = 1;
} else if ($ultimaFechaEjecucion->getEwfFecha()->format('Y-m-d') != $fechaActual->format('Y-m-d')) {
$ejecutar = 1;
} else {
$log->debug("El proceso ya se ejecuto.");
}
if ($ejecutar == 1) {
$suscripciones = $this->em->getRepository(PluSuscripcion::class)->findBy(array("susVigente" => 1));
$log->debug("suscripciones a procesar " . count($suscripciones));
try {
//Envio de recordatorio suscripcion a lista a los suscripsores
foreach ($suscripciones as $index => $suscripcion):
$log->debug("enviando mensaje de informacion de suscripcion a cuenta a MSISDN 56" . $suscripcion->getSusMsisdn());
$retornoWapPush = EntelWapush::wsGenerarPeticionWapPush($suscripcion->getSusId(), PluTipoWapush::TIPO_WP_OWN_MESSAGE, array($suscripcion->getSusId()));
$log->debug("retorno wapush a " . $suscripcion->getSusMsisdn() . " : $retornoWapPush");
if ($retornoWapPush == 200) {
$log->debug("wapush enviado a " . $suscripcion->getSusMsisdn());
} else {
$log->debug('wappush NOOK a ' . $suscripcion->getSusMsisdn());
}
endforeach;
$nuevaFechaSiguienteEjecucion = new \PluEntelProximaFecha();
$nuevaFechaSiguienteEjecucion->setEwfFecha($fechaSiguiente->modify('+7 days'));
$this->em->persist($nuevaFechaSiguienteEjecucion);
$this->em->flush();
$log->debug("la proxima fecha de ejecucion es ".$nuevaFechaSiguienteEjecucion->getEwfFecha()->format("Y-m-d"));
} catch (\Exception $e) {
$io->success(print_r($e));
}
endforeach;
}catch(\Exception $e){
$io->success(print_r($e));
}
$io->success('Command Finalizado');
}
......
......@@ -15,6 +15,7 @@ class PluTipoWapush
const TIPO_WP_DATOS_CUENTA = 1;
const TIPO_WP_INFO_CONTENIDO_GRATUITO = 2;
const TIPO_WP_SUSCRIPCION_LISTA = 3;
const TIPO_WP_OWN_MESSAGE = 4;
/**
* @var int
......
......@@ -18,6 +18,15 @@ class PluEntelWapushProximaFechaRepository extends ServiceEntityRepository
{
parent::__construct($registry, PluEntelWapushProximaFecha::class);
}
public function getUltimaFechaEjecucion(){
return $this->createQueryBuilder('p')
->orderBy('p.ewfId', 'DESC')
->getQuery()
->getOneOrNullResult();
}
// /**
// * @return PluEntelWapushProximaFecha[] Returns an array of PluEntelWapushProximaFecha objects
......
......@@ -113,11 +113,17 @@ class EntelWapush {
$log->debug('Mostrar informacion cuenta...');
$lista = $suscripcion->getLisId();
$urlType = str_replace("#MSISDN", $suscripcion->getSusMsisdn() , $tipoWappush->getTwaUrl());
$url = Utiles::acortarUrl(array("url" => Utiles::getUrlByTag($lista->getTag()), "descripcion" => "url cuenta"))."/$urlType";
$url = Utiles::acortarUrl(array("url" => $lista->getLisWapPushUrl()."/$urlType", "descripcion" => "url cuenta"));
$message = str_replace("#LISTA", $lista->getLisNombre(), $message);
$message = str_replace("#MONTO", $lista->getLisPrecio(), $message);
$message = str_replace("#AQUI", $url, $message);
break;
case PluTipoWapush::TIPO_WP_OWN_MESSAGE:
$log->debug('Enviar recordatorio suscripcion de la lista...');
$lista = $suscripcion->getLisId();
$urlType = str_replace("#MSISDN", $suscripcion->getSusMsisdn() , $tipoWappush->getTwaUrl());
$url = Utiles::acortarUrl(array("url" => $lista->getLisWapPushUrl()."/$urlType", "descripcion" => "url cuenta"));
$message = $lista->getLisWapPushMessage().$url;
endswitch;
......
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