diff --git a/app/Models/OrderPackage.php b/app/Models/OrderPackage.php index 3f732abe..8119654f 100644 --- a/app/Models/OrderPackage.php +++ b/app/Models/OrderPackage.php @@ -44,6 +44,14 @@ class OrderPackage extends Model 'remarks', 'status', 'is_failed', 'checked_at', ]; + /** + * 未签收的包裹 + */ + public function scopeUnchecked($query) + { + return $query->whereNotIn('status', [static::STATUS_CHECK, static::STATUS_AUTOCHECK]); + } + /** * 订单 */ diff --git a/app/Services/OrderService.php b/app/Services/OrderService.php index 485a866f..35ae8cd4 100644 --- a/app/Services/OrderService.php +++ b/app/Services/OrderService.php @@ -672,12 +672,12 @@ class OrderService public function checkOrder(Order $order) { //获取订单的未作废未签收包裹 - $packages = $order->packages()->where('is_failed', false)->whereNotIn('status', [OrderPackage::STATUS_CHECK, OrderPackage::STATUS_AUTOCHECK])->get(); + $packages = $order->packages()->unchecked()->where('is_failed', false)->get(); foreach ($packages as $package) { $this->checkPackage($package, OrderPackage::STATUS_AUTOCHECK); } if ($order->isShipped() - && OrderPackage::where('order_id', $order->id)->whereNotIn('status', [OrderPackage::STATUS_CHECK, OrderPackage::STATUS_AUTOCHECK])->doesntExist() + && OrderPackage::where('order_id', $order->id)->unchecked()->doesntExist() ) { //更新订单完成 $order->update([ @@ -700,7 +700,7 @@ class OrderService $this->checkPackage($package, $status); //如果订单是发货完成状态,且所有包裹都签收了 if ($package->order->isShipped() - && OrderPackage::where('order_id', $package->order_id)->whereNotIn('status', [OrderPackage::STATUS_CHECK, OrderPackage::STATUS_AUTOCHECK])->doesntExist() + && OrderPackage::where('order_id', $package->order_id)->unchecked()->doesntExist() ) { //更新订单完成 $package->order->update([