checkCourse($id); return $course; } /** * @param CourseModel $course * @param UserModel $user */ public function setCourseUser($course, $user) { $courseUserRepo = new CourseUserRepo(); $courseUser = $courseUserRepo->findCourseUser($course->id, $user->id); if ($courseUser) { $this->courseUser = $courseUser; $this->joinedCourse = true; } if ($course->market_price == 0) { $this->ownedCourse = true; } elseif ($course->vip_price == 0 && $user->vip == 1) { $this->ownedCourse = true; } elseif ($courseUser) { $sourceTypes = [ CourseUserModel::SOURCE_CHARGE, CourseUserModel::SOURCE_IMPORT, ]; $caseA = $courseUser->deleted == 0; $caseB = $courseUser->expiry_time > time(); $caseC = in_array($courseUser->source_type, $sourceTypes); if ($caseA && $caseB && $caseC) { $this->ownedCourse = true; } } } }