From 6d2693ec5f0e2c64e94f2b7e5c25991736556e7b Mon Sep 17 00:00:00 2001 From: Djonathan Date: Fri, 24 Jun 2022 00:49:32 -0300 Subject: [PATCH] Implementation make s3 amazon on upload and download. --- .../Controllers/InfoSectorialController.php | 26 +++----- .../DadosTe/DadosTeRepository.php | 14 ++++- .../Med5min/Med5minContractInterface.php | 4 ++ .../Med5min/Med5minRepository.php | 63 +++++++++++++++++++ app/Support/FilterBuilder/FiltersQuery.php | 3 +- 5 files changed, 91 insertions(+), 19 deletions(-) diff --git a/app/Http/Controllers/InfoSectorialController.php b/app/Http/Controllers/InfoSectorialController.php index 2ce834d..c67d79a 100644 --- a/app/Http/Controllers/InfoSectorialController.php +++ b/app/Http/Controllers/InfoSectorialController.php @@ -25,13 +25,7 @@ class InfoSectorialController extends Controller $data['name'] = Str::of($file->getClientOriginalName())->explode('.')->offsetGet(0); $data['uid'] = Str::of($file->hashName())->explode('.')->offsetGet(0); $extension = $file->getClientOriginalExtension(); - $path = $file->store('pdf','s3'); - - dd($path); -// $path = Storage::disk('s3')->put('pdf', $data['uid'].".{$extension}"); -// $path = Storage::disk('s3')->url($path); - dd($path); - //$data['uid'].".{$extension}" + $data['path'] = $file->storeAs('pdf', $data['uid'].".{$extension}", 's3'); return InfoSectorial::query()->create($data); @@ -43,16 +37,16 @@ class InfoSectorialController extends Controller $data = InfoSectorial::query()->where('created_at', '=', $created_at)->first(); - if (Storage::disk('public')->exists($data->path)) + if (!Storage::disk('s3')->exists($data->path)) { - $path = Storage::disk('public')->path(($data->path)); - - $heders = [ - 'Content-Type' => mime_content_type($path) - ]; - - return response()->download($path, $data->name, $heders); - + return $this->errorResponse( false, '', 500); } + + $headers = [ + 'Content-Type' => 'application/pdf', + 'Content-Disposition' => 'attachment; filename="'. basename($data->path) .'"', + ]; + + return response()->make(Storage::disk('s3')->get($data->path), 200, $headers); } } diff --git a/app/Repositories/DadosTe/DadosTeRepository.php b/app/Repositories/DadosTe/DadosTeRepository.php index 5837a6f..0112ecf 100644 --- a/app/Repositories/DadosTe/DadosTeRepository.php +++ b/app/Repositories/DadosTe/DadosTeRepository.php @@ -43,8 +43,20 @@ class DadosTeRepository extends AbstractRepository implements DadosTeContractInt 'dados_te.preco_nf', 'dados_te.nf_c_icms' ]; - + return $this->execute($fields, $params)->get(); } + public static function filterRow($params, $field = 'mes'): array + { + $arr['filters'] = collect($params['filters']) + ->map(function ($value, $key) use ($field) { + if ($value['field'] === $field) { + Arr::set( $value, "field", "TO_CHAR(TO_DATE(dados_te.{$value['field']}, 'YYMM'), 'MM/YYYY')"); + $value['row'] = true; + } + return $value; + })->all(); + return $arr; + } } diff --git a/app/Repositories/Med5min/Med5minContractInterface.php b/app/Repositories/Med5min/Med5minContractInterface.php index 591613a..f644c56 100644 --- a/app/Repositories/Med5min/Med5minContractInterface.php +++ b/app/Repositories/Med5min/Med5minContractInterface.php @@ -6,5 +6,9 @@ use App\Repositories\ContractInterface; interface Med5minContractInterface extends ContractInterface { + public function discretized5min($params); + public function discretized15min($params); + public function discretizedOneHour($params); + public function discretizedOneDay($params); } \ No newline at end of file diff --git a/app/Repositories/Med5min/Med5minRepository.php b/app/Repositories/Med5min/Med5minRepository.php index 5d09a86..cc40510 100644 --- a/app/Repositories/Med5min/Med5minRepository.php +++ b/app/Repositories/Med5min/Med5minRepository.php @@ -7,6 +7,7 @@ namespace App\Repositories\Med5min; use App\Models\Med5min; use App\Repositories\AbstractRepository; use Illuminate\Database\Eloquent\Builder; +use Illuminate\Support\Facades\DB; class Med5minRepository extends AbstractRepository implements Med5minContractInterface @@ -28,4 +29,66 @@ class Med5minRepository extends AbstractRepository implements Med5minContractInt return $query; } + public function discretized5min($params) + { + $fields = + [ + 'med_5min.ponto', + 'med_5min.dia_num', + DB::raw("(med_5min.minuto/60) AS hora"), + DB::raw("MOD(med_5min.minuto,60) AS minut"), + DB::raw("SUM(med_5min.ativa_consumo) AS consumo"), + DB::raw("UM(med_5min.reativa_consumo+med_5min.reativa_geracao) AS reativa") + ]; + + + return $this->execute($fields, $params); + + } + + public function discretized15min($params) + { + $fields = + [ + 'med_5min.ponto', + 'med_5min.dia_num', + DB::raw("(med_5min.minuto/60) AS hora"), + DB::raw("MOD(med_5min.minuto,60) AS minut"), + DB::raw("SUM(med_5min.ativa_consumo) AS consumo"), + DB::raw("UM(med_5min.reativa_consumo+med_5min.reativa_geracao) AS reativa") + ]; + + return $this->execute($fields, $params); + } + + public function discretizedOneHour($params) + { + $fields = + [ + 'med_5min.ponto', + 'med_5min.dia_num', + DB::raw("(med_5min.minuto/60) AS hora"), + DB::raw("MOD(med_5min.minuto,60) AS minut"), + DB::raw("SUM(med_5min.ativa_consumo) AS consumo"), + DB::raw("UM(med_5min.reativa_consumo+med_5min.reativa_geracao) AS reativa") + ];; + + return $this->execute($fields, $params); + } + + public function discretizedOneDay($params) + { + $fields = + [ + 'med_5min.ponto', + 'med_5min.dia_num', + DB::raw("(med_5min.minuto/60) AS hora"), + DB::raw("MOD(med_5min.minuto,60) AS minut"), + DB::raw("SUM(med_5min.ativa_consumo) AS consumo"), + DB::raw("UM(med_5min.reativa_consumo+med_5min.reativa_geracao) AS reativa") + ]; + + return $this->execute($fields, $params); + } + } diff --git a/app/Support/FilterBuilder/FiltersQuery.php b/app/Support/FilterBuilder/FiltersQuery.php index f7d288e..b4b9750 100644 --- a/app/Support/FilterBuilder/FiltersQuery.php +++ b/app/Support/FilterBuilder/FiltersQuery.php @@ -14,8 +14,7 @@ trait FiltersQuery $obj = new $className; - if (!isset($jsonData) && method_exists($obj, 'jsonToObject')) - { + if (!isset($jsonData) && method_exists($obj, 'jsonToObject')) { throw new Exception("Request inválido"); }