| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- <?php
- namespace App\Services;
- use App\OwnerPriceOperation;
- use App\Services\common\QueryService;
- use Illuminate\Database\Eloquent\Builder;
- use Illuminate\Support\Facades\DB;
- Class OwnerPriceOperationService
- {
- /**
- * @param Builder $builder
- * @param array $params
- * @return Builder
- */
- private function query(Builder $builder, array $params)
- {
- if ($params["owner_id"] ?? false){
- $ids = $this->ownerGetIds($params["owner_id"]);
- if ($ids)$builder->whereIn("id",$ids);
- unset($params["owner_id"]);
- }
- $columnQueryRules = [
- "name" => ["like"=>""]
- ];
- return app(QueryService::class)->query($params, $builder, $columnQueryRules);
- }
- public function paginate(array $params, array $withs = [])
- {
- return $this->query(OwnerPriceOperation::query()->orderByDesc('id')->with($withs),$params)
- ->paginate($params["paginate"] ?? 50);
- }
- private function ownerGetIds(string $owner_id)
- {
- if (!$owner_id)return [];
- $arr = DB::select(DB::raw("SELECT owner_price_operation_id AS id FROM owner_price_operation_owner WHERE owner_id in (".$owner_id.")"));
- return array_column($arr,"id");
- }
- }
|