getPermittingOwnerIdsAttribute() : []; $query = OrderIssue::with(['log.user'=>function($query) use (&$queryParam){ if($queryParam['create_user_id'] ?? false){ $query->where('type','创建')->where('user_id',$queryParam['create_user_id']); } if($queryParam['end_user_id'] ?? false){ $query->where('type','完结')->where('user_id',$queryParam['end_user_id']); } },'order'])->whereHas('order',function($query) use (&$queryParam,$owner_ids) { if($queryParam['client_no'] ?? false){ $query->whereHas('client_no',$queryParam['client_no']); } if($queryParam['owner_id'] ?? false && in_array($queryParam['owner_id'],$owner_ids)){ $query->whereHas('owner_id',$queryParam['owner_id']); }else{ $query->whereIn('owner_id',$owner_ids); } }); unset($queryParam['create_user_id'],$queryParam['end_user_id'],$queryParam['client_no'],$queryParam['owner_id']); $columnQueryRules = [ 'create_start' => ['alias' => 'created_at', 'startDate' => ' 00:00:00'], 'create_end' => ['alias' => 'created_at', 'endDate' => ' 23:59:59'], 'order_issue_id'=>['alias'=>'id'] ]; $query = app(QueryService::class)->query($queryParam, $query, $columnQueryRules); return $query; } public function paginate(array $params){ return $this->getQuery($params)->paginate($params['paginate'] ?? 50); } public function getUsers(){ $arr = OrderIssueProcessLog::all()->groupBy('user_id'); $user_ids = array_keys($arr->toArray()); return User::whereIn('id',$user_ids)->get(); } }