Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.74 KB | None | 0 0
  1. <?php
  2.  
  3. use Illuminate\Support\Facades\Schema;
  4. use Illuminate\Database\Schema\Blueprint;
  5. use Illuminate\Database\Migrations\Migration;
  6. use App\Maistre\Helpers\ElasticSearchFluentSearchHelper;
  7. use App\Maistre\Helpers\ElasticSearchHelper;
  8. use App\ReadModels\CemiterioSubdomain\CemiterioBoundedContext\ContratoCemiterioReadModel;
  9. use App\ReadModels\EstruturaCorporativaSubdomain\EstruturaCorporativaBoundedContext\ParoquianoReadModel;
  10. use App\Maistre\Helpers\Log;
  11. use Broadway\ReadModel\RepositoryFactory;
  12.  
  13. class UpdateParoquianoCobrancaCemiterioTable extends Migration
  14. {
  15. /**
  16. * Run the migrations.
  17. *
  18. * @return void
  19. */
  20. public function up()
  21. {
  22. try {
  23. $this->ajustaContratoCemiterio();
  24. } catch (\Throwable $e) {
  25. Log::logException($e);
  26. throw $e;
  27. }
  28. }
  29.  
  30. public function ajustaContratoCemiterio($proximoUuid = "")
  31. {
  32.  
  33. $fluentSearch2 = new ElasticSearchFluentSearchHelper(
  34. ContratoCemiterioReadModel::class
  35. );
  36.  
  37. $fluentSearch2->query()
  38. ->bool()
  39. ->mustNot()
  40. ->exists('paroquianoArrendatarioReadModel');
  41.  
  42. if (empty($proximoUuid) === false) {
  43. $fluentSearch2->range("contratoCemiterioId")
  44. ->maiorQue($proximoUuid);
  45. }
  46.  
  47. $result = $fluentSearch2->sort(["_uid"])
  48. ->size(1000)
  49. ->search();
  50.  
  51. if ($result['total'] > 0) {
  52. /** @var RepositoryFactory $readModelRepository */
  53. $readModelRepository = app(RepositoryFactory::class);
  54. $esRepo = $readModelRepository->create(app('subdomain'), ContratoCemiterioReadModel::class);
  55. foreach ($result['data'] as $value) {
  56. $paroquianoRM = ElasticSearchHelper::getElasticSearch(
  57. ParoquianoReadModel::class,
  58. $value->paroquianoArrendatarioId
  59. );
  60. $contratoCemiterioRM = ElasticSearchHelper::getElasticSearch(
  61. ContratoCemiterioReadModel::class,
  62. $value->contratoCemiterioId
  63. );
  64. if (!empty($contratoCemiterioRM)) {
  65. $contratoCemiterioRM->paroquianoArrendatarioReadModel = $paroquianoRM;
  66. $esRepo->save($contratoCemiterioRM);
  67. }
  68.  
  69. $ultimoCemiterioContratoId = (string) $value->contratoCemiterioId;
  70. }
  71. if ($result['total'] > 1000) {
  72. $this->ajustaContratoCemiterio($ultimoCemiterioContratoId);
  73. }
  74. }
  75. }
  76.  
  77. /**
  78. * Reverse the migrations.
  79. *
  80. * @return void
  81. */
  82. public function down()
  83. {
  84. //
  85. }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement