From 9ef1a0277b23c0302891d74648e0b559423dcbb8 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期三, 18 五月 2022 15:36:33 +0800
Subject: [PATCH] 更新jessibuca播放器
---
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java | 101 ++++++++++++++++++--------------------------------
1 files changed, 37 insertions(+), 64 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
index 6d680bc..1f35911 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
@@ -13,8 +13,7 @@
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
import com.genersoft.iot.vmp.storager.dao.*;
import com.genersoft.iot.vmp.storager.dao.dto.ChannelSourceInfo;
-import com.genersoft.iot.vmp.utils.node.ForestNodeMerger;
-import com.genersoft.iot.vmp.vmanager.bean.DeviceChannelTree;
+import com.genersoft.iot.vmp.utils.DateUtil;
import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@@ -28,8 +27,8 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
-import java.text.SimpleDateFormat;
import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
/**
* 瑙嗛璁惧鏁版嵁瀛樺偍-jdbc瀹炵幇
@@ -93,9 +92,6 @@
@Autowired
private ParentPlatformMapper parentPlatformMapper;
- private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
-
/**
* 鏍规嵁璁惧ID鍒ゆ柇璁惧鏄惁瀛樺湪
*
@@ -107,45 +103,6 @@
return deviceMapper.getDeviceByDeviceId(deviceId) != null;
}
- /**
- * 瑙嗛璁惧鍒涘缓
- *
- * @param device 璁惧瀵硅薄
- * @return true锛氬垱寤烘垚鍔� false锛氬垱寤哄け璐�
- */
- @Override
- public synchronized boolean create(Device device) {
- redisCatchStorage.updateDevice(device);
- return deviceMapper.add(device) > 0;
- }
-
-
-
- /**
- * 瑙嗛璁惧鏇存柊
- *
- * @param device 璁惧瀵硅薄
- * @return true锛氭洿鏂版垚鍔� false锛氭洿鏂板け璐�
- */
- @Override
- public synchronized boolean updateDevice(Device device) {
- String now = this.format.format(System.currentTimeMillis());
- device.setUpdateTime(now);
- Device deviceByDeviceId = deviceMapper.getDeviceByDeviceId(device.getDeviceId());
- device.setCharset(device.getCharset().toUpperCase());
- if (deviceByDeviceId == null) {
- device.setCreateTime(now);
- redisCatchStorage.updateDevice(device);
- return deviceMapper.add(device) > 0;
- }else {
- redisCatchStorage.updateDevice(device);
-
- return deviceMapper.update(device) > 0;
- }
-
-
- }
-
@Override
public synchronized void updateChannel(String deviceId, DeviceChannel channel) {
String channelId = channel.getChannelId();
@@ -154,7 +111,7 @@
if (streamInfo != null) {
channel.setStreamId(streamInfo.getStream());
}
- String now = this.format.format(System.currentTimeMillis());
+ String now = DateUtil.getNow();
channel.setUpdateTime(now);
DeviceChannel deviceChannel = deviceChannelMapper.queryChannel(deviceId, channelId);
if (deviceChannel == null) {
@@ -180,7 +137,7 @@
if (streamInfo != null) {
channel.setStreamId(streamInfo.getStream());
}
- String now = this.format.format(System.currentTimeMillis());
+ String now = DateUtil.getNow();
channel.setUpdateTime(now);
channel.setCreateTime(now);
addChannels.add(channel);
@@ -195,7 +152,7 @@
if (streamInfo != null) {
channel.setStreamId(streamInfo.getStream());
}
- String now = this.format.format(System.currentTimeMillis());
+ String now = DateUtil.getNow();
channel.setUpdateTime(now);
if (channelsInStore.get(channel.getChannelId()) != null) {
updateChannels.add(channel);
@@ -241,17 +198,27 @@
if (deviceChannelList == null) {
return false;
}
+ List<DeviceChannel> allChannelInPlay = deviceChannelMapper.getAllChannelInPlay();
+ Map<String,DeviceChannel> allChannelMapInPlay = new ConcurrentHashMap<>();
+ if (allChannelInPlay.size() > 0) {
+ for (DeviceChannel deviceChannel : allChannelInPlay) {
+ allChannelMapInPlay.put(deviceChannel.getChannelId(), deviceChannel);
+ }
+ }
TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
// 鏁版嵁鍘婚噸
List<DeviceChannel> channels = new ArrayList<>();
StringBuilder stringBuilder = new StringBuilder();
Map<String, Integer> subContMap = new HashMap<>();
- if (deviceChannelList != null && deviceChannelList.size() > 1) {
+ if (deviceChannelList.size() > 1) {
// 鏁版嵁鍘婚噸
Set<String> gbIdSet = new HashSet<>();
for (DeviceChannel deviceChannel : deviceChannelList) {
if (!gbIdSet.contains(deviceChannel.getChannelId())) {
gbIdSet.add(deviceChannel.getChannelId());
+ if (allChannelMapInPlay.containsKey(deviceChannel.getChannelId())) {
+ deviceChannel.setStreamId(allChannelMapInPlay.get(deviceChannel.getChannelId()).getStreamId());
+ }
channels.add(deviceChannel);
if (!StringUtils.isEmpty(deviceChannel.getParentId())) {
if (subContMap.get(deviceChannel.getParentId()) == null) {
@@ -342,10 +309,15 @@
}
@Override
- public PageInfo queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, Boolean online, int page, int count) {
+ public PageInfo queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, Boolean online, Boolean catalogUnderDevice, int page, int count) {
// 鑾峰彇鍒版墍鏈夋鍦ㄦ挱鏀剧殑娴�
PageHelper.startPage(page, count);
- List<DeviceChannel> all = deviceChannelMapper.queryChannels(deviceId, null, query, hasSubChannel, online);
+ List<DeviceChannel> all;
+ if (catalogUnderDevice != null && catalogUnderDevice) {
+ all = deviceChannelMapper.queryChannels(deviceId, deviceId, query, hasSubChannel, online);
+ }else {
+ all = deviceChannelMapper.queryChannels(deviceId, null, query, hasSubChannel, online);
+ }
return new PageInfo<>(all);
}
@@ -354,10 +326,6 @@
return deviceChannelMapper.queryChannelsByDeviceIdWithStartAndLimit(deviceId, null, query, hasSubChannel, online, start, limit);
}
- @Override
- public List<DeviceChannelTree> tree(String deviceId) {
- return ForestNodeMerger.merge(deviceChannelMapper.tree(deviceId));
- }
@Override
public List<DeviceChannel> queryChannelsByDeviceId(String deviceId) {
@@ -365,9 +333,9 @@
}
@Override
- public PageInfo<DeviceChannel> querySubChannels(String deviceId, String parentChannelId, String query, Boolean hasSubChannel, String online, int page, int count) {
+ public PageInfo<DeviceChannel> querySubChannels(String deviceId, String parentChannelId, String query, Boolean hasSubChannel, Boolean online, int page, int count) {
PageHelper.startPage(page, count);
- List<DeviceChannel> all = deviceChannelMapper.queryChannels(deviceId, parentChannelId, null, null, null);
+ List<DeviceChannel> all = deviceChannelMapper.queryChannels(deviceId, parentChannelId, query, hasSubChannel, online);
return new PageInfo<>(all);
}
@@ -461,7 +429,9 @@
public synchronized boolean outline(String deviceId) {
logger.info("鏇存柊璁惧绂荤嚎: " + deviceId);
Device device = deviceMapper.getDeviceByDeviceId(deviceId);
- if (device == null) return false;
+ if (device == null) {
+ return false;
+ }
device.setOnline(0);
redisCatchStorage.updateDevice(device);
return deviceMapper.update(device) > 0;
@@ -504,8 +474,8 @@
* @param endTime
*/
@Override
- public synchronized List<MobilePosition> queryMobilePositions(String deviceId, String startTime, String endTime) {
- return deviceMobilePositionMapper.queryPositionByDeviceIdAndTime(deviceId, startTime, endTime);
+ public synchronized List<MobilePosition> queryMobilePositions(String deviceId, String channelId, String startTime, String endTime) {
+ return deviceMobilePositionMapper.queryPositionByDeviceIdAndTime(deviceId, channelId, startTime, endTime);
}
@Override
@@ -524,7 +494,7 @@
parentPlatform.setCatalogGroup(1);
}
if (parentPlatform.getAdministrativeDivision() == null) {
- parentPlatform.setAdministrativeDivision(parentPlatform.getDeviceGBId().substring(0,6));
+ parentPlatform.setAdministrativeDivision(parentPlatform.getAdministrativeDivision());
}
ParentPlatformCatch parentPlatformCatch = redisCatchStorage.queryPlatformCatchInfo(parentPlatform.getServerGBId()); // .getDeviceGBId());
if (parentPlatform.getId() == null ) {
@@ -715,6 +685,7 @@
* 鍒犻櫎鎸囧畾璁惧鐨勬墍鏈夌Щ鍔ㄤ綅缃�
* @param deviceId
*/
+ @Override
public int clearMobilePositionsByDeviceId(String deviceId) {
return deviceMobilePositionMapper.clearMobilePositionsByDeviceId(deviceId);
}
@@ -730,7 +701,7 @@
boolean result = false;
streamProxyItem.setStreamType("proxy");
streamProxyItem.setStatus(true);
- String now = this.format.format(System.currentTimeMillis());
+ String now = DateUtil.getNow();
streamProxyItem.setCreateTime(now);
streamProxyItem.setCreateStamp(System.currentTimeMillis());
try {
@@ -860,7 +831,9 @@
@Override
public void updateMediaList(List<StreamPushItem> streamPushItems) {
- if (streamPushItems == null || streamPushItems.size() == 0) return;
+ if (streamPushItems == null || streamPushItems.size() == 0) {
+ return;
+ }
logger.info("updateMediaList: " + streamPushItems.size());
streamPushMapper.addAll(streamPushItems);
// TODO 寰呬紭鍖�
@@ -1081,7 +1054,7 @@
deviceChannel.setParentId(catalog.getParentId());
deviceChannel.setRegisterWay(1);
// 琛屾斂鍖哄垝搴旇鏄疍omain鐨勫墠鍏綅
- deviceChannel.setCivilCode(parentPlatByServerGBId.getDeviceGBId().substring(0,6));
+ deviceChannel.setCivilCode(parentPlatByServerGBId.getAdministrativeDivision());
deviceChannel.setModel("live");
deviceChannel.setOwner("wvp-pro");
deviceChannel.setSecrecy("0");
--
Gitblit v1.8.0