|  |  | 
 |  |  | 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.MobilePositionSubscribeHandlerTask; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.task.impl.MobilePositionSubscribeTask; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; | 
 |  |  | 
 |  |  | import com.genersoft.iot.vmp.service.IDeviceService; | 
 |  |  | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; | 
 |  |  | import com.genersoft.iot.vmp.storager.IVideoManagerStorage; | 
 |  |  | import com.genersoft.iot.vmp.vmanager.bean.DeviceChannelTree; | 
 |  |  | import com.genersoft.iot.vmp.vmanager.bean.WVPResult; | 
 |  |  | import com.github.pagehelper.PageInfo; | 
 |  |  | import io.swagger.annotations.Api; | 
 |  |  | import io.swagger.annotations.ApiImplicitParam; | 
 |  |  | import io.swagger.annotations.ApiImplicitParams; | 
 |  |  | import io.swagger.annotations.ApiOperation; | 
 |  |  | import org.kxml2.wap.wv.WV; | 
 |  |  | import org.slf4j.Logger; | 
 |  |  | import org.slf4j.LoggerFactory; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | 
 |  |  |          logger.debug("设备通道信息同步API调用,deviceId:" + deviceId); | 
 |  |  |       } | 
 |  |  |       Device device = storager.queryVideoDevice(deviceId); | 
 |  |  |       SyncStatus syncStatus = deviceService.getChannelSyncStatus(deviceId); | 
 |  |  |       boolean status = deviceService.isSyncRunning(deviceId); | 
 |  |  |       // 已存在则返回进度 | 
 |  |  |       if (syncStatus != null && syncStatus.getErrorMsg() == null) { | 
 |  |  |       if (status) { | 
 |  |  |          WVPResult<SyncStatus> wvpResult = new WVPResult<>(); | 
 |  |  |          wvpResult.setCode(0); | 
 |  |  |          wvpResult.setData(syncStatus); | 
 |  |  |          SyncStatus channelSyncStatus = deviceService.getChannelSyncStatus(deviceId); | 
 |  |  |          wvpResult.setData(channelSyncStatus); | 
 |  |  |          return wvpResult; | 
 |  |  |       } | 
 |  |  |       SyncStatus syncStatusReady = new SyncStatus(); | 
 |  |  |       deviceService.setChannelSyncReady(deviceId); | 
 |  |  |       cmder.catalogQuery(device, event -> { | 
 |  |  |          String errorMsg = String.format("同步通道失败,错误码: %s, %s", event.statusCode, event.msg); | 
 |  |  |          deviceService.setChannelSyncEnd(deviceId, errorMsg); | 
 |  |  |       }); | 
 |  |  |       deviceService.sync(device); | 
 |  |  |  | 
 |  |  |       WVPResult<SyncStatus> wvpResult = new WVPResult<>(); | 
 |  |  |       wvpResult.setCode(0); | 
 |  |  |       wvpResult.setMsg("开始同步"); | 
 |  |  | 
 |  |  |          @ApiImplicitParam(name="page", value = "当前页", required = true, dataTypeClass = Integer.class), | 
 |  |  |          @ApiImplicitParam(name="count", value = "每页条数", required = true, dataTypeClass = Integer.class), | 
 |  |  |          @ApiImplicitParam(name="query", value = "查询内容", dataTypeClass = String.class), | 
 |  |  |          @ApiImplicitParam(name="online", value = "是否在线", dataTypeClass = String.class), | 
 |  |  |          @ApiImplicitParam(name="online", value = "是否在线", dataTypeClass = Boolean.class), | 
 |  |  |          @ApiImplicitParam(name="channelType", value = "通道类型, 子目录", dataTypeClass = Boolean.class), | 
 |  |  |    }) | 
 |  |  |    @GetMapping("/sub_channels/{deviceId}/{channelId}/channels") | 
 |  |  | 
 |  |  |                                       int page, | 
 |  |  |                                       int count, | 
 |  |  |                                       @RequestParam(required = false) String query, | 
 |  |  |                                       @RequestParam(required = false) String online, | 
 |  |  |                                       @RequestParam(required = false) Boolean online, | 
 |  |  |                                       @RequestParam(required = false) Boolean channelType){ | 
 |  |  |  | 
 |  |  | //      if (logger.isDebugEnabled()) { | 
 |  |  | 
 |  |  |       return result; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    @GetMapping("/{deviceId}/tree") | 
 |  |  |    @ApiOperation(value = "通道树形结构", notes = "通道树形结构") | 
 |  |  |    public WVPResult<List<DeviceChannelTree>> tree(@PathVariable String deviceId) { | 
 |  |  |       return WVPResult.Data(storager.tree(deviceId)); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    @GetMapping("/{deviceId}/sync_status") | 
 |  |  |    @ApiOperation(value = "获取通道同步进度", notes = "获取通道同步进度") |