LockEventListener.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace App\Listeners;
  3. use App\Events\LockEvent;
  4. use App\Model\DeviceBox;
  5. use App\Model\LockInfo;
  6. use App\Server\DeviceServer;
  7. use Doctrine\DBAL\Driver\IBMDB2\DB2Driver;
  8. use Illuminate\Contracts\Queue\ShouldQueue;
  9. use Illuminate\Queue\InteractsWithQueue;
  10. use Illuminate\Support\Facades\Log;
  11. class LockEventListener
  12. {
  13. /**
  14. * Handle the event.
  15. *
  16. * @param object $event
  17. * @return void
  18. */
  19. public function handle(LockEvent $lock)
  20. {
  21. $lock = $lock->lock ;
  22. $box_id = $lock->boxs->id;
  23. $device_name = $lock->boxs->devices->device_name;
  24. if(empty($box_id) || empty($device_name)){
  25. return fasle;
  26. }
  27. echo $box_id.'设备名称'.$device_name;
  28. $lock_info = LockInfo::where(['box_id'=>$box_id,'status'=>1])->get();
  29. $rule = [];
  30. foreach ($lock_info as $val){
  31. $rule[$lock->boxs->name][] = [
  32. 'open'=>$val->open_time,
  33. 'close'=>$val->close_time,
  34. 'start'=>$val->start_time,
  35. 'type'=>$val->type,
  36. 'value'=>$val->value,
  37. ];
  38. }
  39. if(!empty($rule)){
  40. $rule['query'] = 1200;
  41. //发送命令
  42. // (new DeviceServer())->sendMsg($device_name,json_encode($rule));
  43. Log::info('设备'.$device_name.'盒子'.$lock->boxs->name.'更新规则'.PHP_EOL);
  44. } else {
  45. Log::info('设备'.$device_name.'盒子'.$lock->boxs->name.'无规则'.PHP_EOL);
  46. }
  47. }
  48. }