From 458e7d18b77f0f47be2969491b42de9b6d8b27f0 Mon Sep 17 00:00:00 2001 From: lin <18010473990@163.com> Date: 星期五, 07 一月 2022 19:37:05 +0800 Subject: [PATCH] 添加接收redis订阅的GPS消息,为GPS订阅发送到级联平台做准备 --- src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java | 50 +++++++++++++++++++++++++++++++++++++------------- 1 files changed, 37 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java index c750821..0608656 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java @@ -1,11 +1,21 @@ package com.genersoft.iot.vmp.vmanager.gb28181.device; +import com.alibaba.fastjson.JSONObject; +import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; +import com.genersoft.iot.vmp.gb28181.event.DeviceOffLineDetector; +import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; +import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; +import com.genersoft.iot.vmp.service.IDeviceService; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; +import com.genersoft.iot.vmp.storager.IVideoManagerStorager; import com.genersoft.iot.vmp.vmanager.bean.WVPResult; import com.github.pagehelper.PageInfo; -import io.swagger.annotations.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -15,15 +25,6 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.async.DeferredResult; -import com.alibaba.fastjson.JSONObject; -import com.genersoft.iot.vmp.gb28181.bean.Device; -import com.genersoft.iot.vmp.gb28181.event.DeviceOffLineDetector; -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; - -import javax.sip.message.Response; -import java.io.UnsupportedEncodingException; import java.util.UUID; @Api(tags = "鍥芥爣璁惧鏌ヨ", value = "鍥芥爣璁惧鏌ヨ") @@ -49,6 +50,9 @@ @Autowired private DeviceOffLineDetector offLineDetector; + + @Autowired + private IDeviceService deviceService; /** * 浣跨敤ID鏌ヨ鍥芥爣璁惧 @@ -148,12 +152,16 @@ String uuid = UUID.randomUUID().toString(); DeferredResult<ResponseEntity<Device>> result = new DeferredResult<ResponseEntity<Device>>(15*1000L); result.onTimeout(()->{ - logger.warn(String.format("璁惧閫氶亾淇℃伅鍚屾瓒呮椂")); + logger.warn("璁惧[{}]閫氶亾淇℃伅鍚屾瓒呮椂", deviceId); // 閲婃斁rtpserver RequestMessage msg = new RequestMessage(); msg.setKey(key); msg.setId(uuid); - msg.setData("Timeout"); + WVPResult<Object> wvpResult = new WVPResult<>(); + wvpResult.setCode(-1); + wvpResult.setData(device); + wvpResult.setMsg("鏇存柊瓒呮椂"); + msg.setData(wvpResult); resultHolder.invokeAllResult(msg); }); // 绛夊緟鍏朵粬鐩稿悓璇锋眰杩斿洖鏃朵竴璧疯繑鍥� @@ -164,7 +172,11 @@ RequestMessage msg = new RequestMessage(); msg.setKey(key); msg.setId(uuid); - msg.setData(String.format("鍚屾閫氶亾澶辫触锛岄敊璇爜锛� %s, %s", event.statusCode, event.msg)); + WVPResult<Object> wvpResult = new WVPResult<>(); + wvpResult.setCode(-1); + wvpResult.setData(device); + wvpResult.setMsg(String.format("鍚屾閫氶亾澶辫触锛岄敊璇爜锛� %s, %s", event.statusCode, event.msg)); + msg.setData(wvpResult); resultHolder.invokeAllResult(msg); }); @@ -301,6 +313,18 @@ 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 (deviceInStore.getSubscribeCycleForCatalog() <=0 && device.getSubscribeCycleForCatalog() > 0) { + deviceInStore.setSubscribeCycleForCatalog(device.getSubscribeCycleForCatalog()); + // 寮�鍚闃� + deviceService.addCatalogSubscribe(deviceInStore); + } + if (deviceInStore.getSubscribeCycleForCatalog() > 0 && device.getSubscribeCycleForCatalog() <= 0) { + deviceInStore.setSubscribeCycleForCatalog(device.getSubscribeCycleForCatalog()); + // 鍙栨秷璁㈤槄 + deviceService.removeCatalogSubscribe(deviceInStore); + } + storager.updateDevice(deviceInStore); cmder.deviceInfoQuery(deviceInStore); } -- Gitblit v1.8.0