From baeffa4311622a8f087fd20b5fe47ed9d6fccf41 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期六, 10 八月 2024 20:59:52 +0800 Subject: [PATCH] Merge pull request #1559 from koisi-io/fix --- src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java | 23 ++++++++++++++++++----- 1 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java index 67e34a0..75cfb12 100755 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java @@ -275,15 +275,23 @@ } @Override - public void batchUpdateChannel(List<DeviceChannel> channels) { + public synchronized void batchUpdateChannel(List<DeviceChannel> channels) { String now = DateUtil.getNow(); for (DeviceChannel channel : channels) { channel.setUpdateTime(now); } - channelMapper.batchUpdate(channels); - for (DeviceChannel channel : channels) { - if (channel.getParentId() != null) { - channelMapper.updateChannelSubCount(channel.getDeviceId(), channel.getParentId()); + int limitCount = 1000; + if (!channels.isEmpty()) { + if (channels.size() > limitCount) { + for (int i = 0; i < channels.size(); i += limitCount) { + int toIndex = i + limitCount; + if (i + limitCount > channels.size()) { + toIndex = channels.size(); + } + channelMapper.batchUpdate(channels.subList(i, toIndex)); + } + }else { + channelMapper.batchUpdate(channels); } } } @@ -372,6 +380,11 @@ } @Override + public void stopPlay(String deviceId, String channelId) { + channelMapper.stopPlay(deviceId, channelId); + } + + @Override @Transactional public void batchUpdateChannelGPS(List<DeviceChannel> channelList) { for (DeviceChannel deviceChannel : channelList) { -- Gitblit v1.8.0