sendRule.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace App\Admin\Actions\Box;
  3. use App\Model\DeviceBox;
  4. use App\Model\LockInfo;
  5. use App\Server\DeviceServer;
  6. use Encore\Admin\Actions\RowAction;
  7. use Illuminate\Database\Eloquent\Model;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\Log;
  10. class sendRule extends RowAction
  11. {
  12. public $name = '下发协议';
  13. public function handle(Model $model, Request $request)
  14. {
  15. $id = $this->row->id;
  16. $box_name = $this->row->name;
  17. $device_name = $this->row->devices->device_name;
  18. $lock_info = LockInfo::where(['box_id'=>$id,'status'=>1])->get();
  19. $rule = [];
  20. foreach ($lock_info as $val){
  21. $rule[$box_name][] = [
  22. 'open'=>$val->open_time,
  23. 'close'=>$val->close_time,
  24. 'start'=>$val->start_time,
  25. 'type'=>$val->type,
  26. 'value'=>$val->value,
  27. ];
  28. }
  29. // return $this->response()->success(json_encode($rule))->refresh();
  30. if(!empty($rule)){
  31. $rule['query'] = 1800;
  32. Log::info(json_encode($rule).PHP_EOL);
  33. $res = (new DeviceServer())->sendMsg($device_name,json_encode($rule));
  34. if($res['Success'] == true){
  35. return $this->response()->success('下发成功')->refresh();
  36. }
  37. }
  38. return $this->response()->error('下发失败')->refresh();
  39. }
  40. }