127 lines
4.3 KiB
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';
|