File manager - Edit - /var/www/html/transparencia/app/Http/Controllers/SatisfactionSurveyController.php
Back
<?php // app/Http/Controllers/SatisfactionSurveyController.php namespace App\Http\Controllers; use App\Models\SatisfactionSurvey; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class SatisfactionSurveyController extends Controller { public function store(Request $request) { $validated = $request->validate([ 'satisfacao' => 'required|string|in:Muito Ruim,Ruim,Regular,Bom,Muito Bom', 'nome' => 'nullable|string|max:255', 'email' => 'nullable|email|max:255', 'resposta' => 'nullable|string|max:255', ]); SatisfactionSurvey::create([ 'satisfaction' => $request->satisfacao, 'name' => $request->nome, 'email' => $request->email, 'response' => $request->resposta ]); return response()->json(['message' => 'Obrigado por sua avaliação!']); } public function getOptions($option) { $options = [ '1' => [ 'Encontrei muita dificuldade em navegar no site, o que tornou a busca por informações frustrante.', 'O site apresentou diversos problemas técnicos, prejudicando a experiência de uso.', 'A falta de atualização das informações comprometeu a utilidade do site.', 'A organização confusa das informações tornou a visita insatisfatória.', 'A interface pouco intuitiva dificultou muito o acesso às informações.', 'Outra(s)' ], '2' => [ 'Algumas informações estavam desatualizadas, afetando a confiabilidade do site.', 'A estrutura do site não favoreceu a navegação, deixando a experiência aquém do esperado.', 'Encontrei links quebrados durante a navegação, o que impactou negativamente.', 'A lentidão na resposta do site foi um ponto negativo durante a navegação.', 'A falta de clareza na organização das informações dificultou a busca.', 'Outra(s)' ], '3' => [ 'As informações estavam acessíveis, mas a navegação poderia ser mais intuitiva.', 'O site cumpriu seu propósito básico, mas a falta de atualização é notável.', 'A organização das informações atendeu, embora melhorias sejam possíveis.', 'A experiência foi satisfatória, com acesso às informações sem grandes problemas.', 'O site tem potencial para ser mais útil com algumas melhorias.', 'Outra(s)' ], '4' => [ 'O acesso às informações foi fácil, graças à interface bem projetada.', 'A navegação fluida e a organização clara das informações foram pontos positivos.', 'As informações foram precisas e atualizadas, aumentando a confiabilidade.', 'A interface amigável tornou a experiência no site positiva.', 'A busca por informações foi eficiente devido à boa estrutura.', 'Outra(s)' ], '5' => [ 'O site proporcionou uma experiência excelente, com informações relevantes de fácil acesso.', 'A interface intuitiva facilitou muito a busca por informações.', 'A precisão e confiabilidade das informações contribuíram para a satisfação.', 'A navegação eficiente e a organização exemplar tornaram o site notável.', 'Todas as informações necessárias foram encontradas com rapidez.', 'Outra(s)' ] ]; return response()->json(implode('#', $options[$option] ?? [])); } public function getChartData() { $data = SatisfactionSurvey::select('satisfaction', DB::raw('COUNT(*) as votes')) ->groupBy('satisfaction') ->get(); $labels = ['Muito Bom', 'Bom', 'Regular', 'Ruim', 'Muito Ruim']; $chartData = []; $counts = []; foreach ($labels as $label) { $found = $data->firstWhere('satisfaction', $label); $votes = $found ? $found->votes : 0; $chartData[] = $votes; $counts[$label] = $votes; } $total = array_sum($chartData); $percentages = array_map(function ($value) use ($total) { return $total > 0 ? round(($value / $total) * 100, 2) : 0; }, $chartData); return response()->json([ 'labels' => $labels, 'data' => $percentages, 'counts' => $counts ]); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings