更新代码
This commit is contained in:
136
app/Models/SellerLesson.php
Normal file
136
app/Models/SellerLesson.php
Normal file
@@ -0,0 +1,136 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Models\SellerLessonLog;
|
||||
use Auth;
|
||||
use RuLong\Order\Contracts\Orderable;
|
||||
use RuLong\Panel\Models\Storage;
|
||||
|
||||
class SellerLesson extends Model implements Orderable
|
||||
{
|
||||
protected $dates = [
|
||||
'start_at',
|
||||
'end_at',
|
||||
];
|
||||
|
||||
public function organ()
|
||||
{
|
||||
return $this->belongsTo(Seller::class, 'seller_id', 'id')->withDefault();
|
||||
}
|
||||
|
||||
public function storage()
|
||||
{
|
||||
return $this->belongsTo(Storage::class)->withDefault();
|
||||
}
|
||||
|
||||
public function category()
|
||||
{
|
||||
return $this->belongsTo(Category::class)->withDefault();
|
||||
}
|
||||
|
||||
protected function getStatusTextAttribute()
|
||||
{
|
||||
if ($this->status == 1) {
|
||||
if ($this->start_at->timestamp > time()) {
|
||||
return "<span style='color:blue'>还没开始</span>";
|
||||
} elseif ($this->end_at->timestamp < time()) {
|
||||
return "<span style='color:yellow'>已经结束</span>";
|
||||
}
|
||||
return "<span style='color:green'>正常</span>";
|
||||
|
||||
} else {
|
||||
return "<span style='color:red'>关闭</span>";
|
||||
}
|
||||
}
|
||||
|
||||
public function logs()
|
||||
{
|
||||
return $this->HasMany(SellerLessonLog::class, 'lesson_id', 'id');
|
||||
}
|
||||
|
||||
public function getTitle()
|
||||
{
|
||||
return $this->title;
|
||||
}
|
||||
|
||||
public function getPrice()
|
||||
{
|
||||
return $this->price;
|
||||
}
|
||||
|
||||
public function getScore()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function getStock()
|
||||
{
|
||||
return $this->stock;
|
||||
}
|
||||
|
||||
public function getSellerPrice()
|
||||
{
|
||||
return $this->price;
|
||||
}
|
||||
|
||||
public function deductStock($stock)
|
||||
{
|
||||
$this->decrement('stock', $stock);
|
||||
}
|
||||
|
||||
public function addStock($stock)
|
||||
{
|
||||
$this->increment('stock', $stock);
|
||||
}
|
||||
|
||||
public function getStorage()
|
||||
{
|
||||
return $this->storage;
|
||||
}
|
||||
|
||||
/**
|
||||
* 可报名
|
||||
* @return boolean
|
||||
*/
|
||||
public function canCart(): bool
|
||||
{
|
||||
return Cart::where('user_id', Auth::id())->where('lesson_id', $this->id)->count();
|
||||
}
|
||||
|
||||
protected function getCanCartTextAttribute()
|
||||
{
|
||||
return $this->canCart();
|
||||
}
|
||||
|
||||
//是否已购买
|
||||
public function getBuyTextAttribute()
|
||||
{
|
||||
return $this->logs()->where('lesson_id', $this->id)->where('status', 1)->where('user_id', Auth::id())->count() ?? 0;
|
||||
}
|
||||
|
||||
//是否已购买
|
||||
public function getButtonTextAttribute()
|
||||
{
|
||||
if ($this->buy_text) {
|
||||
return "学习中";
|
||||
} elseif ($this->canCart()) {
|
||||
return "已报名";
|
||||
} else {
|
||||
return "立即报名";
|
||||
}
|
||||
}
|
||||
|
||||
//是否已购买
|
||||
public function getButtonValueAttribute()
|
||||
{
|
||||
if ($this->buy_text) {
|
||||
return 1;
|
||||
} elseif ($this->canCart()) {
|
||||
return 2;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user