1
0
Files
GongShangLian/app/Models/Traits/OrderHasScopes.php
2020-08-06 15:36:28 +08:00

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);
}
}