love_php/app/Models/Course/Course.php
2026-04-02 09:20:51 +08:00

87 lines
2.6 KiB
PHP

<?php
namespace App\Models\Course;
use App\Contracts\Collageable;
use App\Contracts\Previewable;
use App\Models\Course\UserCourses;
use App\Models\Course\CourseVideo;
use App\Models\MerchantAccount;
use App\Traits\CanCollage;
use App\Traits\HasPreviews;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use App\Contracts\Logable;
use App\Traits\Haslog;
use Actuallymab\LaravelComment\HasComments;
use Actuallymab\LaravelComment\Contracts\Commentable;
use App\Models\Live\Anchor;
class Course extends Model implements Logable,Commentable,Previewable,Collageable
{
use \Conner\Tagging\Taggable;
use Haslog;
use HasComments, HasPreviews;
use CanCollage;
protected $fillable = [];
protected $guarded = [];
use SoftDeletes;
//购买该课程的会员
public function UserCourse()
{
return $this->hasMany(UserCourses::class)->where('status',1)->select('user_id','course_id')->orderby('id','desc')->limit(3);
}
public function member()
{
return $this->hasOne(UserCourses::class,'course_id','id');
}
public function anchor()
{
return $this->hasOne(Anchor::class,'m_id','merchant_id');
}
//购买该课程的会员
public function BusinessUserCourse()
{
return $this->hasMany(UserCourses::class)->where('status',1)->select('open_id','course_id')->orderby('id','desc')->limit(3);
}
//课程目录
public function videos()
{
return $this->hasMany(CourseVideo::class)
->select('id','course_id','title','url','short_description','original_desc','render_desc','duration','view_num','aliyun_video_id','thumb','free_play','ppt_name','ppt_url','price')
->orderBy('free_play','desc')
->orderBy('sort','desc')
->orderBy('id','asc');
}
//课程老师信息
public function account(){
return $this->hasOne(MerchantAccount::class,'openid','open_id')->select('mobile','openid','qr_code','share_icon','share_title','share_subtitle');
}
//课程学员信息
// public function member(){
// return $this->hasOne(Viewer::class,'');
// }
public function getThumbAttribute($value)
{
if ($this->merchant_id == 491) {
if ($value) {
if (!strpos('local-pictures', $value) && !strpos($value, 'x-oss-process')) {
return $value . Config('image.watermark');
} else {
return $value;
}
} else {
return $value;
}
}else{
return $value;
}
}
}