ParkingObserver.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Mead
  5. * Date: 2019/9/19
  6. * Time: 10:09 AM
  7. */
  8. namespace App\Observers;
  9. use App\Models\Parking;
  10. use Illuminate\Support\Facades\Redis;
  11. class ParkingObserver
  12. {
  13. public function created(Parking $parking)
  14. {
  15. if (empty($parking->parking_centre)) return true;
  16. $centre = json_decode($parking->parking_centre, true);
  17. $redis = Redis::connection();
  18. $area_id = $parking->area_id;
  19. $redis->geoadd(Parking::REDIS_STOP_BIKE_SITES_TAG . "_{$area_id}", $centre[0], $centre[1], $parking->id);
  20. }
  21. public function updated(Parking $parking)
  22. {
  23. if ($parking->isDirty('area_centre')) {
  24. $centre = json_decode($parking->parking_centre, true);
  25. $redis = Redis::connection();
  26. $area_id = $parking->area_id;
  27. $redis->geoadd(Parking::REDIS_STOP_BIKE_SITES_TAG . "_{$area_id}", $centre[0], $centre[1], $parking->id);
  28. }
  29. }
  30. public function deleted(Parking $parking)
  31. {
  32. $area_id = $parking->area_id;
  33. $redis = Redis::connection();
  34. $redis->zrem(Parking::REDIS_STOP_BIKE_SITES_TAG . "_{$area_id}", $parking->id);
  35. }
  36. }