Memperbaiki api
This commit is contained in:
parent
181f1cc236
commit
2ec7008f61
@ -9,6 +9,7 @@ use Tymon\JWTAuth\Facades\JWTFactory;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use App\Models\User;
|
||||
use Carbon\Carbon;
|
||||
use GuzzleHttp\Client;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
@ -19,6 +20,7 @@ use Laravolt\Indonesia\Models\City;
|
||||
use Laravolt\Indonesia\Models\District;
|
||||
use Laravolt\Indonesia\Models\Province;
|
||||
use Laravolt\Indonesia\Models\Village;
|
||||
use Pusher\Pusher;
|
||||
use Tymon\JWTAuth\Facades\JWTAuth;
|
||||
|
||||
|
||||
@ -120,26 +122,11 @@ class LoginApiController extends Controller
|
||||
$gender = $request->input('gender');
|
||||
$kode_kelurahan = $request->input('village_code');
|
||||
|
||||
// $ktpBase64 = $request->input('ktp');
|
||||
// $wajahBase64 = $request->input('wajah');
|
||||
|
||||
// if ($ktpBase64 && $wajahBase64) {
|
||||
// // Konversi string Base64 ke file gambar
|
||||
// $ktpFile = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $ktpBase64));
|
||||
// $wajahFile = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $wajahBase64));
|
||||
|
||||
// $foto_ktp = 'Foto-KTP-' . $nama_depan . '-' . $nama_belakang . '.jpg';
|
||||
// $foto_wajah = 'Foto-Wajah-' . $nama_depan . '-' . $nama_belakang . '.jpg';
|
||||
|
||||
// file_put_contents(public_path('storage/foto-ktp/' . $foto_ktp), $ktpFile);
|
||||
// file_put_contents(public_path('storage/foto-wajah/' . $foto_wajah), $wajahFile);
|
||||
// }
|
||||
|
||||
if ($request->hasFile('ktp') && $request->hasFile('wajah')) {
|
||||
$fileKtp = $request->file('ktp');
|
||||
$fileWajah = $request->file('wajah');
|
||||
$foto_ktp = $nama_depan.'-'.$nama_belakang. '.' . $fileKtp->getClientOriginalExtension();
|
||||
$foto_wajah = $nama_depan.'-'.$nama_belakang. '.' . $fileWajah->getClientOriginalExtension();
|
||||
$foto_ktp = 'Foto-KTP-'.$email. '.' . $fileKtp->getClientOriginalExtension();
|
||||
$foto_wajah = 'Foto-Wajah'.$email.'.' . $fileWajah->getClientOriginalExtension();
|
||||
$pathKtp = 'foto-ktp/' . $foto_ktp;
|
||||
$pathWajah = 'foto-wajah/' . $foto_wajah;
|
||||
|
||||
@ -149,48 +136,59 @@ class LoginApiController extends Controller
|
||||
|
||||
//OCR
|
||||
try {
|
||||
// $fotoKTP = public_path('storage/foto-ktp/' . $foto_ktp);
|
||||
// OCR
|
||||
$client = new Client();
|
||||
$response = $client->request('POST', 'http://localhost:8888/process-image', [
|
||||
'multipart' => [
|
||||
[
|
||||
'name' => 'image',
|
||||
'contents' => fopen(public_path('storage/foto-ktp/'.$foto_ktp), 'r'),
|
||||
'filename' => $foto_ktp,
|
||||
],
|
||||
],
|
||||
]);
|
||||
|
||||
// $image = Image::make($fotoKTP);
|
||||
$result = $response->getBody()->getContents();
|
||||
|
||||
// $image->greyscale(); // Convert to grayscale
|
||||
// $image->contrast(10); // Increase contrast, adjust the value as needed
|
||||
$lines = json_decode($result,true);
|
||||
|
||||
// $preprocessedfotoKTP = public_path('storage/preprocessed/preprocessed_image.jpg');
|
||||
// $image->save($preprocessedfotoKTP);
|
||||
$namaKTP = str_replace(' ','',strtolower($nama_depan.$nama_belakang));
|
||||
$nikKTP = $nik;
|
||||
$persentaseNama = 0;
|
||||
$persentaseNik = 0;
|
||||
|
||||
// $result = (new TesseractOCR($preprocessedfotoKTP))->run();
|
||||
foreach($lines['result'] as $line){
|
||||
$teks = str_replace(' ','',strtolower($line));
|
||||
$persentaseNamaSementara = 0;
|
||||
$persentaseNikSementara = 0;
|
||||
similar_text($teks,$namaKTP,$persentaseNamaSementara);
|
||||
similar_text($teks,$nikKTP,$persentaseNikSementara);
|
||||
|
||||
// (5) Normalize
|
||||
if($persentaseNamaSementara > 0){
|
||||
if($persentaseNamaSementara > $persentaseNama){
|
||||
$persentaseNama = $persentaseNamaSementara;
|
||||
}
|
||||
}
|
||||
|
||||
// $lines = explode("\n", $result);
|
||||
// $namaOCR = '';
|
||||
// $nikOCR = '';
|
||||
// $nikInputan = $nik;
|
||||
// $namaInputan = $nama_depan . ' ' . $nama_belakang;
|
||||
if($persentaseNikSementara > 0){
|
||||
if($persentaseNikSementara > $persentaseNik){
|
||||
$persentaseNik = $persentaseNikSementara;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// foreach ($lines as $line) {
|
||||
// // Mencari NIK
|
||||
// if (strpos($line, $nikInputan) !== false) {
|
||||
// $nikOCR = preg_replace('/[^0-9]/', '', $line);
|
||||
// }
|
||||
$persentase_kemiripan = ($persentaseNama + $persentaseNik)/2;
|
||||
|
||||
// // Mencari nama
|
||||
// if (strpos($line, $namaInputan) !== false) {
|
||||
// $namaOCR = trim(substr($line, strpos($line, ':') + 1));
|
||||
// }
|
||||
// }
|
||||
$status = 'Progress';
|
||||
|
||||
//Selesai
|
||||
|
||||
// $persentase_kemiripan = (similar_text($nikInputan, $nikOCR, $percent) + similar_text($namaOCR, $namaOCR, $percent)) / 2;
|
||||
// $status = 'Progress';
|
||||
|
||||
// if (similar_text($nikInputan, $nikOCR, $percent) >= 70 && similar_text($namaOCR, $namaOCR, $percent) >= 70) {
|
||||
// $status = 'Progress';
|
||||
// } else {
|
||||
// $status = 'Progress';
|
||||
// }
|
||||
if($status >= 50){
|
||||
$status = 'Finished';
|
||||
}else if($status <= 35){
|
||||
return response()->json([
|
||||
'status' => false,
|
||||
'message' => 'Sistem tidak dapat mendeteksi foto KTP. Kemungkinan foto tidak jelas atau buram, silahkan upload foto KTP yang jelas. Persentase kemiripan inputan : '.$persentase_kemiripan.'%'
|
||||
]);
|
||||
}
|
||||
|
||||
DB::beginTransaction();
|
||||
|
||||
@ -212,14 +210,35 @@ class LoginApiController extends Controller
|
||||
'gender' => $gender,
|
||||
'kode_kelurahan' => $kode_kelurahan,
|
||||
'remember_token' => Str::random(10),
|
||||
'status' => $status
|
||||
]);
|
||||
|
||||
DB::commit();
|
||||
|
||||
$options = [
|
||||
'cluster' => 'ap1',
|
||||
'useTLS' => true,
|
||||
];
|
||||
|
||||
$pusher = new Pusher('3e5bdc20dddd7fbc655e', 'f2274c37c616d29ff590', '1659859', $options);
|
||||
|
||||
$payload = [
|
||||
'service' => 'User',
|
||||
];
|
||||
|
||||
$pusher->trigger('chanel-update-notifikasi-untuk-admin', 'event-update-notifikasi-untuk-admin', $payload);
|
||||
|
||||
if($status == 'Finished'){
|
||||
return response()->json([
|
||||
'status' => true,
|
||||
'message' => 'Akun anda sudah terdaftar dan dapat digunakan',
|
||||
]);
|
||||
}else{
|
||||
return response()->json([
|
||||
'status' => true,
|
||||
'message' => 'Akun anda sudah terdaftar dan butuh verifikasi hingga maksimal 1 hari kerja',
|
||||
]);
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
|
||||
|
@ -182,8 +182,6 @@ class LoginController extends Controller
|
||||
$ktpBase64 = $request->request->get('ktp');
|
||||
$wajahBase64 = $request->request->get('wajah');
|
||||
|
||||
// $validatedData['email_verified_at'] = now();
|
||||
|
||||
if ($ktpBase64 && $wajahBase64) {
|
||||
// Konversi string Base64 ke file gambar
|
||||
$ktpFile = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $ktpBase64));
|
||||
|
@ -151,7 +151,7 @@ class PembeliController extends Controller
|
||||
'name' => $nama_barang,
|
||||
],
|
||||
[
|
||||
'id' => 'BA01',
|
||||
'id' => 'BA'.random_int(1,9),
|
||||
'price' => $total_keuntungan,
|
||||
'quantity' => 1,
|
||||
'name' => 'Biaya Admin',
|
||||
@ -894,7 +894,7 @@ class PembeliController extends Controller
|
||||
';
|
||||
}
|
||||
|
||||
if($row->status_transaksi == 'sent'){
|
||||
// if($row->status_transaksi == 'sent'){
|
||||
$html_code .= '
|
||||
<li><a class="dropdown-item" data-toggle="modal"
|
||||
data-target="#modalFinish"
|
||||
@ -902,7 +902,7 @@ class PembeliController extends Controller
|
||||
href="#">Selesaikan</a>
|
||||
</li>
|
||||
';
|
||||
}
|
||||
// }
|
||||
|
||||
$html_code .= '
|
||||
</ul>
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 194 KiB |
@ -59,11 +59,11 @@
|
||||
@include('user.transaction.pembeli.modal-end-transaction')
|
||||
@include('user.transaction.pembeli.modal-tracking')
|
||||
@include('user.transaction.pembeli.modal-keterangan-status')
|
||||
<script type="text/javascript" src="https://app.sandbox.midtrans.com/snap/snap.js"
|
||||
data-client-key="SB-Mid-client-lEMALcmIPviksRRe"></script>
|
||||
@endsection
|
||||
|
||||
@section('tambahan-js')
|
||||
<script type="text/javascript" src="https://app.sandbox.midtrans.com/snap/snap.js"
|
||||
data-client-key="SB-Mid-client-lEMALcmIPviksRRe"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
let listPembeli = $('#table-pembeli').DataTable({
|
||||
|
@ -20,18 +20,15 @@
|
||||
refund. Harap diminta kesadaran penuh anda sebelum memilih selesaikan transaksi atau
|
||||
ajukan
|
||||
komplain.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-4">
|
||||
<div class="col-12">
|
||||
<div class="activities">
|
||||
<div class="col-6 d-flex justify-content-center">
|
||||
<img src="{{ asset('assets/img/modal-end/approve.png') }}" style="width:100%;"
|
||||
|
||||
<div class="container">
|
||||
<div class="row justify-content-center d-flex">
|
||||
<div class="col-6">
|
||||
<img src="{{ asset('assets/img/modal-end/approve.png') }}" class="img-fluid"
|
||||
alt="approve">
|
||||
</div>
|
||||
<div class="col-6 d-flex justify-content-center">
|
||||
<img src="{{ asset('assets/img/modal-end/refund.png') }}" style="width:100%;"
|
||||
<div class="col-6">
|
||||
<img src="{{ asset('assets/img/modal-end/refund.png') }}" class="img-fluid"
|
||||
alt="refund">
|
||||
</div>
|
||||
</div>
|
||||
@ -39,6 +36,8 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer d-flex justify-content-center">
|
||||
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user