648540858
2023-10-13 14d554987685d7a8cfef0b95edca6c7d744c6a53
Merge branch 'wvp-28181-2.0' into main-dev
1个文件已修改
21 ■■■■■ 已修改文件
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
@@ -124,6 +124,7 @@
        List<DeviceChannel> updateChannels = new ArrayList<>();
        List<DeviceChannel> addChannels = new ArrayList<>();
        List<DeviceChannel> deleteChannels = new ArrayList<>();
        StringBuilder stringBuilder = new StringBuilder();
        Map<String, Integer> subContMap = new HashMap<>();
@@ -154,6 +155,7 @@
                deviceChannel.setUpdateTime(DateUtil.getNow());
                addChannels.add(deviceChannel);
            }
            allChannelMap.remove(deviceChannel.getChannelId());
            channels.add(deviceChannel);
            if (!ObjectUtils.isEmpty(deviceChannel.getParentId())) {
                if (subContMap.get(deviceChannel.getParentId()) == null) {
@@ -164,6 +166,7 @@
                }
            }
        }
        deleteChannels.addAll(allChannelMap.values());
        if (!channels.isEmpty()) {
            for (DeviceChannel channel : channels) {
                if (subContMap.get(channel.getChannelId()) != null){
@@ -186,7 +189,7 @@
        try {
            int limitCount = 50;
            boolean result = false;
            if (!result && addChannels.size() > 0) {
            if (!result && !addChannels.isEmpty()) {
                if (addChannels.size() > limitCount) {
                    for (int i = 0; i < addChannels.size(); i += limitCount) {
                        int toIndex = i + limitCount;
@@ -199,7 +202,7 @@
                    result = result || deviceChannelMapper.batchAdd(addChannels) < 0;
                }
            }
            if (!result && updateChannels.size() > 0) {
            if (!result && !updateChannels.isEmpty()) {
                if (updateChannels.size() > limitCount) {
                    for (int i = 0; i < updateChannels.size(); i += limitCount) {
                        int toIndex = i + limitCount;
@@ -212,6 +215,20 @@
                    result = result || deviceChannelMapper.batchUpdate(updateChannels) < 0;
                }
            }
            if (!result && !deleteChannels.isEmpty()) {
                System.out.println("删除: " + deleteChannels.size());
                if (deleteChannels.size() > limitCount) {
                    for (int i = 0; i < deleteChannels.size(); i += limitCount) {
                        int toIndex = i + limitCount;
                        if (i + limitCount > deleteChannels.size()) {
                            toIndex = deleteChannels.size();
                        }
                        result = result || deviceChannelMapper.batchDel(deleteChannels.subList(i, toIndex)) < 0;
                    }
                }else {
                    result = result || deviceChannelMapper.batchDel(deleteChannels) < 0;
                }
            }
            if (result) {
                //事务回滚