UnknownSec Bypass
403
:
/
mnt
/
lmsestudio-instance-vol002
/
lms_4c3004e00d4c
/
app
/
Services
/
Environment
/ [
drwxr-xr-x
]
Menu
Upload
Mass depes
Mass delete
Terminal
Info server
About
name :
StudentService.php
<?php namespace EstudioLMS\Services\Environment; use Carbon\Carbon; use EstudioLMS\Helpers\GetdataRecords; use EstudioLMS\Repositories\Courses\Course\CourseResourceRepository; use EstudioLMS\Repositories\Student\CourseHistoryInterface; /** * Class StudentService * @package EstudioLMS\Services\Environment */ class StudentService { /** * @var CourseService */ private $courseService; /** * @var dataRecords */ private $dataRecords; /** * @var QuizService */ private $quizService; /** * @var CourseResourceRepository */ private $courseResourceRepository; /** * @var CourseHistoryInterface */ private $courseHistory; /** * StudentService constructor. * Classe de serviço construída para suprir as necessidades da feature de assinaturas, e também para unificar * a forma de verificação dos resultados dos cursos e suas devidas solicitações, tanto para cursos de assinaturas, * quanto para cursos avulsos. * A classe foi construída, para manter a compatibilidade do sistema e dados atuais, sem ter a necessidade de * modificar classes e serviços já existentes, dedicados a cursos avulsos. * Em muitos momentos, tais classes, serviços e métodos serão chamdos em sequência. * @param CourseService $courseService * @param GetdataRecords $dataRecords $dataRecords * @param QuizService $quizService * @param CourseResourceRepository $courseResourceRepository * @param CourseHistoryInterface $courseHistory */ public function __construct( CourseService $courseService, GetdataRecords $dataRecords, QuizService $quizService, CourseResourceRepository $courseResourceRepository, CourseHistoryInterface $courseHistory ) { $this->courseService = $courseService; $this->dataRecords = $dataRecords; $this->quizService = $quizService; $this->courseResourceRepository = $courseResourceRepository; $this->courseHistory = $courseHistory; } /** * @param int $userdId * @param int $courseId * @return bool */ public function hasCompletedCourse(int $userdId, int $courseId) { $history = $this->courseHistory->findWhere([ ['user_id', '=', $userdId], ['course_id', '=', $courseId] ])->first(); if (!$history) { $this->courseHistory->create([ 'user_id' => $userdId, 'course_id' => $courseId, 'started_at' => Carbon::now(), 'completed_at' => null, 'approved' => 0 ]); return false; } else { if (!is_null($history->completed_at)) { return true; } else { if ($this->courseService->checkIfCourseHasCompletedByLessons($userdId, $courseId)) { $completedAt = $this->dataRecords->getLastRecordedLesson($userdId, $courseId); $approved = $this->wasApprovedInTheCourse($userdId, $courseId)['approved'] == 1 ? 1 : 0; if ($completedAt) { $history->completed_at = $completedAt->created_at; $history->approved = $approved; $history->save(); return true; } } return false; } } } /** * @param $userId * @param $courseId * @return mixed */ public function setCompleted($userId, $courseId) { return $this->courseHistory->setCompleted($userId, $courseId); } /** * @param int $userId * @param int $courseId * @return array */ public function wasApprovedInTheCourse(int $userId, int $courseId) { return $this->courseService->wasApprovedInTheCourse($userId, $courseId); } }
Copyright © 2026 - UnknownSec