From 5ba0fba03d9fcb09eea0c1e703a4f050378d7992 Mon Sep 17 00:00:00 2001 From: panlinlin <648540858@qq.com> Date: 星期一, 26 四月 2021 09:13:17 +0800 Subject: [PATCH] 添加部分onvif代码 --- src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java | 41 ++++++++++++++++++++++++++++++++++------- 1 files changed, 34 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java index 5d1cfc8..8354b56 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java @@ -2,7 +2,9 @@ import java.util.*; +import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.gb28181.bean.*; +import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager; import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem; import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; @@ -60,6 +62,9 @@ @Autowired private GbStreamMapper gbStreamMapper; + @Autowired + private VideoStreamSessionManager streamSession; + /** * 鏍规嵁璁惧ID鍒ゆ柇璁惧鏄惁瀛樺湪 @@ -106,6 +111,7 @@ public synchronized void updateChannel(String deviceId, DeviceChannel channel) { String channelId = channel.getChannelId(); channel.setDeviceId(deviceId); + channel.setStreamId(streamSession.getStreamId(deviceId, channel.getChannelId())); DeviceChannel deviceChannel = deviceChannelMapper.queryChannel(deviceId, channelId); if (deviceChannel == null) { deviceChannelMapper.add(channel); @@ -195,9 +201,22 @@ */ @Override public boolean delete(String deviceId) { - int result = deviceMapper.del(deviceId); - - return result > 0; + TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); + boolean result = false; + try { + if (platformChannelMapper.delChannelForDeviceId(deviceId) <0 // 鍒犻櫎涓庡浗鏍囧钩鍙扮殑鍏宠仈 + || deviceChannelMapper.cleanChannelsByDeviceId(deviceId) < 0 // 鍒犻櫎浠栫殑閫氶亾 + || deviceMapper.del(deviceId) < 0 // 绉婚櫎璁惧淇℃伅 + ) { + //浜嬪姟鍥炴粴 + dataSourceTransactionManager.rollback(transactionStatus); + } + result = true; + dataSourceTransactionManager.commit(transactionStatus); //鎵嬪姩鎻愪氦 + }catch (Exception e) { + dataSourceTransactionManager.rollback(transactionStatus); + } + return result; } /** @@ -271,15 +290,21 @@ public boolean updateParentPlatform(ParentPlatform parentPlatform) { int result = 0; ParentPlatformCatch parentPlatformCatch = redisCatchStorage.queryPlatformCatchInfo(parentPlatform.getServerGBId()); // .getDeviceGBId()); - if ( platformMapper.getParentPlatById(parentPlatform.getServerGBId()) == null) { + if (parentPlatform.getId() == null ) { result = platformMapper.addParentPlatform(parentPlatform); - if (parentPlatformCatch == null) { parentPlatformCatch = new ParentPlatformCatch(); parentPlatformCatch.setParentPlatform(parentPlatform); parentPlatformCatch.setId(parentPlatform.getServerGBId()); } }else { + if (parentPlatformCatch == null) { // serverGBId 宸插彉鍖� + ParentPlatform parentPlatById = platformMapper.getParentPlatById(parentPlatform.getId()); + // 浣跨敤鏃х殑鏌ュ嚭缂撳瓨ID + parentPlatformCatch = redisCatchStorage.queryPlatformCatchInfo(parentPlatById.getServerGBId()); + parentPlatformCatch.setId(parentPlatform.getServerGBId()); + redisCatchStorage.delPlatformCatchInfo(parentPlatById.getServerGBId()); + } result = platformMapper.updateParentPlatform(parentPlatform); } // 鏇存柊缂撳瓨 @@ -305,8 +330,8 @@ } @Override - public ParentPlatform queryParentPlatById(String platformGbId) { - return platformMapper.getParentPlatById(platformGbId); + public ParentPlatform queryParentPlatByServerGBId(String platformGbId) { + return platformMapper.getParentPlatByServerGBId(platformGbId); } @Override @@ -544,4 +569,6 @@ public void mediaOutline(String app, String streamId) { gbStreamMapper.setStatus(app, streamId, false); } + + } -- Gitblit v1.8.0