MIF_E31230333/routes/web.php

127 lines
4.3 KiB
PHP

<?php
use App\Http\Controllers\ProfileController;
use Illuminate\Support\Facades\Route;
use App\Http\Middleware\RoleMiddleware;
use App\Http\Controllers\Admin\DashboardController;
use App\Http\Controllers\Admin\PenyakitController;
use App\Http\Controllers\Admin\GejalaController;
use App\Http\Controllers\Admin\RuleController;
use App\Http\Controllers\User\KonsultasiController;
use App\Http\Controllers\User\RiwayatController;
use App\Http\Controllers\Admin\KonsultasiController as AdminKonsultasiController;
use App\Http\Controllers\User\ProfilController;
use App\Http\Controllers\LandingController;
use App\Http\Controllers\PdfController;
Route::get('/', [LandingController::class, 'index'])->name('landing');
Route::get('/dashboard', function () {
if (auth()->user()->role === 'admin') {
return redirect('/admin');
}
return redirect('/konsultasi');
})->middleware(['auth'])->name('dashboard');
Route::get('/profile', function() {
return redirect('/admin');
})->middleware(['auth'])->name('profile.edit');
Route::post('/debug-cf2', function(\Illuminate\Http\Request $req) {
$gejalaIds = array_map('intval', $req->gejala);
$cfUserInput = [];
foreach ($req->cf_user as $k => $v) {
$cfUserInput[(int)$k] = (float)$v;
}
$rules = \DB::table('tbl_rule')
->whereIn('id_gejala', $gejalaIds)
->join('tbl_penyakit', 'tbl_rule.id_penyakit', '=', 'tbl_penyakit.id')
->join('tbl_gejala', 'tbl_rule.id_gejala', '=', 'tbl_gejala.id')
->select('tbl_rule.*', 'tbl_penyakit.nama as nama_penyakit', 'tbl_gejala.kode as kode_gejala')
->get();
$hasil = [];
foreach ($rules as $rule) {
$cfUser = $cfUserInput[(int)$rule->id_gejala] ?? 'NOT FOUND';
$hasil[] = [
'penyakit' => $rule->nama_penyakit,
'gejala' => $rule->kode_gejala,
'id_gejala' => $rule->id_gejala,
'nilai_mb' => $rule->nilai_mb,
'nilai_md' => $rule->nilai_md,
'cf_user' => $cfUser,
'mb_combine'=> is_numeric($cfUser) ? (float)$cfUser * $rule->nilai_mb : 'ERROR',
];
}
return response()->json([
'gejala_ids' => $gejalaIds,
'cf_user_input'=> $cfUserInput,
'rules_found' => count($rules),
'detail' => $hasil,
]);
});
// Via route sementara di web.php:
Route::get('/migrate-mbmd', function() {
try {
\DB::statement("ALTER TABLE tbl_rule ADD COLUMN nilai_mb DECIMAL(3,2) DEFAULT 0.00 AFTER nilai_cf");
} catch (\Exception $e) {
// kolom sudah ada, skip
}
try {
\DB::statement("ALTER TABLE tbl_rule ADD COLUMN nilai_md DECIMAL(3,2) DEFAULT 0.00 AFTER nilai_mb");
} catch (\Exception $e) {
// kolom sudah ada, skip
}
return 'Selesai!';
});
Route::get('/fix-perm', function() {
$dir = '/home/tamyhost/public_html/E31230333/public/storage/penyakit/';
$files = glob($dir . '*');
foreach($files as $file) {
chmod($file, 0644);
}
chmod($dir, 0755);
return 'Done!';
});
Route::middleware(['auth', RoleMiddleware::class.':admin'])
->prefix('admin')
->name('admin.')
->group(function () {
Route::get('/', [DashboardController::class, 'index'])
->name('dashboard');
Route::resource('penyakit', PenyakitController::class);
Route::resource('gejala', GejalaController::class);
Route::resource('rule', RuleController::class);
Route::get('konsultasi', [AdminKonsultasiController::class, 'index'])->name('konsultasi.index');
Route::get('konsultasi/{id}', [AdminKonsultasiController::class, 'show'])->name('konsultasi.show');
});
Route::middleware(['auth'])->group(function () {
Route::get('/konsultasi', [KonsultasiController::class, 'index'])
->name('konsultasi.index');
Route::post('/konsultasi', [KonsultasiController::class, 'store'])
->name('konsultasi.store');
Route::get('/konsultasi/{id}', [KonsultasiController::class, 'show'])
->name('konsultasi.show');
Route::get('/riwayat', [RiwayatController::class, 'index'])
->name('user.riwayat');
Route::get('/hasil/{id}/pdf', [PdfController::class, 'download'])
->name('hasil.pdf');
Route::get('/profil', [ProfilController::class, 'index'])->name('user.profil');
Route::put('/profil', [ProfilController::class, 'update'])->name('user.profil.update');
});
require __DIR__.'/auth.php';