You've already forked symfony-playground
sub
This commit is contained in:
@ -2,8 +2,11 @@
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Repository\MerBeSubRepository;
|
||||
use App\Repository\MerParaSubRepository;
|
||||
use App\Repository\MerServiceRepository;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
use App\Repository\Entity1Repository;
|
||||
@ -11,18 +14,38 @@ use App\Repository\Entity1Repository;
|
||||
class IndexController extends AbstractController
|
||||
{
|
||||
#[Route('/', name: 'app_index')]
|
||||
public function index(Entity1Repository $repo, MerParaSubRepository $subRepo): Response
|
||||
public function index(
|
||||
Entity1Repository $repo,
|
||||
MerParaSubRepository $paraSubRepo,
|
||||
MerBeSubRepository $beSubRepo
|
||||
): Response
|
||||
{
|
||||
// repo dummy
|
||||
$sm = $repo->getSchemaManager();
|
||||
|
||||
$sub = $subRepo->findOne();
|
||||
dump($sub);
|
||||
dump($sub->getService());
|
||||
foreach ($paraSubRepo->findAll() as $sub) {
|
||||
dump($sub);
|
||||
}
|
||||
|
||||
dump('-------------------');
|
||||
|
||||
foreach ($beSubRepo->findAll() as $sub) {
|
||||
dump($sub);
|
||||
}
|
||||
|
||||
return $this->render('index/index.html.twig', [
|
||||
'controller_name' => 'IndexController',
|
||||
'schemaManager' => $sm
|
||||
'schemaManager' => $sm,
|
||||
//'offer_id' => $sub->getService()->ge
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route('/notification/dm', name: 'notification_dm')]
|
||||
public function notificationDm(Request $request, MerServiceRepository $repo): Response
|
||||
{
|
||||
foreach ($repo->findByOfferId($request->query->get('offer_id')) as $sub) {
|
||||
dump($sub);
|
||||
}
|
||||
|
||||
return $this->render('index/notificationDm.html.twig');
|
||||
}
|
||||
}
|
||||
|
@ -3,9 +3,11 @@
|
||||
namespace App\DataFixtures;
|
||||
|
||||
use App\Entity\MerBeDM;
|
||||
use App\Entity\MerBeSub;
|
||||
use App\Entity\MerParaDM;
|
||||
use App\Entity\MerParaDT;
|
||||
use App\Entity\MerParaSub;
|
||||
use App\Enum\SubStatus;
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
|
||||
@ -13,42 +15,65 @@ class MerFixtures extends Fixture
|
||||
{
|
||||
public function load(ObjectManager $manager): void
|
||||
{
|
||||
// service1
|
||||
$tmp = new MerParaDM();
|
||||
$tmp->setMccMnc(12345)->setOfferId(221)->setProductCode('code1');
|
||||
$manager->persist($tmp);
|
||||
$ser1 = new MerParaDM();
|
||||
$ser1->setMccMnc(12345)
|
||||
->setOfferId(221)
|
||||
->setProductCode('code1');
|
||||
|
||||
// sub
|
||||
$sub = new MerParaSub();
|
||||
$sub->setService($tmp)->setPin(1122)->setSubDate(new \DateTimeImmutable('now'));
|
||||
$manager->persist($sub);
|
||||
$ser2 = new MerParaDM();
|
||||
$ser2->setMccMnc(12345)
|
||||
->setOfferId(223)
|
||||
->setProductCode('code2');
|
||||
|
||||
// service 2
|
||||
$tmp = new MerParaDM();
|
||||
$tmp->setMccMnc(12345)->setOfferId(223)->setProductCode('code2');
|
||||
$manager->persist($tmp);
|
||||
$ser3 = new MerParaDT();
|
||||
$ser3->setMccMnc(12345)
|
||||
->setServiceId('ser-vi-ce1')
|
||||
->setApiKey('api1');
|
||||
|
||||
// sub
|
||||
$sub = new MerParaSub();
|
||||
$sub->setService($tmp)->setPin(2211)->setSubDate(new \DateTimeImmutable('now'));
|
||||
$manager->persist($sub);
|
||||
$ser4 = new MerParaDT();
|
||||
$ser4->setMccMnc(12341)
|
||||
->setServiceId('ser-vi-ce2')
|
||||
->setApiKey('api2');
|
||||
|
||||
$sub = new MerParaSub();
|
||||
$sub->setService($tmp)->setSubDate(new \DateTimeImmutable('now'));
|
||||
$manager->persist($sub);
|
||||
$ser5 = new MerBeDM();
|
||||
$ser5->setMccMnc(12341)
|
||||
->setOfferId(112)
|
||||
->setActivationCode('active1');
|
||||
|
||||
// service 3
|
||||
$tmp = new MerParaDT();
|
||||
$tmp->setMccMnc(12345)->setServiceId('ser-vi-ce1')->setApiKey('api1');
|
||||
$manager->persist($tmp);
|
||||
$sub1 = new MerParaSub();
|
||||
$sub1->setService($ser1)
|
||||
->setStatus(SubStatus::ACTIVE)
|
||||
->setPin(1122)
|
||||
->setSubDate(new \DateTimeImmutable('now'));
|
||||
|
||||
$tmp = new MerParaDT();
|
||||
$tmp->setMccMnc(12341)->setServiceId('ser-vi-ce2')->setApiKey('api2');
|
||||
$manager->persist($tmp);
|
||||
$sub2 = new MerParaSub();
|
||||
$sub2->setService($ser3)
|
||||
->setStatus(SubStatus::PREREGISTERED)
|
||||
->setPin(2211)
|
||||
->setSubDate(new \DateTimeImmutable('now'));
|
||||
|
||||
$tmp = new MerBeDM();
|
||||
$tmp->setMccMnc(12341)->setOfferId(112)->setActivationCode('active1');
|
||||
$manager->persist($tmp);
|
||||
$sub3 = new MerParaSub();
|
||||
$sub3->setService($ser3)
|
||||
->setStatus(SubStatus::CANCELLED)
|
||||
->setSubDate(new \DateTimeImmutable('yesterday'))
|
||||
->setUnsubDate(new \DateTimeImmutable('now'));
|
||||
|
||||
$sub4 = new MerBeSub();
|
||||
$sub4->setService($ser5)
|
||||
->setStatus(SubStatus::REGISTERED)
|
||||
->setCode('CoDe')
|
||||
->setSubDate(new \DateTimeImmutable('now'));
|
||||
|
||||
$manager->persist($ser1);
|
||||
$manager->persist($ser2);
|
||||
$manager->persist($ser3);
|
||||
$manager->persist($ser4);
|
||||
$manager->persist($ser5);
|
||||
|
||||
$manager->persist($sub1);
|
||||
$manager->persist($sub2);
|
||||
$manager->persist($sub3);
|
||||
$manager->persist($sub4);
|
||||
|
||||
$manager->flush();
|
||||
}
|
||||
|
27
src/Entity/MerBeSub.php
Normal file
27
src/Entity/MerBeSub.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use App\Repository\MerParaSubRepository;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
|
||||
#[ORM\Entity]
|
||||
class MerBeSub
|
||||
{
|
||||
use MerSubBaseTrait;
|
||||
|
||||
#[ORM\Column(type: 'string', length: 255, nullable: true)]
|
||||
private $code;
|
||||
|
||||
public function getCode(): ?int
|
||||
{
|
||||
return $this->code;
|
||||
}
|
||||
|
||||
public function setCode(?string $code): self
|
||||
{
|
||||
$this->code = $code;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
@ -8,29 +8,11 @@ use Doctrine\ORM\Mapping as ORM;
|
||||
#[ORM\Entity(repositoryClass: MerParaSubRepository::class)]
|
||||
class MerParaSub
|
||||
{
|
||||
#[ORM\Id]
|
||||
#[ORM\GeneratedValue]
|
||||
#[ORM\Column(type: 'integer')]
|
||||
private $id;
|
||||
use MerSubBaseTrait;
|
||||
|
||||
#[ORM\Column(type: 'integer', nullable: true)]
|
||||
private $pin;
|
||||
|
||||
#[ORM\ManyToOne(targetEntity: MerService::class)]
|
||||
#[ORM\JoinColumn(nullable: false)]
|
||||
private MerService $service;
|
||||
|
||||
#[ORM\Column(type: 'datetime_immutable')]
|
||||
private $subDate;
|
||||
|
||||
#[ORM\Column(type: 'datetime_immutable', nullable: true)]
|
||||
private $unsubDate;
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getPin(): ?int
|
||||
{
|
||||
return $this->pin;
|
||||
@ -42,40 +24,4 @@ class MerParaSub
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getService(): ?MerService
|
||||
{
|
||||
return $this->service;
|
||||
}
|
||||
|
||||
public function setService(?MerService $service): self
|
||||
{
|
||||
$this->service = $service;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getSubDate(): ?\DateTimeImmutable
|
||||
{
|
||||
return $this->subDate;
|
||||
}
|
||||
|
||||
public function setSubDate(\DateTimeImmutable $subDate): self
|
||||
{
|
||||
$this->subDate = $subDate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getUnsubDate(): ?\DateTimeImmutable
|
||||
{
|
||||
return $this->unsubDate;
|
||||
}
|
||||
|
||||
public function setUnsubDate(?\DateTimeImmutable $unsubDate): self
|
||||
{
|
||||
$this->unsubDate = $unsubDate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
80
src/Entity/MerSubBaseTrait.php
Normal file
80
src/Entity/MerSubBaseTrait.php
Normal file
@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use App\Enum\SubStatus;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
|
||||
trait MerSubBaseTrait
|
||||
{
|
||||
#[ORM\Id]
|
||||
#[ORM\GeneratedValue]
|
||||
#[ORM\Column(type: 'integer')]
|
||||
private $id;
|
||||
|
||||
#[ORM\Column(enumType: SubStatus::class)]
|
||||
private SubStatus $status;
|
||||
|
||||
#[ORM\ManyToOne(targetEntity: MerService::class)]
|
||||
#[ORM\JoinColumn(nullable: false)]
|
||||
private MerService $service;
|
||||
|
||||
#[ORM\Column(type: 'datetime_immutable')]
|
||||
private $subDate;
|
||||
|
||||
#[ORM\Column(type: 'datetime_immutable', nullable: true)]
|
||||
private $unsubDate;
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getStatus(): SubStatus
|
||||
{
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
public function setStatus(SubStatus $status): self
|
||||
{
|
||||
$this->status = $status;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getService(): ?MerService
|
||||
{
|
||||
return $this->service;
|
||||
}
|
||||
|
||||
public function setService(?MerService $service): self
|
||||
{
|
||||
$this->service = $service;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getSubDate(): ?\DateTimeImmutable
|
||||
{
|
||||
return $this->subDate;
|
||||
}
|
||||
|
||||
public function setSubDate(\DateTimeImmutable $subDate): self
|
||||
{
|
||||
$this->subDate = $subDate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getUnsubDate(): ?\DateTimeImmutable
|
||||
{
|
||||
return $this->unsubDate;
|
||||
}
|
||||
|
||||
public function setUnsubDate(?\DateTimeImmutable $unsubDate): self
|
||||
{
|
||||
$this->unsubDate = $unsubDate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
12
src/Enum/SubStatus.php
Normal file
12
src/Enum/SubStatus.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enum;
|
||||
|
||||
enum SubStatus: int
|
||||
{
|
||||
case PREREGISTERED = 1;
|
||||
case REGISTERED = 2;
|
||||
case ACTIVE = 3;
|
||||
case CANCELLED = 4;
|
||||
case EXPIRED = 5;
|
||||
}
|
66
src/Repository/MerBeSubRepository.php
Normal file
66
src/Repository/MerBeSubRepository.php
Normal file
@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
|
||||
use App\Entity\MerBeSub;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
||||
/**
|
||||
* @extends ServiceEntityRepository<MerBeSub>
|
||||
*
|
||||
* @method MerBeSub|null find($id, $lockMode = null, $lockVersion = null)
|
||||
* @method MerBeSub|null findOneBy(array $criteria, array $orderBy = null)
|
||||
* @method MerBeSub[] findAll()
|
||||
* @method MerBeSub[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
|
||||
*/
|
||||
class MerBeSubRepository extends ServiceEntityRepository
|
||||
{
|
||||
public function __construct(ManagerRegistry $registry)
|
||||
{
|
||||
parent::__construct($registry, MerBeSub::class);
|
||||
}
|
||||
|
||||
public function add(MerBeSub $entity, bool $flush = false): void
|
||||
{
|
||||
$this->getEntityManager()->persist($entity);
|
||||
|
||||
if ($flush) {
|
||||
$this->getEntityManager()->flush();
|
||||
}
|
||||
}
|
||||
|
||||
public function remove(MerBeSub $entity, bool $flush = false): void
|
||||
{
|
||||
$this->getEntityManager()->remove($entity);
|
||||
|
||||
if ($flush) {
|
||||
$this->getEntityManager()->flush();
|
||||
}
|
||||
}
|
||||
|
||||
// /**
|
||||
// * @return MerBeSub[] Returns an array of MerBeSub objects
|
||||
// */
|
||||
// public function findByExampleField($value): array
|
||||
// {
|
||||
// return $this->createQueryBuilder('m')
|
||||
// ->andWhere('m.exampleField = :val')
|
||||
// ->setParameter('val', $value)
|
||||
// ->orderBy('m.id', 'ASC')
|
||||
// ->setMaxResults(10)
|
||||
// ->getQuery()
|
||||
// ->getResult()
|
||||
// ;
|
||||
// }
|
||||
|
||||
public function findOne(): ?MerBeSub
|
||||
{
|
||||
return $this->createQueryBuilder('m')
|
||||
->orderBy('m.id', 'ASC')
|
||||
->setMaxResults(1)
|
||||
->getQuery()
|
||||
->getOneOrNullResult()
|
||||
;
|
||||
}
|
||||
}
|
@ -67,7 +67,7 @@ class MerParaSubRepository extends ServiceEntityRepository
|
||||
public function findOne(): ?MerParaSub
|
||||
{
|
||||
return $this->createQueryBuilder('m')
|
||||
->orderBy('m.id', 'DESC')
|
||||
->orderBy('m.id', 'ASC')
|
||||
->setMaxResults(1)
|
||||
->getQuery()
|
||||
->getOneOrNullResult()
|
||||
|
@ -62,4 +62,14 @@ class MerServiceRepository extends ServiceEntityRepository
|
||||
// ->getOneOrNullResult()
|
||||
// ;
|
||||
// }
|
||||
|
||||
public function findByOfferId(int $offerId)
|
||||
{
|
||||
return $this->createQueryBuilder('s')
|
||||
->andWhere('s.offer_id = :offer_id')
|
||||
->setParameter('offer_id', $offerId)
|
||||
->getQuery()
|
||||
->getResult()
|
||||
;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user