songww
2020-05-13 ca5139929b8b5853229ca3d63e2bca1ce82fa0ab
src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java
@@ -1,6 +1,5 @@
package com.genersoft.iot.vmp.vmanager.device;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
@@ -10,10 +9,14 @@
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.request.async.DeferredResult;
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
@RestController
@@ -25,16 +28,21 @@
   @Autowired
   private IVideoManagerStorager storager;
   
   @Autowired
   private SIPCommander cmder;
   @Autowired
   private DeferredResultHolder resultHolder;
   @GetMapping("/devices/{deviceId}")
   public ResponseEntity<List<Device>> devices(@PathVariable String deviceId){
   public ResponseEntity<Device> devices(@PathVariable String deviceId){
      
      if (logger.isDebugEnabled()) {
         logger.debug("查询视频设备API调用,deviceId:" + deviceId);
      }
      
      List<Device> deviceList = new ArrayList<>();
      deviceList.add(storager.queryVideoDevice(deviceId));
      return new ResponseEntity<>(deviceList,HttpStatus.OK);
      Device device = storager.queryVideoDevice(deviceId);
      return new ResponseEntity<>(device,HttpStatus.OK);
   }
   
   @GetMapping("/devices")
@@ -47,4 +55,18 @@
      List<Device> deviceList = storager.queryVideoDeviceList(null);
      return new ResponseEntity<>(deviceList,HttpStatus.OK);
   }
   @PostMapping("/devices/{deviceId}/sync")
   public DeferredResult<ResponseEntity<Device>> devicesSync(@PathVariable String deviceId){
      if (logger.isDebugEnabled()) {
         logger.debug("设备信息同步API调用,deviceId:" + deviceId);
      }
      Device device = storager.queryVideoDevice(deviceId);
        cmder.catalogQuery(device);
        DeferredResult<ResponseEntity<Device>> result = new DeferredResult<ResponseEntity<Device>>();
        resultHolder.put(DeferredResultHolder.CALLBACK_CMD_CATALOG+deviceId, result);
        return result;
   }
}