username; $password = $request->password; $gateStatus = $request->idpintu; $user = Pegawai::where("username", $username)->where("password", $password)->first(); $gateId = NamaPos::with("posHardware", "posParams")->where("id", $gateStatus)->first(); if (!$gateId) { return response()->json([ "status" => false, "message" => "ID Pintu tidak ditemukan", ]); } $globalSetting = Softseting::first(); $shortcutVeh = explode(",", $gateId->posParams->kend_valid); $kendValid = JenisMobil::whereIn("id", $shortcutVeh)->orderBy("id")->get(); if (!$user) { return response()->json([ "status" => false, "message" => "Username dan Password salah atau user tidak aktif", ]); } Log::info("Login user " . $user->nama . " berhasil."); $fotoPegawai = $user->foto; Log::info([ "type" => gettype($fotoPegawai), "resource" => is_resource($fotoPegawai), "length" => is_string($fotoPegawai) ? strlen($fotoPegawai) : null, ]); if (is_resource($fotoPegawai)) { // $pegawaiFilename = $user->username; rewind($fotoPegawai); $fotoPegawai = stream_get_contents($fotoPegawai); } else { $user->foto = url(Storage::url("images/pegawai/no-image.jpg")); } // $fotoPegawai = pg_unescape_bytea($fotoPegawai); // $foto = stream_get_contents($fotoPegawai); // file_put_contents(storage_path("app/debug_before.bin"), $foto); // file_put_contents( // storage_path("app/debug_after.bin"), // pg_unescape_bytea($foto), // ); // $raw = stream_get_contents($fotoPegawai); // Log::info([ // "raw_size" => strlen($raw), // ]); // $binary = pg_unescape_bytea($raw); // Log::info([ // "binary_size" => strlen($binary), // ]); // Log::info([ // "resource" => is_resource($fotoPegawai), // "type" => gettype($fotoPegawai), // "size" => is_string($fotoPegawai) ? strlen($fotoPegawai) : null, // "hex" => bin2hex(substr($fotoPegawai, 0, 100)), // "before" => bin2hex(substr($fotoPegawai, 0, 16)), // // "after" => bin2hex(substr($decoded, 0, 16)), // ]); if (!empty($fotoPegawai)) { $filename = "pegawai_" . $user->nomer . ".jpg"; $result = Storage::disk("public")->put("images/pegawai/" . $filename, $fotoPegawai); Log::info(["save" => $result]); $user->foto = url(Storage::url("images/pegawai/" . $filename)); } // Log::info($user->toArray()); return response()->json([ "status" => true, "message" => "Login berhasil", "data" => [ "user" => $user, "gate" => $gateId, "settings" => $globalSetting, "vehicleValid" => $kendValid, ], ]); } function checkMember(Request $request) { Log::info($request->input("transaksi")); $getMember = new geTransaksi(); $data = $getMember->TransaksiMember($request->input("transaksi")); if (!$data) { return response()->json([ "success" => false, "message" => "Transaksi member tidak ditemukan", ]); } return response()->json([ "success" => true, "data" => $data, ]); } function transaksiInside(Request $request) { Log::info("Transaksi di input : " . $request->input("transaksi")); $gateOut = $request->input("idpintu"); $vehicle = $request->input("kendaraan"); $licensePlate = $request->input("platNomer"); $gettransaksi = new geTransaksi(); $dateNow = Carbon::now()->format("Y-m-d HH:mm:ss"); Log::info("Kendaraan di pilih : " . $vehicle); $Transaksi = $gettransaksi->TransaksiParkir($request->input("transaksi")); if (!$Transaksi) { Log::info("Transaksi tidak ditemukan : " . json_encode($Transaksi)); return response()->json([ "success" => false, "message" => "Transaksi tidak ditemukan", ]); } Log::info("Transaksi ditemukan : " . json_encode($Transaksi)); $waktu_masuk = Str::of($Transaksi->waktu_masuk)->trim(); $timeInSecond = Carbon::parse($waktu_masuk); $timeOutSecond = Carbon::now(); $duration = $timeInSecond->diffInSeconds($timeOutSecond); $hitungTarif = new RateParkingService(); [$duration, $tarifParkir] = $hitungTarif->parkingTimeCalc($vehicle, $duration); $Transaksi["waktu_keluar"] = $timeOutSecond->format("Y-m-d H:i:s"); $Transaksi["bayar_keluar"] = (int) $tarifParkir; $Transaksi["id_pintu_keluar"] = $gateOut; Log::info("jam masuk : " . $timeInSecond); Log::info("jam keluar : " . $timeOutSecond); Log::info("Lama parkir dalam detik : " . $duration); Log::info("Tarif transaksi : " . $tarifParkir); return response()->json([ "success" => true, "data" => $Transaksi, ]); } // function transaksiProcess(Request $request) }