VaccineController.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: zilongs
  5. * Date: 20-10-4
  6. * Time: 下午8:32
  7. */
  8. namespace App\Http\Controllers\Api\V1;
  9. use App\Models\Vaccine;
  10. class VaccineController extends AuthController
  11. {
  12. public function vaccineList()
  13. {
  14. $req = request()->post();
  15. $this->validate(request(), [
  16. 'organization_id' => 'required|integer',
  17. 'name' => 'max:50',
  18. 'type' => 'in:0,1,2',
  19. 'sort_type' => 'in:0,1,2',
  20. ]);
  21. $builder = Vaccine::join('organization_vaccines', 'organization_vaccines.vaccine_id', '=', 'vaccines.id')->select(['vaccines.id', 'organization_vaccines.id as organization_vaccine_id', 'organization_vaccines.type', 'organization_vaccines.price', 'vaccines.name', 'organization_vaccines.remark', 'organization_vaccines.supplier', 'organization_vaccines.stock'])->where('organization_vaccines.stock', '>', 0)->where('organization_vaccines.org_id', $req['organization_id']);
  22. if (!empty($req['type'])) {
  23. $builder->where('organization_vaccines.type', $req['type']);
  24. }
  25. if (!empty($req['name'])) {
  26. $builder->where('vacciness.name', 'like', '%'.$req['name'].'%');
  27. }
  28. if (!empty($req['sort_type'])) {
  29. if ($req['sort_type'] == 1) {
  30. $builder->orderBy('organization_vaccines.price', 'asc');
  31. }
  32. elseif ($req['sort_type'] == 2) {
  33. $builder->orderBy('organization_vaccines.price', 'desc');
  34. }
  35. }
  36. $data = $builder->paginate();
  37. return out($data);
  38. }
  39. }