Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
forbidals
/
gambling
/
app
/
Http
/
Controllers
:
CronController.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace App\Http\Controllers; use App\Constants\Status; use App\Lib\CurlRequest; use App\Models\CronJob; use App\Models\CronJobLog; use App\Models\GameLog; use App\Models\Transaction; use App\Models\User; use Carbon\Carbon; class CronController extends Controller { public function cron() { $general = gs(); $general->last_cron = now(); $general->save(); $crons = CronJob::with('schedule'); if (request()->alias) { $crons->where('alias', request()->alias); } else { $crons->where('next_run', '<', now())->where('is_running', Status::YES); } $crons = $crons->get(); foreach ($crons as $cron) { $cronLog = new CronJobLog(); $cronLog->cron_job_id = $cron->id; $cronLog->start_at = now(); if ($cron->is_default) { $controller = new $cron->action[0]; try { $method = $cron->action[1]; $controller->$method(); } catch (\Exception $e) { $cronLog->error = $e->getMessage(); } } else { try { CurlRequest::curlContent($cron->url); } catch (\Exception $e) { $cronLog->error = $e->getMessage(); } } $cron->last_run = now(); $cron->next_run = now()->addSeconds((int) $cron->schedule->interval); $cron->save(); $cronLog->end_at = $cron->last_run; $startTime = Carbon::parse($cronLog->start_at); $endTime = Carbon::parse($cronLog->end_at); $diffInSeconds = $startTime->diffInSeconds($endTime); $cronLog->duration = $diffInSeconds; $cronLog->save(); } if (request()->target == 'all') { $notify[] = ['success', 'Cron executed successfully']; return back()->withNotify($notify); } if (request()->alias) { $notify[] = ['success', keyToTitle(request()->alias) . ' executed successfully']; return back()->withNotify($notify); } } public function incompleteGame() { $games = GameLog::where('status', Status::DISABLE)->get(); $general = gs(); $general->last_cron = now(); $general->save(); foreach ($games as $game) { if ($game->created_at->addMinutes(2) > now()) { continue; } $user = $game->user; $user->balance += $game->invest; $user->save(); $transaction = new Transaction(); $transaction->user_id = $user->id; $transaction->amount = $game->invest; $transaction->charge = 0; $transaction->trx_type = '+'; $transaction->details = 'In-complete game invest return'; $transaction->remark = 'invest_return'; $transaction->trx = getTrx(); $transaction->post_balance = $user->balance; $transaction->save(); $game->status = 2; $game->save(); } } }