|
|
@@ -8,10 +8,12 @@ use App\Commodity;
|
|
|
use App\Order;
|
|
|
use App\OrderPackage;
|
|
|
use App\OrderPackageCommodities;
|
|
|
+use App\Services\UserService;
|
|
|
use App\Traits\ModelSearchWay;
|
|
|
use App\User;
|
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
|
use Illuminate\Http\Request;
|
|
|
+use Illuminate\Support\Carbon;
|
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
|
|
class OrderTrackFilters
|
|
|
@@ -58,12 +60,11 @@ class OrderTrackFilters
|
|
|
public function afterApply()
|
|
|
{
|
|
|
if(isset($this->params['data']))
|
|
|
- $this->id($this->params['data']);
|
|
|
-
|
|
|
+ $this->id(explode(',',$this->params['data']));
|
|
|
|
|
|
// 货主
|
|
|
$user = Auth::user();
|
|
|
- $owner_ids = $user ? app('UserService')->getPermittingOwnerIds($user) : [];
|
|
|
+ $owner_ids = $user ? app(UserService::class)->getPermittingOwnerIds($user) : [];
|
|
|
if (isset($this->params['owner_id'])) {
|
|
|
$ownerIds = explode(",", $this->params['owner_id']);
|
|
|
$owner_ids = array_intersect($owner_ids, $ownerIds);
|
|
|
@@ -71,28 +72,28 @@ class OrderTrackFilters
|
|
|
$this->ownerId($owner_ids);
|
|
|
}
|
|
|
|
|
|
- public function getCommodityQuery()
|
|
|
+ public function getCommodityQuery(): Builder
|
|
|
{
|
|
|
if(!$this->commodityQuery)
|
|
|
$this->commodityQuery = Commodity::query()->selectRaw('id');
|
|
|
return $this->commodityQuery;
|
|
|
}
|
|
|
|
|
|
- public function getOrderPackageCommodityQuery()
|
|
|
+ public function getOrderPackageCommodityQuery(): Builder
|
|
|
{
|
|
|
if(!$this->orderPackageCommodityQuery)
|
|
|
$this->orderPackageCommodityQuery = OrderPackageCommodities::query()->selectRaw('id');
|
|
|
return $this->orderPackageCommodityQuery;
|
|
|
}
|
|
|
|
|
|
- public function getOrderPackageQuery()
|
|
|
+ public function getOrderPackageQuery(): Builder
|
|
|
{
|
|
|
if(!$this->orderPackageQuery)
|
|
|
$this->orderPackageQuery = OrderPackage::query()->selectRaw('id');
|
|
|
return $this->orderPackageQuery;
|
|
|
}
|
|
|
|
|
|
- public function getOrderQuery()
|
|
|
+ public function getOrderQuery(): Builder
|
|
|
{
|
|
|
if(!$this->orderQuery)
|
|
|
$this->orderQuery = Order::query()->selectRaw('id');
|
|
|
@@ -101,75 +102,80 @@ class OrderTrackFilters
|
|
|
|
|
|
public function client_code($client_code)
|
|
|
{
|
|
|
- $this->searchWay($this->queryBuilder,$client_code,'Order_Trackings.Order_Client_Code');
|
|
|
+ $this->searchWay($this->queryBuilder,$client_code,'order_trackings.order_client_code');
|
|
|
}
|
|
|
|
|
|
public function order_client_code_wms($order_client_code_wms)
|
|
|
{
|
|
|
- $this->searchWay($this->queryBuilder,$order_client_code_wms,'Order_Trackings.Order_Client_Code_WMS');
|
|
|
+ $this->searchWay($this->queryBuilder,$order_client_code_wms,'order_trackings.order_client_code_wms');
|
|
|
}
|
|
|
|
|
|
public function logistic_id($logistic_id)
|
|
|
{
|
|
|
- $this->queryBuilder->where('Order_Trackings.Logistic_Id',$logistic_id);
|
|
|
+ $this->queryBuilder->where('order_trackings.logistic_id',$logistic_id);
|
|
|
}
|
|
|
|
|
|
public function client($client)
|
|
|
{
|
|
|
- $this->queryBuilder->where('Order_Trackings.Client','like',$client.'%');
|
|
|
+ $this->queryBuilder->where('order_trackings.client','like',$client.'%');
|
|
|
}
|
|
|
|
|
|
public function web_order_number($web_order_number)
|
|
|
{
|
|
|
- $this->queryBuilder->where('Order_Trackings.Web_Order_Number','like',$web_order_number.'%');
|
|
|
+ $this->searchWay($this->queryBuilder,$web_order_number,'order_trackings.web_order_number');
|
|
|
}
|
|
|
|
|
|
public function sku($sku)
|
|
|
{
|
|
|
- $this->getCommodityQuery()->selectRaw('id')->where('sku',$sku);
|
|
|
- $this->getOrderPackageCommodityQuery()->selectRaw('id')->where('commodity_id',$this->getCommodityQuery());
|
|
|
+ $this->searchWay($this->getCommodityQuery(),$sku,'sku');
|
|
|
+ $this->getOrderPackageCommodityQuery()->whereIn('commodity_id',$this->getCommodityQuery());
|
|
|
}
|
|
|
|
|
|
public function logistic_number($logistic_number)
|
|
|
{
|
|
|
- $this->getOrderPackageQuery()->where('logistic_number',$logistic_number);
|
|
|
+ $this->searchWay($this->getOrderPackageQuery(),$logistic_number,'logistic_number');
|
|
|
}
|
|
|
|
|
|
public function remark($remark)
|
|
|
{
|
|
|
- $this->queryBuilder->where('Order_Trackings.Remark','like','%'.$remark.'%');
|
|
|
+ $this->queryBuilder->where('order_trackings.remark','like','%'.$remark.'%');
|
|
|
+ if(isset($this->params['remark_addtime'])){
|
|
|
+ $this->queryBuilder->where('order_trackings.created_at','>',Carbon::now()->subDays($this->params['remark_addtime']));
|
|
|
+ }else{
|
|
|
+ $this->queryBuilder->where('order_trackings.created_at','>=',Carbon::now()->subDays(15));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public function id($id)
|
|
|
{
|
|
|
- if(is_array($id))$this->queryBuilder->whereIn('Order_Trackings.Remark.id',$id);
|
|
|
- $this->queryBuilder->where('Order_Trackings.Remark.id',$id);
|
|
|
+ if(is_array($id))$this->queryBuilder->whereIn('order_trackings.id',$id);
|
|
|
+ else $this->queryBuilder->where('order_trackings.id',$id);
|
|
|
}
|
|
|
|
|
|
public function ownerId($ids)
|
|
|
{
|
|
|
- $this->getOrderQuery()->whereIn('Orders.owner_id',$ids);
|
|
|
+ $this->getOrderQuery()->whereIn('orders.owner_id',$ids);
|
|
|
}
|
|
|
|
|
|
|
|
|
public function start_at($start_at)
|
|
|
{
|
|
|
- $this->queryBuilder->where('Order_Trackings.Pick_Up_At','>=',$start_at.' 00:00:00');
|
|
|
+ $this->queryBuilder->where('order_trackings.pick_up_at','>=',$start_at.' 00:00:00');
|
|
|
}
|
|
|
|
|
|
public function end_at($end_at)
|
|
|
{
|
|
|
- $this->queryBuilder->where('Order_Trackings.Pick_Up_At','<=',$end_at.' 23:59:59');
|
|
|
+ $this->queryBuilder->where('order_trackings.pick_up_at','<=',$end_at.' 23:59:59');
|
|
|
}
|
|
|
|
|
|
public function start_planning_sent_at($start_planning_sent_at)
|
|
|
{
|
|
|
- $this->queryBuilder->where('Order_Trackings.Planning_Sent_At','>=',$start_planning_sent_at.' 00:00:00');
|
|
|
+ $this->queryBuilder->where('order_trackings.planning_sent_at','>=',$start_planning_sent_at.' 00:00:00');
|
|
|
}
|
|
|
|
|
|
public function end_planning_sent_at($end_planning_sent_at)
|
|
|
{
|
|
|
- $this->queryBuilder->where('Order_Trackings.Planning_Sent_At','<=',$end_planning_sent_at.' 23:59:59');
|
|
|
+ $this->queryBuilder->where('order_trackings.planning_sent_at','<=',$end_planning_sent_at.' 23:59:59');
|
|
|
}
|
|
|
|
|
|
public function beforeApply()
|