sql/2.6.6-2.6.7更新.sql | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
sql/2.6.7-2.6.8更新.sql | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/genersoft/iot/vmp/service/impl/PlatformChannelServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
web_src/src/components/dialog/chooseChannel.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
web_src/src/components/dialog/chooseChannelForGb.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
web_src/src/components/dialog/chooseChannelForStream.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
sql/2.6.6-2.6.7¸üÐÂ.sql
@@ -4,3 +4,9 @@ alter table parent_platform add asMessageChannel int default 0; alter table device add mediaServerId varchar(50) default null; sql/2.6.7-2.6.8¸üÐÂ.sql
File was deleted src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java
@@ -41,6 +41,9 @@ private PlatformGbStreamMapper platformGbStreamMapper; @Autowired private SubscribeHolder subscribeHolder; @Autowired private ParentPlatformMapper platformMapper; @Autowired @@ -73,16 +76,23 @@ } try { List<DeviceChannel> deviceChannelList = new ArrayList<>(); for (GbStream gbStream : gbStreams) { for (int i = 0; i < gbStreams.size(); i++) { GbStream gbStream = gbStreams.get(i); gbStream.setCatalogId(catalogId); gbStream.setPlatformId(platformId); // TODO ä¿®æ¹ä¸ºæ¹éæäº¤ platformGbStreamMapper.add(gbStream); logger.info("[å ³èéé]ç´ææµéé å¹³å°ï¼{}, å ±éå ³èééæ°:{}, å·²å ³èï¼{}", platformId, gbStreams.size(), i + 1); DeviceChannel deviceChannelListByStream = getDeviceChannelListByStreamWithStatus(gbStream, catalogId, parentPlatform); deviceChannelList.add(deviceChannelListByStream); } dataSourceTransactionManager.commit(transactionStatus); //æå¨æäº¤ eventPublisher.catalogEventPublish(platformId, deviceChannelList, CatalogEvent.ADD); if (subscribeHolder.getCatalogSubscribe(platformId) != null) { eventPublisher.catalogEventPublish(platformId, deviceChannelList, CatalogEvent.ADD); } result = true; }catch (Exception e) { logger.error("æ¹éä¿åæµä¸å¹³å°çå ³ç³»æ¶é误", e); src/main/java/com/genersoft/iot/vmp/service/impl/PlatformChannelServiceImpl.java
@@ -1,9 +1,6 @@ package com.genersoft.iot.vmp.service.impl; import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; import com.genersoft.iot.vmp.gb28181.bean.PlatformCatalog; import com.genersoft.iot.vmp.gb28181.bean.TreeType; import com.genersoft.iot.vmp.gb28181.bean.*; import com.genersoft.iot.vmp.gb28181.event.EventPublisher; import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent; import com.genersoft.iot.vmp.service.IPlatformChannelService; @@ -15,7 +12,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.stereotype.Service; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionStatus; import org.springframework.util.ObjectUtils; import java.util.ArrayList; @@ -33,6 +33,16 @@ @Autowired private PlatformChannelMapper platformChannelMapper; @Autowired TransactionDefinition transactionDefinition; @Autowired DataSourceTransactionManager dataSourceTransactionManager; @Autowired private SubscribeHolder subscribeHolder; @Autowired private DeviceChannelMapper deviceChannelMapper; @@ -69,17 +79,47 @@ } List<ChannelReduce> channelReducesToAdd = new ArrayList<>(deviceAndChannels.values()); // 对å©ä¸çæ°æ®è¿è¡åå¨ int result = 0; int allCount = 0; boolean result = false; TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); int limitCount = 300; if (channelReducesToAdd.size() > 0) { result = platformChannelMapper.addChannels(platformId, channelReducesToAdd); // TODO åç»ç»å¹³å°å¢å æ§å¶å¼å ³ä»¥æ§å¶æ¯å¦ååºç®å½è®¢é List<DeviceChannel> deviceChannelList = getDeviceChannelListByChannelReduceList(channelReducesToAdd, catalogId, platform); if (deviceChannelList != null) { eventPublisher.catalogEventPublish(platformId, deviceChannelList, CatalogEvent.ADD); if (channelReducesToAdd.size() > limitCount) { for (int i = 0; i < channelReducesToAdd.size(); i += limitCount) { int toIndex = i + limitCount; if (i + limitCount > channelReducesToAdd.size()) { toIndex = channelReducesToAdd.size(); } int count = platformChannelMapper.addChannels(platformId, channelReducesToAdd.subList(i, toIndex)); result = result || count < 0; allCount += count; logger.info("[å ³èéé]彿 éé å¹³å°ï¼{}, å ±éå ³èééæ°:{}, å·²å ³èï¼{}", platformId, channelReducesToAdd.size(), toIndex); } }else { allCount = platformChannelMapper.addChannels(platformId, channelReducesToAdd); result = result || allCount < 0; logger.info("[å ³èéé]彿 éé å¹³å°ï¼{}, å ³èééæ°:{}", platformId, channelReducesToAdd.size()); } } return result; if (result) { //äºå¡åæ» dataSourceTransactionManager.rollback(transactionStatus); allCount = 0; }else { logger.info("[å ³èéé]彿 éé å¹³å°ï¼{}, æ£å¨åå ¥æ°æ®åº", platformId); dataSourceTransactionManager.commit(transactionStatus); } SubscribeInfo catalogSubscribe = subscribeHolder.getCatalogSubscribe(platformId); if (catalogSubscribe != null) { List<DeviceChannel> deviceChannelList = getDeviceChannelListByChannelReduceList(channelReducesToAdd, catalogId, platform); if (deviceChannelList != null) { eventPublisher.catalogEventPublish(platformId, deviceChannelList, CatalogEvent.ADD); } } logger.info("[å ³èéé]彿 éé å¹³å°ï¼{}, åå ¥æ°æ®åºæå", platformId); } return allCount; } private List<DeviceChannel> getDeviceChannelListByChannelReduceList(List<ChannelReduce> channelReduces, String catalogId, ParentPlatform platform) { web_src/src/components/dialog/chooseChannel.vue
@@ -1,7 +1,7 @@ <template> <div id="chooseChannel" v-loading="isLoging"> <div id="chooseChannel" > <el-dialog title="éæ©éé" v-if="showDialog" top="2rem" width="90%" :close-on-click-modal="false" :visible.sync="showDialog" :destroy-on-close="true" @close="close()"> <el-dialog title="éæ©éé" v-loading="loading" v-if="showDialog" top="2rem" width="90%" :close-on-click-modal="false" :visible.sync="showDialog" :destroy-on-close="true" @close="close()"> <el-row> <el-col :span="10"> <el-tabs v-model="catalogTabActiveName" > @@ -56,7 +56,7 @@ }, data() { return { isLoging: false, loading: false, tabActiveName: "gbChannel", catalogTabActiveName: "catalog", platformId: "", @@ -94,18 +94,17 @@ }, save: function() { var that = this; this.$axios({ method:"post", url:"/api/platform/update_channel_for_gb", data:{ platformId: that.platformId, channelReduces: that.chooseData platformId: this.platformId, channelReduces: this.chooseData } }).then((res)=>{ if (res.data.code === 0) { that.$message({ this.$message({ showClose: true, message: 'ä¿åæå,', type: 'success' @@ -114,6 +113,7 @@ }).catch(function (error) { console.log(error); }); }, catalogIdChange: function (id, name) { this.catalogId = id; web_src/src/components/dialog/chooseChannelForGb.vue
@@ -1,5 +1,5 @@ <template> <div id="chooseChannelForGb" > <div id="chooseChannelForGb" v-loading="loading"> <div style="font-size: 17px; color: #606060; white-space: nowrap; line-height: 30px; font-family: monospace;"> <span v-if="catalogId == null">{{catalogName}}ç彿 éé</span> <span v-if="catalogId != null">{{catalogName}}({{catalogId}})ç彿 éé</span> @@ -79,6 +79,7 @@ }, data() { return { loading: false, gbChannels: [], gbChoosechannel:{}, searchSrt: "", @@ -118,7 +119,9 @@ }, add: function (row) { let all = typeof(row) === "undefined" this.getCatalogFromUser((catalogId)=> { let task = null; this.$axios({ method:"post", url:"/api/platform/update_channel_for_gb", @@ -130,12 +133,20 @@ } }).then((res)=>{ console.log("ä¿åæå") window.clearTimeout(task); this.loading = false; this.getChannelList(); }).catch(function (error) { }).catch((error)=> { window.clearTimeout(task); this.loading = false; console.log(error); }); task= setTimeout(()=>{ this.loading = true; }, 200) }) }, remove: function (row) { let all = typeof(row) === "undefined" web_src/src/components/dialog/chooseChannelForStream.vue
@@ -1,5 +1,5 @@ <template> <div id="chooseChannelFoStream" > <div id="chooseChannelFoStream" v-loading="loading"> <div style="font-size: 17px; color: #606060; white-space: nowrap; line-height: 30px; font-family: monospace;"> <span v-if="catalogId == null">{{catalogName}}çç´æéé</span> <span v-if="catalogId != null">{{catalogName}}({{catalogId}})çç´æéé</span> @@ -85,6 +85,7 @@ }, data() { return { loading: false, gbStreams: [], gbChoosechannel:{}, channelType: "", @@ -132,6 +133,7 @@ add: function (row, scope) { let all = typeof(row) === "undefined" this.getCatalogFromUser((catalogId)=>{ let task = null; this.$axios({ method:"post", url:"/api/gbStream/add", @@ -143,11 +145,18 @@ } }).then((res)=>{ console.log("ä¿åæå") window.clearTimeout(task); this.loading = false; // this.gbStreams.splice(scope.$index,1) this.getChannelList(); }).catch(function (error) { window.clearTimeout(task); this.loading = false; console.log(error); }); task= setTimeout(()=>{ this.loading = true; }, 200) })