108 lines
2.4 KiB
PHP
108 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace App\Models\Traits;
|
|
|
|
use App\Models\Order;
|
|
use App\Models\Salesman;
|
|
use Carbon\Carbon;
|
|
|
|
/**
|
|
* 订单数据作用域
|
|
*/
|
|
trait OrderHasScopes
|
|
{
|
|
|
|
/**
|
|
* 未支付
|
|
* @Author:<C.Jason>
|
|
* @Date:2019-04-15T13:43:44+0800
|
|
*/
|
|
public function scopeUnpaid($query)
|
|
{
|
|
return $query->where('state', Order::ORDER_UNPAY)->where('created_at', '>', Carbon::now()->subMinutes(config('aslong_order.auto_cancel_order')));
|
|
}
|
|
|
|
/**
|
|
* 待发货
|
|
* @Author:<C.Jason>
|
|
* @Date:2019-04-15T13:43:55+0800
|
|
*/
|
|
public function scopeUnDeliver($query)
|
|
{
|
|
return $query->whereIn('state', [Order::ORDER_PAID, Order::ORDER_DELIVER]);
|
|
}
|
|
|
|
/**
|
|
* 配送中
|
|
* @Author:<C.Jason>
|
|
* @Date:2019-04-15T13:44:20+0800
|
|
*/
|
|
public function scopeDelivered($query)
|
|
{
|
|
return $query->where('state', Order::ORDER_DELIVERED);
|
|
}
|
|
|
|
/**
|
|
* 已签收
|
|
* @Author:<C.Jason>
|
|
* @Date:2019-04-15T13:44:34+0800
|
|
*/
|
|
public function scopeSigned($query)
|
|
{
|
|
return $query->where('state', Order::ORDER_SIGNED);
|
|
}
|
|
|
|
/**
|
|
* 已完成
|
|
* @Author:<C.Jason>
|
|
* @Date:2019-04-15T13:45:41+0800
|
|
*/
|
|
public function scopeCompleted($query)
|
|
{
|
|
return $query->where('state', Order::ORDER_COMPLETED);
|
|
}
|
|
|
|
/**
|
|
* 已取消
|
|
* @Author:<C.Jason>
|
|
* @Date:2019-04-15T13:45:49+0800
|
|
*/
|
|
public function scopeCanceled($query)
|
|
{
|
|
return $query->whereIn('state', [Order::ORDER_CLOSED, Order::ORDER_CANCEL]);
|
|
}
|
|
|
|
/**
|
|
* 已退款
|
|
* @Author:<C.Jason>
|
|
* @Date:2019-04-15T13:45:55+0800
|
|
*/
|
|
public function scopeRefunded($query)
|
|
{
|
|
return $query->where('state', Order::REFUND_COMPLETED);
|
|
}
|
|
|
|
/**
|
|
* 售后订单
|
|
*/
|
|
public function scopeAllRefund($query)
|
|
{
|
|
return $query->whereIn('state', [Order::REFUND_APPLY, Order::REFUND_AGREE, Order::REFUND_REFUSE, Order::REFUND_PROCESS, Order::REFUND_COMPLETED]);
|
|
}
|
|
|
|
/**
|
|
* @Notes 业务员的订单
|
|
* @author 朝霞
|
|
* @DateTime 2019/5/9 10:39 AM
|
|
* @param $query
|
|
* @param int $salesmanID
|
|
* @return mixed
|
|
*/
|
|
public function scopeSalesman($query, int $salesmanID)
|
|
{
|
|
$salesman = Salesman::find($salesmanID);
|
|
$headIds = $salesman->heads()->pluck('id');
|
|
return $query->whereIn('head_id', $headIds);
|
|
}
|
|
}
|