1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-28 05:11:39 +08:00
xiaochong0302 cf5e50f402 增加第三方登录设计
整理代码
2020-04-16 19:29:09 +08:00

77 lines
1.6 KiB
PHP

<?php
namespace App\Services\Frontend;
use App\Models\Course as CourseModel;
use App\Models\CourseUser as CourseUserModel;
use App\Models\User as UserModel;
use App\Repos\CourseUser as CourseUserRepo;
use App\Validators\Course as CourseValidator;
trait CourseTrait
{
/**
* @var bool
*/
protected $ownedCourse = false;
/**
* @var bool
*/
protected $joinedCourse = false;
/**
* @var CourseUserModel
*/
protected $courseUser;
public function checkCourse($id)
{
$validator = new CourseValidator();
return $validator->checkCourse($id);
}
/**
* @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;
}
}
}
}