save to codehub
This commit is contained in:
161
app/Http/Controllers/Website/YourActivityController.php
Normal file
161
app/Http/Controllers/Website/YourActivityController.php
Normal file
@@ -0,0 +1,161 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Website;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\ActivityMaster;
|
||||
use App\Models\SubscriptionMaster;
|
||||
use App\Models\ActivitySchedule;
|
||||
use App\Models\ActivityDay;
|
||||
use App\Models\Teacher;
|
||||
use App\Models\ManageFaq;
|
||||
use App\Models\LinkFaqActivityMasterIds;
|
||||
use App\Models\PastSession;
|
||||
use Carbon\Carbon;
|
||||
use DateTimeZone;
|
||||
use DateTime;
|
||||
use Auth;
|
||||
|
||||
use GuzzleHttp\Client;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Torann\GeoIP\Facades\GeoIP;
|
||||
use Spatie\TimeZone\GoogleTimeZone;
|
||||
|
||||
class YourActivityController extends Controller
|
||||
{
|
||||
public function index(Request $request){
|
||||
$data=[];
|
||||
$current_day = now()->format('Y-m-d'); // Get the current date in the format "YYYY-MM-DD"
|
||||
$user_data = Auth::user();
|
||||
$userIP = \Request::ip();
|
||||
|
||||
// $access_token = 'fb9b51b5a3bbd9';
|
||||
// $client = new IPinfo($access_token);
|
||||
// $ip_address = $userIP ;
|
||||
// $details = $client->getDetails($ip_address);
|
||||
|
||||
// dd($details);
|
||||
$response = Http::get("https://ipinfo.io/{$userIP}?token=fb9b51b5a3bbd9");
|
||||
$locationData = $response->json();
|
||||
$userTimeZone = $locationData['timezone'];
|
||||
|
||||
$user_data = Auth::user();
|
||||
$utm_source = $user_data->utm_source;
|
||||
$subscription_data = SubscriptionMaster::where('utm_plan',$utm_source)->first();
|
||||
$subscription_id = $subscription_data->id;
|
||||
$data['live_activity'] = ActivityDay::where('subscription_id', $subscription_id)
|
||||
->where('date', 'LIKE', "%$current_day%")
|
||||
->with('scheduleData', 'activityData')
|
||||
->get();
|
||||
// dd($data['live_activity']);
|
||||
|
||||
// dd($data['live_activity']);
|
||||
// if($data['live_activity']->isEmpty()){
|
||||
// $data['data'] = ['0'];
|
||||
// dd($data);
|
||||
// return view('website.pages.your_activity',compact('data'));
|
||||
// }else{
|
||||
if(!$data['live_activity']->isEmpty()){
|
||||
$timestamp = $data['live_activity'][0]['time'];
|
||||
// dd($timestamp);
|
||||
$gettimezone = $userTimeZone;
|
||||
// $datetime = "2016-02-01 00:00:01";
|
||||
// Target timezone based on the user's IP address
|
||||
$targetTimeZone = new DateTimeZone($userTimeZone);
|
||||
|
||||
// Create a DateTime object for the original timestamp in India timezone
|
||||
$given = new DateTime($timestamp, new DateTimeZone('Asia/Kolkata'));
|
||||
|
||||
// Set the target timezone
|
||||
$given->setTimezone($targetTimeZone);
|
||||
// $given = new DateTime($timestamp, new DateTimeZone($gettimezone));
|
||||
// $given->setTimezone(new DateTimeZone("UTC"));
|
||||
$output = $given->format("H:i");
|
||||
$data['live_activity'][0]['time']=$output;
|
||||
}
|
||||
$data['subscription_data'] = SubscriptionMaster::where('utm_plan',$utm_source)->first();
|
||||
// return $data;
|
||||
//past data
|
||||
$subscription_data = SubscriptionMaster::where('utm_plan',$utm_source)->first();
|
||||
$subscription_id = $subscription_data->id;
|
||||
|
||||
// dd($subscription_id);
|
||||
// Calculate the cutoff date (end date + 7 days)
|
||||
$activity_data = ActivityMaster::where('subscription_id', $subscription_id)->orderBy('end_date', 'desc')->first();
|
||||
// return $activity_data;
|
||||
// dd($activity_data);
|
||||
$end_date = $activity_data->end_date;
|
||||
// dd($end_date);
|
||||
$cutoffDate = Carbon::parse($end_date)->addDays(7)->toDateString();
|
||||
// dd($cutoffDate);
|
||||
// $desired_date = Carbon::createFromDate(2024, 1, 2);
|
||||
// $cutoffDate = $desired_date->format('Y-m-d');
|
||||
$current_date = Carbon::now()->format('Y-m-d');
|
||||
$data['data'] = [];
|
||||
// dd($cutoffDate);
|
||||
// Check if the current date is past the cutoff date
|
||||
if (Carbon::now()->toDateString() > $cutoffDate) {
|
||||
|
||||
$data['data'] = ['0'];
|
||||
// dd($data);
|
||||
return view('website.pages.your_activity',compact('data'));
|
||||
}
|
||||
|
||||
$data['past_activity'] = ActivityMaster::where('subscription_id', $subscription_id)->where('end_date','<',$cutoffDate)->with('teacher_data')->orderBy('start_date', 'desc')->first();
|
||||
// dd($data['past_activity']);
|
||||
if ($data['past_activity'] !== null) {
|
||||
$schedule_data = ActivitySchedule::where('activity_master_id', $data['past_activity']['id'])->with('past_data')->orderBy('start_date', 'asc')->get()->toArray();
|
||||
// dd($schedule_data);
|
||||
} else {
|
||||
$data['past_activity'] = [];
|
||||
$schedule_data = []; // Set an empty array when $data['past_activity'] is null
|
||||
}
|
||||
|
||||
|
||||
$data_schedule = [];
|
||||
foreach ($schedule_data as $k => $val){
|
||||
if (empty($val['past_data'])){
|
||||
continue;
|
||||
}else{
|
||||
$data_schedule[] = $val;
|
||||
}
|
||||
}
|
||||
|
||||
$data['past_activity']['schedule'] = $data_schedule;
|
||||
|
||||
|
||||
// $userIP = $request->ip();
|
||||
|
||||
// $response = Http::get("https://ipinfo.io/{$userIP}/json");
|
||||
// $locationData = $response->json();
|
||||
// // dd($locationData);
|
||||
// $userTimeZone = $locationData['timezone'];
|
||||
// // dd($userTimeZone);
|
||||
|
||||
// $timestamp = $data['live_activity'][0]->new_time; // Use square brackets to access elements
|
||||
// // dd()
|
||||
// $originalTime = Carbon::parse($timestamp,$userTimeZone);
|
||||
// $date = Carbon::createFromFormat('H:i:s', $timestamp, 'UTC');
|
||||
// $date->setTimezone($userTimeZone);
|
||||
// dd($date);
|
||||
// $userTime = $originalTime->copy();
|
||||
// $userTime->setTimezone($userTimeZone);
|
||||
// $userTimeFormatted = $userTime->format('H:i:s');
|
||||
// // dd($userTimeFormatted);
|
||||
// $data['live_activity'] = $data['live_activity']->map(function ($item) use ($userTimeZone) {
|
||||
// $timestamp = $item->new_time;
|
||||
// // $normalTime = Carbon::createFromFormat('H:i', $timestamp, $userTimeZone); // Replace 'your_timezone' with the actual timezone of the 'time' column
|
||||
// $normalTime = Carbon::parse($timestamp, $userTimeZone);
|
||||
// $convertedTime = $normalTime->setTimezone($userTimeZone); // Convert to the user's time zone
|
||||
// $item->new_time = $convertedTime->format('H:i'); // Update the 'time' value with the user's time zone in 'HH:mm' format
|
||||
// return $item;
|
||||
// })->toArray();
|
||||
|
||||
// echo "<pre>";
|
||||
// print_r($data['live_activity']);
|
||||
// exit;
|
||||
|
||||
return view('website.pages.your_activity',$data);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user