|
@@ -121,11 +121,16 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
|
|
|
@Override
|
|
|
public boolean resetChannels(String deviceId, List<DeviceChannel> deviceChannelList) {
|
|
|
if (CollectionUtils.isEmpty(deviceChannelList)) {
|
|
|
+ logger.error("[fn: resetChannels] 设备通道列表为空,deviceId:" + deviceId);
|
|
|
return false;
|
|
|
}
|
|
|
+ // 获取设备autoUpdate 字段 Integer getAutoUpdateByDeviceId
|
|
|
+ Integer autoUpdate = deviceMapper.getAutoUpdateByDeviceId(deviceId);
|
|
|
+
|
|
|
List<DeviceChannel> allChannels = deviceChannelMapper.queryAllChannels(deviceId);
|
|
|
Map<String,DeviceChannel> allChannelMap = new ConcurrentHashMap<>();
|
|
|
if (allChannels.size() > 0) {
|
|
|
+ // 数据添加至map中
|
|
|
for (DeviceChannel deviceChannel : allChannels) {
|
|
|
allChannelMap.put(deviceChannel.getChannelId(), deviceChannel);
|
|
|
}
|
|
@@ -139,9 +144,11 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
|
|
|
// 数据去重
|
|
|
Set<String> gbIdSet = new HashSet<>();
|
|
|
for (DeviceChannel deviceChannel : deviceChannelList) {
|
|
|
+ // 遇到相同通道id的数据,只保留第一条
|
|
|
if (!gbIdSet.contains(deviceChannel.getChannelId())) {
|
|
|
gbIdSet.add(deviceChannel.getChannelId());
|
|
|
if (allChannelMap.containsKey(deviceChannel.getChannelId())) {
|
|
|
+ logger.info("[通道更新] 通道:{} 将会继承部分旧数据", deviceChannel.getChannelId());
|
|
|
deviceChannel.setStreamId(allChannelMap.get(deviceChannel.getChannelId()).getStreamId());
|
|
|
deviceChannel.setHasAudio(allChannelMap.get(deviceChannel.getChannelId()).isHasAudio());
|
|
|
if (allChannelMap.get(deviceChannel.getChannelId()).getStatus() !=deviceChannel.getStatus()){
|
|
@@ -153,8 +160,12 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ if(autoUpdate == 0){
|
|
|
+ deviceChannel.setName(allChannelMap.get(deviceChannel.getChannelId()).getName());
|
|
|
+ }
|
|
|
}
|
|
|
channels.add(deviceChannel);
|
|
|
+
|
|
|
if (!ObjectUtils.isEmpty(deviceChannel.getParentId())) {
|
|
|
if (subContMap.get(deviceChannel.getParentId()) == null) {
|
|
|
subContMap.put(deviceChannel.getParentId(), 1);
|
|
@@ -167,12 +178,14 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
|
|
|
stringBuilder.append(deviceChannel.getChannelId()).append(",");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
if (channels.size() > 0) {
|
|
|
for (DeviceChannel channel : channels) {
|
|
|
if (subContMap.get(channel.getChannelId()) != null){
|
|
|
channel.setSubCount(subContMap.get(channel.getChannelId()));
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -184,9 +197,13 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
|
|
|
return false;
|
|
|
}
|
|
|
try {
|
|
|
+ // 删除旧通道
|
|
|
int cleanChannelsResult = deviceChannelMapper.cleanChannelsNotInList(deviceId, channels);
|
|
|
int limitCount = 300;
|
|
|
boolean result = cleanChannelsResult < 0;
|
|
|
+
|
|
|
+ logger.info("[测试] 数据通道更新" );
|
|
|
+ // 新增通道
|
|
|
if (!result && channels.size() > 0) {
|
|
|
if (channels.size() > limitCount) {
|
|
|
for (int i = 0; i < channels.size(); i += limitCount) {
|
|
@@ -194,9 +211,11 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
|
|
|
if (i + limitCount > channels.size()) {
|
|
|
toIndex = channels.size();
|
|
|
}
|
|
|
+// logger.info("[测试1] 新增设备通道{}", i + " - " + toIndex + " 之间的数据" );
|
|
|
result = result || deviceChannelMapper.batchAdd(channels.subList(i, toIndex)) < 0;
|
|
|
}
|
|
|
}else {
|
|
|
+// logger.info("[测试2] 新增设备通道{}", channels.size() + " 之间的数据" );
|
|
|
result = result || deviceChannelMapper.batchAdd(channels) < 0;
|
|
|
}
|
|
|
}
|