DeviceController.java 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package com.genersoft.iot.vmp.vmanager.device;
  2. import java.util.List;
  3. import java.util.concurrent.ExecutorService;
  4. import java.util.concurrent.Executors;
  5. import org.slf4j.Logger;
  6. import org.slf4j.LoggerFactory;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.http.HttpStatus;
  9. import org.springframework.http.ResponseEntity;
  10. import org.springframework.web.bind.annotation.GetMapping;
  11. import org.springframework.web.bind.annotation.PathVariable;
  12. import org.springframework.web.bind.annotation.PostMapping;
  13. import org.springframework.web.bind.annotation.RequestMapping;
  14. import org.springframework.web.bind.annotation.RestController;
  15. import org.springframework.web.context.request.async.DeferredResult;
  16. import com.genersoft.iot.vmp.gb28181.bean.Device;
  17. import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
  18. import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
  19. import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
  20. @RestController
  21. @RequestMapping("/api")
  22. public class DeviceController {
  23. private final static Logger logger = LoggerFactory.getLogger(DeviceController.class);
  24. @Autowired
  25. private IVideoManagerStorager storager;
  26. @Autowired
  27. private SIPCommander cmder;
  28. @Autowired
  29. private DeferredResultHolder resultHolder;
  30. @GetMapping("/devices/{deviceId}")
  31. public ResponseEntity<Device> devices(@PathVariable String deviceId){
  32. if (logger.isDebugEnabled()) {
  33. logger.debug("查询视频设备API调用,deviceId:" + deviceId);
  34. }
  35. Device device = storager.queryVideoDevice(deviceId);
  36. return new ResponseEntity<>(device,HttpStatus.OK);
  37. }
  38. @GetMapping("/devices")
  39. public ResponseEntity<List<Device>> devices(){
  40. if (logger.isDebugEnabled()) {
  41. logger.debug("查询所有视频设备API调用");
  42. }
  43. List<Device> deviceList = storager.queryVideoDeviceList(null);
  44. return new ResponseEntity<>(deviceList,HttpStatus.OK);
  45. }
  46. @PostMapping("/devices/{deviceId}/sync")
  47. public DeferredResult<ResponseEntity<Device>> devicesSync(@PathVariable String deviceId){
  48. if (logger.isDebugEnabled()) {
  49. logger.debug("设备信息同步API调用,deviceId:" + deviceId);
  50. }
  51. Device device = storager.queryVideoDevice(deviceId);
  52. cmder.catalogQuery(device);
  53. DeferredResult<ResponseEntity<Device>> result = new DeferredResult<ResponseEntity<Device>>();
  54. resultHolder.put(DeferredResultHolder.CALLBACK_CMD_CATALOG+deviceId, result);
  55. return result;
  56. }
  57. }