69 lines
1.4 KiB
PHP
69 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use App\Helpers\Numeric;
|
|
use EloquentFilter\Filterable;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class Order extends Model
|
|
{
|
|
use Filterable;
|
|
|
|
public const STATUS_PENDING = 0; // 待付款
|
|
public const STATUS_PAID = 1; // 已付款
|
|
public const STATUS_COMPLETED = 9; // 已完成
|
|
public const STATUS_CANCELLED = 10; // 已取消
|
|
|
|
/**
|
|
* @var array
|
|
*/
|
|
protected $attributes = [
|
|
'reduced_amount' => 0,
|
|
'status' => self::STATUS_PENDING,
|
|
];
|
|
|
|
/**
|
|
* @var array
|
|
*/
|
|
protected $fillable = [
|
|
'user_id',
|
|
'sn',
|
|
'coupon_disount_amount',
|
|
'vip_disount_amount',
|
|
'reduced_amount',
|
|
'shipping_fee',
|
|
'products_total_amount',
|
|
'total_amount',
|
|
'note',
|
|
'remark',
|
|
'pay_sn',
|
|
'pay_way',
|
|
'pay_at',
|
|
'consignee_name',
|
|
'consignee_telephone',
|
|
'consignee_zone',
|
|
'consignee_address',
|
|
'status',
|
|
'completed_at',
|
|
];
|
|
|
|
/**
|
|
* 属于此订单的商品
|
|
*/
|
|
public function products()
|
|
{
|
|
return $this->hasMany(OrderProduct::class);
|
|
}
|
|
|
|
/**
|
|
* 获取订单支付金额
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getTotalAmountFormatAttribute()
|
|
{
|
|
return Numeric::trimTrailingZero(bcdiv($this->attributes['total_amount'], 100, 2));
|
|
}
|
|
}
|