1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-23 11:58:41 +08:00
2020-01-30 16:51:10 +08:00

81 lines
1.6 KiB
PHP

<?php
namespace App\Services\Frontend;
use App\Caches\CourseUser as CourseUserCache;
use App\Validators\Course as CourseValidator;
trait CourseTrait
{
public function checkCourse($id)
{
$validator = new CourseValidator();
$course = $validator->checkCourse($id);
return $course;
}
public function checkCourseCache($id)
{
$validator = new CourseValidator();
$course = $validator->checkCourseCache($id);
return $course;
}
/**
* @param $courseId
* @param $userId
* @return \App\Models\CourseUser|null
*/
public function getCourseUser($courseId, $userId)
{
if (!$courseId || !$userId) {
return null;
}
$key = "{$courseId}_{$userId}";
$courseUserCache = new CourseUserCache();
$courseUser = $courseUserCache->get($key);
return $courseUser;
}
/**
* @param \App\Models\Course $course
* @param \App\Models\User $user
* @return bool
*/
public function ownedCourse($course, $user)
{
if ($course->market_price == 0) {
return true;
}
if ($course->vip_price == 0 && $user->vip == 1) {
return true;
}
if ($user->id == 0) {
return false;
}
$courseUser = $this->getCourseUser($course->id, $user->id);
$caseAOk = $courseUser->deleted == 0;
$caseBOk = $courseUser->expire_time < time();
if ($courseUser && $caseAOk && $caseBOk) {
return true;
}
return false;
}
}