public function checkTaskAvaliable() { $tasks_users = \App\UserTask::whereIn('status', ['active', 'available'])->get(); foreach ($tasks_users as $task_user) { $task = \App\Task::whereId($task_user->id_task)->first(); $timer = explode(':', $task->timer); $data = $task_user->created_at; $data->addHours($timer[0]); $data->addMinutes($timer[1]); if (!Carbon::now()->between($task_user->created_at, $data)) { $task_user->status = 'timeout'; $task_user->save(); } else { $data->subMinutes(9); $data2 = $data->copy(); $data2->subMinutes(1); if (Carbon::now()->between($data2, $data) && $task_user->status != 'available') { $user = \App\Users::whereId($task_user->id_user)->first(); $MESSAGE = 'You have less than 10 minutes to complete the task'; $url = 'https://api.parse.com/1/push'; $data = array('where' => ['email' => ['$in' => [$user->email]]], 'data' => array('alert' => $task->name, 'title' => $MESSAGE)); $_data = json_encode($data); $headers = array('X-Parse-Application-Id: ' . $this->APPLICATION_ID, 'X-Parse-REST-API-Key: ' . $this->REST_API_KEY, 'Content-Type: application/json', 'Content-Length: ' . strlen($_data)); $curl = curl_init($url); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $_data); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($curl); } } } return $this; }
public function getUserById($userId) { $result = Users::whereId($userId)->first(); return $result; }
public function get() { $this->_methodName = 'edit'; $this->resolveParams(); // TODO Сделать изменения для админов $this->checkAuth(); if (!Auth::checkAdmin()) { $user = Auth::user(); $count = DB::table('UserTask')->join('task', 'UserTask.id_task', '=', 'task.id')->where('UserTask.id_user', $user->id)->where('UserTask.status', 'done')->groupBy('id_user')->select(DB::raw('sum(point) as point'))->get(); if (count($count) > 0) { $sum = $count[0]->point; } else { $sum = 0; } $sum += $user->bonusPoint; $this->_arData['data'] = ['userId' => (int) $user->id, 'email' => $user->email, 'firstName' => $user->first_name, 'lastName' => $user->last_name, 'occupation' => $user->occupation, 'score' => $sum, 'avatar' => $user->avatar, 'city' => $user->city, 'street' => $user->street, 'birthday' => explode('-', $user->bithday)[2] . '.' . explode('-', $user->bithday)[1] . '.' . explode('-', $user->bithday)[0]]; } else { $arNeed = ['userId' => 'required|numeric']; $this->checkAttr($arNeed); $user = \App\Users::whereId($this->_request_params['userId'])->first(); if (!is_null($user)) { $users = \App\Users::find($this->_request_params['userId']); $count = DB::table('UserTask')->join('task', 'UserTask.id_task', '=', 'task.id')->where('UserTask.id_user', $this->_request_params['userId'])->where('UserTask.status', 'done')->groupBy('id_user')->select(DB::raw('sum(point) as point'))->get(); if (count($count) > 0) { $sum = $count[0]->point; } else { $sum = 0; } $this->_arData['data'] = ['userId' => (int) $user->id, 'email' => $user->email, 'firstName' => $user->first_name, 'lastName' => $user->last_name, 'occupation' => $user->occupation, 'city' => $user->city, 'avatar' => $user->avatar, 'score' => (int) $sum + (int) $user->bonusPoint, 'street' => $user->street, 'birthday' => explode('-', $user->bithday)[2] . '.' . explode('-', $user->bithday)[1] . '.' . explode('-', $user->bithday)[0]]; } } return $this; }