PackageService.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace App\Services;
  3. use App\Package;
  4. use App\Services\common\QueryService;
  5. use Illuminate\Http\Request;
  6. Class PackageService
  7. {
  8. private function conditionQuery($params){
  9. $packages = Package::query()->orderBy('packages.id','DESC');
  10. $columnQueryRules=[
  11. 'logistic_number' => ['like' => ''],
  12. 'batch_number' => ['like' => ''],
  13. 'created_at_start' => ['alias' => 'created_at','startDate' => " 00:00:00"],
  14. 'created_at_end' => ['alias' => 'created_at','endDate' => " 23:59:59"],
  15. 'id' => ['multi' => ','],
  16. ];
  17. $packages = app(QueryService::class)->query($params,$packages,$columnQueryRules,"packages");
  18. return $packages;
  19. }
  20. public function paginate(Request $request){
  21. $packages = $this->conditionQuery($request->input());
  22. return $packages->paginate($request->paginate ?? 50);
  23. }
  24. public function get(Request $request){
  25. $packages = $this->conditionQuery($request->input());
  26. return $packages->get();
  27. }
  28. public function getSql($params){
  29. return $this->conditionQuery($params)->selectRaw('packages.*')
  30. ->LeftJoin('owners','packages.owner_id','owners.id')
  31. ->selectRaw('owners.name owner_name')
  32. ->LeftJoin('logistics','packages.logistic_id','logistics.id')
  33. ->selectRaw('logistics.name logistic_name')
  34. ->LeftJoin('paper_boxes','packages.paper_box_id','paper_boxes.id')
  35. ->selectRaw('paper_boxes.model paper_box_name')
  36. ->LeftJoin('measuring_machines','packages.measuring_machine_id','measuring_machines.id')
  37. ->selectRaw('measuring_machines.name measuring_machine_name')
  38. ->sql();
  39. }
  40. }