|  |  | 
 |  |  | import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.bean.SubscribeHolder; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.bean.SyncStatus; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.event.DeviceOffLineDetector; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.task.ISubscribeTask; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.task.impl.CatalogSubscribeTask; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.task.impl.MobilePositionSubscribeTask; | 
 |  |  | 
 |  |  |     | 
 |  |  |    @Autowired | 
 |  |  |    private DeferredResultHolder resultHolder; | 
 |  |  | 	 | 
 |  |  |    @Autowired | 
 |  |  |    private DeviceOffLineDetector offLineDetector; | 
 |  |  |  | 
 |  |  |    @Autowired | 
 |  |  |    private IDeviceService deviceService; | 
 |  |  | 
 |  |  |          @ApiImplicitParam(name="query", value = "查询内容" ,dataTypeClass = String.class), | 
 |  |  |          @ApiImplicitParam(name="online", value = "是否在线"  ,dataTypeClass = Boolean.class), | 
 |  |  |          @ApiImplicitParam(name="channelType", value = "设备/子目录-> false/true" ,dataTypeClass = Boolean.class), | 
 |  |  |          @ApiImplicitParam(name="catalogUnderDevice", value = "是否直属与设备的目录" ,dataTypeClass = Boolean.class), | 
 |  |  |    }) | 
 |  |  |    public ResponseEntity<PageInfo> channels(@PathVariable String deviceId, | 
 |  |  |                                     int page, int count, | 
 |  |  |                                     @RequestParam(required = false) String query, | 
 |  |  |                                     @RequestParam(required = false) Boolean online, | 
 |  |  |                                     @RequestParam(required = false) Boolean channelType) { | 
 |  |  |                                     @RequestParam(required = false) Boolean channelType, | 
 |  |  |                                     @RequestParam(required = false) Boolean catalogUnderDevice) { | 
 |  |  | //      if (logger.isDebugEnabled()) { | 
 |  |  | //         logger.debug("查询视频设备通道API调用"); | 
 |  |  | //      } | 
 |  |  | 
 |  |  |          query = null; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       PageInfo pageResult = storager.queryChannelsByDeviceId(deviceId, query, channelType, online, page, count); | 
 |  |  |       PageInfo pageResult = storager.queryChannelsByDeviceId(deviceId, query, channelType, online, catalogUnderDevice, page, count); | 
 |  |  |       return new ResponseEntity<>(pageResult,HttpStatus.OK); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 
 |  |  |    public ResponseEntity<PageInfo> updateTransport(@PathVariable String deviceId, @PathVariable String streamMode){ | 
 |  |  |       Device device = storager.queryVideoDevice(deviceId); | 
 |  |  |       device.setStreamMode(streamMode); | 
 |  |  |       storager.updateDevice(device); | 
 |  |  | //      storager.updateDevice(device); | 
 |  |  |       deviceService.updateDevice(device); | 
 |  |  |       return new ResponseEntity<>(null,HttpStatus.OK); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 
 |  |  |    public ResponseEntity<WVPResult<String>> updateDevice(Device device){ | 
 |  |  |  | 
 |  |  |       if (device != null && device.getDeviceId() != null) { | 
 |  |  |          Device deviceInStore = storager.queryVideoDevice(device.getDeviceId()); | 
 |  |  |          if (!StringUtils.isEmpty(device.getName())) deviceInStore.setName(device.getName()); | 
 |  |  |          if (!StringUtils.isEmpty(device.getCharset())) deviceInStore.setCharset(device.getCharset()); | 
 |  |  |          if (!StringUtils.isEmpty(device.getMediaServerId())) deviceInStore.setMediaServerId(device.getMediaServerId()); | 
 |  |  |  | 
 |  |  |          //  目录订阅相关的信息 | 
 |  |  |          if (device.getSubscribeCycleForCatalog() > 0) { | 
 |  |  |             if (deviceInStore.getSubscribeCycleForCatalog() == 0 || deviceInStore.getSubscribeCycleForCatalog() != device.getSubscribeCycleForCatalog()) { | 
 |  |  |                deviceInStore.setSubscribeCycleForCatalog(device.getSubscribeCycleForCatalog()); | 
 |  |  |                // 开启订阅 | 
 |  |  |                deviceService.addCatalogSubscribe(deviceInStore); | 
 |  |  |             } | 
 |  |  |          }else if (device.getSubscribeCycleForCatalog() == 0) { | 
 |  |  |             if (deviceInStore.getSubscribeCycleForCatalog() != 0) { | 
 |  |  |                deviceInStore.setSubscribeCycleForCatalog(device.getSubscribeCycleForCatalog()); | 
 |  |  |                // 取消订阅 | 
 |  |  |                deviceService.removeCatalogSubscribe(deviceInStore); | 
 |  |  |             } | 
 |  |  |          } | 
 |  |  |  | 
 |  |  |          // 移动位置订阅相关的信息 | 
 |  |  |          if (device.getSubscribeCycleForMobilePosition() > 0) { | 
 |  |  |             if (deviceInStore.getSubscribeCycleForMobilePosition() == 0 || deviceInStore.getSubscribeCycleForMobilePosition() != device.getSubscribeCycleForMobilePosition()) { | 
 |  |  |                deviceInStore.setMobilePositionSubmissionInterval(device.getMobilePositionSubmissionInterval()); | 
 |  |  |                deviceInStore.setSubscribeCycleForMobilePosition(device.getSubscribeCycleForMobilePosition()); | 
 |  |  |                // 开启订阅 | 
 |  |  |                deviceService.addMobilePositionSubscribe(deviceInStore); | 
 |  |  |             } | 
 |  |  |          }else if (device.getSubscribeCycleForMobilePosition() == 0) { | 
 |  |  |             if (deviceInStore.getSubscribeCycleForMobilePosition() != 0) { | 
 |  |  |                // 取消订阅 | 
 |  |  |                deviceService.removeMobilePositionSubscribe(deviceInStore); | 
 |  |  |             } | 
 |  |  |          } | 
 |  |  |  | 
 |  |  |          // TODO 报警订阅相关的信息 | 
 |  |  |  | 
 |  |  |          storager.updateDevice(device); | 
 |  |  |          cmder.deviceInfoQuery(device); | 
 |  |  |          deviceService.updateDevice(device); | 
 |  |  | //         cmder.deviceInfoQuery(device); | 
 |  |  |       } | 
 |  |  |       WVPResult<String> result = new WVPResult<>(); | 
 |  |  |       result.setCode(0); |