ProcurementService.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace App\Services;
  3. use App\Owner;
  4. use App\Procurement;
  5. use App\Services\common\QueryService;
  6. use Illuminate\Support\Facades\Auth;
  7. use App\Traits\ServiceAppAop;
  8. class ProcurementService
  9. {
  10. use ServiceAppAop;
  11. private function conditionQuery(array $param){
  12. $owner_ids=app('UserService')->getPermittingOwnerIds(auth()->user());
  13. $procurements = Procurement::with(['initiator','ownerMaterial.material','ownerMaterial.owner'=>function($query)use($owner_ids){
  14. $query->with('customer')->whereIn('id',$owner_ids);
  15. }]);
  16. $columnQueryRules=[
  17. 'owner_id' => ['multi' => ','],
  18. 'material_id' => ['multi' => ','],
  19. 'supplier_id' => ['multi' => ','],
  20. 'company_name' => ['like' => ','],
  21. 'created_at_start' => ['alias' => 'created_at' , 'startDate' => ':00'],
  22. 'created_at_end' => ['alias' => 'created_at' , 'endDate' => ':59'],
  23. ];
  24. $procurements = app(QueryService::class)->query($param,$procurements,$columnQueryRules,"procurements");
  25. return $procurements;
  26. }
  27. public function paginate(array $param){
  28. $procurements = $this->conditionQuery($param);
  29. return $procurements->paginate($param['paginate'] ?? 50);
  30. }
  31. }