NurseController.php 1.4 KB

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