['alias' => 'counting_month', 'startDate' => '-01'], 'counting_month_end' => ['alias' => 'counting_month', 'endDate' => '-31'], 'owners' => ['alias' => 'owner_id','multi' => ','], ]; if ($params["owner_groups"] ?? false){ $builder->whereHas('owner',function ($query)use(&$params){ /** @var Builder $query */ $query->where("user_owner_group_id",$params["owner_groups"]); }); unset($params["owner_groups"]); } if ($params["customers"] ?? false){ $builder->whereHas('owner',function ($query)use(&$params){ /** @var Builder $query */ $query->where("customer_id",$params["customers"]); }); unset($params["customers"]); } if ($params["status"] ?? false){ $builder->whereHas('owner',function ($query)use(&$params){ /** @var Builder $query */ if ($params["status"] == "激活") $query->whereNull("deleted_at"); else $query->whereNotNull("deleted_at"); }); unset($params["status"]); } return app(QueryService::class)->query($params, $builder, $columnQueryRules,"owner_reports"); } public function get(array $params, array $withs = null) { $query = OwnerReport::query(); if ($withs)$query->with($withs); return $this->query($query,$params)->get(); } public function paginate(array $params, array $withs = null) { $query = OwnerReport::query()->orderByDesc('id'); if ($withs)$query->with($withs); return $this->query($query,$params)->paginate($params["paginate"] ?? 50); } }