From 1d753b48c023090430c2931fd8e3a45a382eddf8 Mon Sep 17 00:00:00 2001 From: hotcoffie <35990065+hotcoffie@users.noreply.github.com> Date: 星期二, 17 五月 2022 11:53:42 +0800 Subject: [PATCH] Merge branch '648540858:wvp-28181-2.0' into wvp-28181-2.0 --- src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java | 65 ++++++++------------------------ 1 files changed, 17 insertions(+), 48 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 2dc88f8..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,6 +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.DateUtil; import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -26,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瀹炵幇 @@ -91,9 +92,6 @@ @Autowired private ParentPlatformMapper parentPlatformMapper; - private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - - /** * 鏍规嵁璁惧ID鍒ゆ柇璁惧鏄惁瀛樺湪 * @@ -105,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(); @@ -152,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) { @@ -178,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); @@ -193,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); @@ -239,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) { @@ -732,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 { -- Gitblit v1.8.0