BikesFilter.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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. {
  47. $this->builder->where('last_use_bike_end_time', '>', Carbon::today());
  48. }
  49. public function batteryPower($val)
  50. {
  51. $this->builder->where('battery_power', '<', $val);
  52. }
  53. public function bikeNoBottom($val)
  54. {
  55. $this->builder->where('bike_no', '>=', $val);
  56. }
  57. public function bikeNoTop($val)
  58. {
  59. $this->builder->where('bike_no', '<=', $val);
  60. }
  61. public function boxNoBottom($val){
  62. $this->builder->where('box_no','>=',$val);
  63. }
  64. public function boxNoTop($val){
  65. $this->builder->where('box_no','<=',$val);
  66. }
  67. public function areaId($val){
  68. $this->builder->where('put_area_id',$val);
  69. }
  70. }