Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- use Illuminate\Support\Facades\Schema;
- use Illuminate\Database\Schema\Blueprint;
- use Illuminate\Database\Migrations\Migration;
- use App\Maistre\Helpers\ElasticSearchFluentSearchHelper;
- use App\Maistre\Helpers\ElasticSearchHelper;
- use App\ReadModels\CemiterioSubdomain\CemiterioBoundedContext\ContratoCemiterioReadModel;
- use App\ReadModels\EstruturaCorporativaSubdomain\EstruturaCorporativaBoundedContext\ParoquianoReadModel;
- use App\Maistre\Helpers\Log;
- use Broadway\ReadModel\RepositoryFactory;
- class UpdateParoquianoCobrancaCemiterioTable extends Migration
- {
- /**
- * Run the migrations.
- *
- * @return void
- */
- public function up()
- {
- try {
- $this->ajustaContratoCemiterio();
- } catch (\Throwable $e) {
- Log::logException($e);
- throw $e;
- }
- }
- public function ajustaContratoCemiterio($proximoUuid = "")
- {
- $fluentSearch2 = new ElasticSearchFluentSearchHelper(
- ContratoCemiterioReadModel::class
- );
- $fluentSearch2->query()
- ->bool()
- ->mustNot()
- ->exists('paroquianoArrendatarioReadModel');
- if (empty($proximoUuid) === false) {
- $fluentSearch2->range("contratoCemiterioId")
- ->maiorQue($proximoUuid);
- }
- $result = $fluentSearch2->sort(["_uid"])
- ->size(1000)
- ->search();
- if ($result['total'] > 0) {
- /** @var RepositoryFactory $readModelRepository */
- $readModelRepository = app(RepositoryFactory::class);
- $esRepo = $readModelRepository->create(app('subdomain'), ContratoCemiterioReadModel::class);
- foreach ($result['data'] as $value) {
- $paroquianoRM = ElasticSearchHelper::getElasticSearch(
- ParoquianoReadModel::class,
- $value->paroquianoArrendatarioId
- );
- $contratoCemiterioRM = ElasticSearchHelper::getElasticSearch(
- ContratoCemiterioReadModel::class,
- $value->contratoCemiterioId
- );
- if (!empty($contratoCemiterioRM)) {
- $contratoCemiterioRM->paroquianoArrendatarioReadModel = $paroquianoRM;
- $esRepo->save($contratoCemiterioRM);
- }
- $ultimoCemiterioContratoId = (string) $value->contratoCemiterioId;
- }
- if ($result['total'] > 1000) {
- $this->ajustaContratoCemiterio($ultimoCemiterioContratoId);
- }
- }
- }
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- //
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement