You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.4 KiB
66 lines
1.4 KiB
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
use App\Service\OrderStatus as Status;
|
|
|
|
class Order extends BaseModel
|
|
{
|
|
use HasFactory, SoftDeletes;
|
|
protected $guarded = ['created_at', 'updated_at']; //不可批量赋值的属性
|
|
|
|
public function getCouponIdAttribute($value)
|
|
{
|
|
return explode(',', $value);
|
|
}
|
|
|
|
public function getStatusAttribute($value)
|
|
{
|
|
$this->append('status_text');
|
|
return $value;
|
|
}
|
|
|
|
public function getStatusTextAttribute()
|
|
{
|
|
$status_text = [
|
|
Status::CANCEL => '已取消',
|
|
Status::UNPAID => '待付款',
|
|
Status::PAY_EARNEST => '已付定金',
|
|
Status::PAID => '已付款',
|
|
Status::PAY_RETAINAGE => '已付尾款',
|
|
Status::REFUNDING => '退款中',
|
|
Status::REFUNDED => '已退款',
|
|
Status::SUCCESS => '已完成',
|
|
];
|
|
return $status_text[$this->status] ?? '未知';
|
|
}
|
|
|
|
//退款信息
|
|
public function getRefundInfoAttribute($value)
|
|
{
|
|
$value = $value ? json_decode($value, true) : [];
|
|
if (!empty($value['pictures']) && is_array($value['pictures'])) {
|
|
foreach ($value['pictures'] as &$v) {
|
|
$v = $this->host . $v;
|
|
}
|
|
}
|
|
return $value ?? [];
|
|
}
|
|
|
|
public function agentProduct()
|
|
{
|
|
return $this->belongsTo(AgentProduct::class);
|
|
}
|
|
|
|
public function product()
|
|
{
|
|
return $this->belongsTo(Product::class);
|
|
}
|
|
|
|
public function coupon()
|
|
{
|
|
return $this->belongsTo(Coupon::class);
|
|
}
|
|
}
|