BikesFilter.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace App\Filters\Traits;
  3. use App\Models\Bike;
  4. use Carbon\Carbon;
  5. use Illuminate\Database\Eloquent\Builder;
  6. use Illuminate\Support\Facades\Log;
  7. trait BikesFilter
  8. {
  9. public function bikeOrBox($val){
  10. // 车辆编号或者控制设备编号
  11. // Log::info('aaa');
  12. $this->builder->where(function(Builder $q)use($val){
  13. $q->where('bike_no','like',"%{$val}%")->orWhere('box_no','like',"%{$val}%");
  14. });
  15. }
  16. public function allStates($val){
  17. switch ($val){
  18. case Bike::BIKE_STATES_RIDING: // 骑行中
  19. $this->builder->where('is_riding',Bike::RIDING_YES);
  20. break;
  21. case Bike::BIKE_STATES_NOT_RIDING: // 未骑行
  22. $this->builder->where('is_riding',Bike::RIDING_NO);
  23. break;
  24. case Bike::BIKE_STATES_TROUBLE: // 有故障
  25. $this->builder->where('is_trouble',Bike::TROUBLE_YES);
  26. break;
  27. case Bike::BIKE_STATES_LOW_POWER: // 低电量
  28. $this->builder->where('is_low_battery_power',Bike::BATTERY_POWER_LOW);
  29. break;
  30. case Bike::BIKE_STATES_NOT_PARKING: // 不在停车区
  31. $this->builder->where('is_in_parking',Bike::IN_PARKING_NO);
  32. break;
  33. case Bike::BIKE_STATES_NOT_LINK: // 离线
  34. $this->builder->where('is_link',Bike::LINK_OFFLINE);
  35. break;
  36. case Bike::BIKE_STATES_OFF_LINE: // 下线
  37. $this->builder->where('put_status',Bike::PUT_STATUS_NO);
  38. break;
  39. case Bike::BIKE_STATES_TROUBLE_OFF_LINE: // 不在停车区
  40. $this->builder->where('is_trouble',Bike::TROUBLE_YES)->where('put_status',Bike::PUT_STATUS_NO);
  41. break;
  42. default;
  43. }
  44. }
  45. public function todayUse(){
  46. $this->builder->where('last_use_bike_end_time','>',Carbon::today());
  47. }
  48. public function batteryPower($val){
  49. $this->builder->where('battery_power','<',$val);
  50. }
  51. public function bikeNoBottom($val){
  52. $this->builder->where('bike_no','>=',$val);
  53. }
  54. public function bikeNoTop($val){
  55. $this->builder->where('bike_no','<=',$val);
  56. }
  57. public function boxNoBottom($val){
  58. $this->builder->where('box_no','>=',$val);
  59. }
  60. public function boxNoTop($val){
  61. $this->builder->where('box_no','<=',$val);
  62. }
  63. public function areaId($val){
  64. $this->builder->where('put_area_id',$val);
  65. }
  66. }