erp-backend/app/Models/Order.php
2026-04-01 17:07:04 +08:00

101 lines
2.5 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Order extends Model
{
use SoftDeletes;
protected $table = 'orders';
protected $fillable = [
'short_id',
'platform_order_sn',
'platform',
'shop_id',
'shop_name',
'order_time',
'payment_time',
'end_time',
'buyer_nick',
'receiver_name',
'receiver_phone',
'receiver_address',
'goods_amount',
'discount_amount',
'freight',
'total_amount',
'order_status',
'platform_status',
'audit_status',
'audit_comment',
'delivery_status',
'delivery_time',
'express_company',
'express_name',
'express_no',
'warehouse_id',
'warehouse_name',
'remark',
'match_status',
'sync_status',
'print_status',
'match_time',
'print_time',
'sync_time',
'audit_time',
];
protected $casts = [
'order_time' => 'datetime',
'payment_time' => 'datetime',
'delivery_time' => 'datetime',
'match_time' => 'datetime',
'print_time' => 'datetime',
'sync_time' => 'datetime',
'audit_time' => 'datetime',
];
/**
* 全局作用域:限制用户只能查看自己店铺的订单(测试用户除外)
*/
// protected static function booted()
// {
// static::addGlobalScope('user', function (Builder $builder) {
// // 当前用户已登录且为测试用户时,不限制订单访问
// if (auth()->check() && auth()->user()->isTestUser()) {
// return;
// }
//
// // 其他用户暂时无权限查看任何订单
// // 后续可根据 user_shop 中间表完善权限
// $builder->whereRaw('1 = 0');
// });
// }
public function items()
{
return $this->hasMany(OrderItem::class)->with('erpSku');
}
public function warehouse()
{
return $this->belongsTo(Warehouse::class);
}
public function deliveryRecord()
{
return $this->hasOne(DeliveryRecord::class);
}
/**
* 关联平台原始订单(使用平台订单号作为关联键)
*/
public function platformOrder()
{
return $this->belongsTo(PlatformOrder::class, 'platform_order_sn', 'platform_order_no');
}
}