From 943f95ba8ce02f8088f2dfcfd83a60391a8a65a6 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 14 三月 2023 14:02:33 +0800
Subject: [PATCH] 增加消息通道配置,可以通道redis在wvp上下级之间发送消息
---
src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java | 11 +++
web_src/src/components/dialog/platformEdit.vue | 6 +
src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordItem.java | 27 ++++++--
src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java | 11 +++
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 2
sql/初始化.sql | 2
src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java | 10 ++-
src/main/resources/all-application.yml | 4
src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java | 46 +++++++++++++--
src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java | 13 +++
web_src/index.html | 1
src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java | 12 ++++
src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorage.java | 3 +
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java | 10 +++
web_src/src/components/dialog/deviceEdit.vue | 1
sql/2.6.6-2.6.7更新.sql | 6 ++
src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java | 9 +++
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java | 2
18 files changed, 151 insertions(+), 25 deletions(-)
diff --git "a/sql/2.6.6-2.6.7\346\233\264\346\226\260.sql" "b/sql/2.6.6-2.6.7\346\233\264\346\226\260.sql"
new file mode 100755
index 0000000..df595a8
--- /dev/null
+++ "b/sql/2.6.6-2.6.7\346\233\264\346\226\260.sql"
@@ -0,0 +1,6 @@
+alter table device
+ add asMessageChannel int default 0;
+
+alter table parent_platform
+ add asMessageChannel int default 0;
+
diff --git "a/src/main/resources/db/migration/V2.6.7_20230201__\345\210\235\345\247\213\345\214\226.sql" "b/sql/\345\210\235\345\247\213\345\214\226.sql"
similarity index 98%
rename from "src/main/resources/db/migration/V2.6.7_20230201__\345\210\235\345\247\213\345\214\226.sql"
rename to "sql/\345\210\235\345\247\213\345\214\226.sql"
index 7a15f90..a8dfaff 100644
--- "a/src/main/resources/db/migration/V2.6.7_20230201__\345\210\235\345\247\213\345\214\226.sql"
+++ "b/sql/\345\210\235\345\247\213\345\214\226.sql"
@@ -47,6 +47,7 @@
`mobilePositionSubmissionInterval` int DEFAULT '5',
`subscribeCycleForAlarm` int DEFAULT NULL,
`ssrcCheck` int DEFAULT '0',
+ `asMessageChannel` int DEFAULT '0',
`geoCoordSys` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`treeType` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`custom_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
@@ -329,6 +330,7 @@
`catalogId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`ptz` int DEFAULT NULL,
`rtcp` int DEFAULT NULL,
+ `asMessageChannel` int DEFAULT '0',
`status` bit(1) DEFAULT NULL,
`startOfflinePush` int DEFAULT '0',
`administrativeDivision` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
diff --git a/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java b/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java
index 1e7fd36..b413d88 100644
--- a/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java
+++ b/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java
@@ -48,6 +48,7 @@
private Boolean syncChannelOnDeviceOnline = Boolean.FALSE;
private Boolean sipLog = Boolean.FALSE;
+ private Boolean sendToPlatformsWhenIdLost = Boolean.FALSE;
private String serverId = "000000";
@@ -218,4 +219,12 @@
public void setSipLog(Boolean sipLog) {
this.sipLog = sipLog;
}
+
+ public Boolean getSendToPlatformsWhenIdLost() {
+ return sendToPlatformsWhenIdLost;
+ }
+
+ public void setSendToPlatformsWhenIdLost(Boolean sendToPlatformsWhenIdLost) {
+ this.sendToPlatformsWhenIdLost = sendToPlatformsWhenIdLost;
+ }
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java
index e454896..83b9c6a 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java
@@ -188,6 +188,9 @@
@Schema(description = "SIP浜や簰IP锛堣澶囪闂钩鍙扮殑IP锛�")
private String localIp;
+ @Schema(description = "鏄惁浣滀负娑堟伅閫氶亾")
+ private boolean asMessageChannel;
+
public String getDeviceId() {
return deviceId;
@@ -428,4 +431,12 @@
public void setKeepaliveIntervalTime(int keepaliveIntervalTime) {
this.keepaliveIntervalTime = keepaliveIntervalTime;
}
+
+ public boolean isAsMessageChannel() {
+ return asMessageChannel;
+ }
+
+ public void setAsMessageChannel(boolean asMessageChannel) {
+ this.asMessageChannel = asMessageChannel;
+ }
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java
index b056cc7..01a11eb 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java
@@ -189,6 +189,9 @@
@Schema(description = "鏍戠被鍨� 鍥芥爣瑙勫畾浜嗕袱绉嶆爲鐨勫睍鐜版柟寮� 琛屾斂鍖哄垝 CivilCode 鍜屼笟鍔″垎缁�:BusinessGrou")
private String treeType;
+ @Schema(description = "鏄惁浣滀负娑堟伅閫氶亾")
+ private boolean asMessageChannel;
+
public Integer getId() {
return id;
}
@@ -428,4 +431,12 @@
public void setTreeType(String treeType) {
this.treeType = treeType;
}
+
+ public boolean isAsMessageChannel() {
+ return asMessageChannel;
+ }
+
+ public void setAsMessageChannel(boolean asMessageChannel) {
+ this.asMessageChannel = asMessageChannel;
+ }
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java
index 41aebf5..7ff5283 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java
@@ -1,6 +1,8 @@
package com.genersoft.iot.vmp.gb28181.bean;
+import io.swagger.v3.oas.annotations.media.Schema;
+
import java.time.Instant;
import java.util.List;
@@ -9,22 +11,29 @@
* @author: swwheihei
* @date: 2020骞�5鏈�8鏃� 涓嬪崍2:05:56
*/
+@Schema(description = "璁惧褰曞儚鏌ヨ缁撴灉淇℃伅")
public class RecordInfo {
+ @Schema(description = "璁惧缂栧彿")
private String deviceId;
+ @Schema(description = "閫氶亾缂栧彿")
private String channelId;
+ @Schema(description = "鍛戒护搴忓垪鍙�")
private String sn;
+ @Schema(description = "璁惧鍚嶇О")
private String name;
-
+
+ @Schema(description = "鍒楄〃鎬绘暟")
private int sumNum;
private int count;
private Instant lastTime;
-
+
+ @Schema(description = "")
private List<RecordItem> recordList;
public String getDeviceId() {
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordItem.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordItem.java
index a47147a..07e559c 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordItem.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordItem.java
@@ -2,9 +2,9 @@
import com.genersoft.iot.vmp.utils.DateUtil;
+import io.swagger.v3.oas.annotations.media.Schema;
import org.jetbrains.annotations.NotNull;
-import java.text.ParseException;
import java.time.Instant;
import java.time.temporal.TemporalAccessor;
@@ -13,26 +13,37 @@
* @author: swwheihei
* @date: 2020骞�5鏈�8鏃� 涓嬪崍2:06:54
*/
+@Schema(description = "璁惧褰曞儚璇︽儏")
public class RecordItem implements Comparable<RecordItem>{
+ @Schema(description = "璁惧缂栧彿")
private String deviceId;
-
+
+ @Schema(description = "鍚嶇О")
private String name;
-
+
+ @Schema(description = "鏂囦欢璺緞鍚� (鍙��)")
private String filePath;
+ @Schema(description = "褰曞儚鏂囦欢澶у皬,鍗曚綅:Byte(鍙��)")
private String fileSize;
+ @Schema(description = "褰曞儚鍦板潃(鍙��)")
private String address;
-
+
+ @Schema(description = "褰曞儚寮�濮嬫椂闂�(鍙��)")
private String startTime;
-
+
+ @Schema(description = "褰曞儚缁撴潫鏃堕棿(鍙��)")
private String endTime;
-
+
+ @Schema(description = "淇濆瘑灞炴��(蹇呴��)缂虹渷涓�0;0:涓嶆秹瀵�,1:娑夊瘑")
private int secrecy;
-
+
+ @Schema(description = "褰曞儚浜х敓绫诲瀷(鍙��)time鎴朼larm 鎴� manua")
private String type;
-
+
+ @Schema(description = "褰曞儚瑙﹀彂鑰匢D(鍙��)")
private String recorderId;
public String getDeviceId() {
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
index dabe1c8..740e837 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
@@ -1376,7 +1376,7 @@
if (device == null) {
return;
}
- logger.info("[鍙戦�� 鎶ヨ閫氱煡] {}/{}->{},{}", device.getDeviceId(), deviceAlarm.getChannelId(),
+ logger.info("[鍙戦�佹姤璀﹂�氱煡]璁惧锛� {}/{}->{},{}", device.getDeviceId(), deviceAlarm.getChannelId(),
deviceAlarm.getLongitude(), deviceAlarm.getLatitude());
String characterSet = device.getCharset();
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
index 6415241..b9d2c4c 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
@@ -402,7 +402,7 @@
if (parentPlatform == null) {
return;
}
- logger.info("[鍙戦�佹姤璀﹂�氱煡] {}/{}->{},{}: {}", parentPlatform.getServerGBId(), deviceAlarm.getChannelId(),
+ logger.info("[鍙戦�佹姤璀﹂�氱煡]骞冲彴锛� {}/{}->{},{}: {}", parentPlatform.getServerGBId(), deviceAlarm.getChannelId(),
deviceAlarm.getLongitude(), deviceAlarm.getLatitude(), JSON.toJSONString(deviceAlarm));
String characterSet = parentPlatform.getCharacterSet();
StringBuffer deviceStatusXml = new StringBuffer(600);
diff --git a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java
index 1cc754d..43528ec 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java
@@ -1,6 +1,7 @@
package com.genersoft.iot.vmp.service.redisMsg;
import com.alibaba.fastjson2.JSON;
+import com.genersoft.iot.vmp.conf.UserSetting;
import com.genersoft.iot.vmp.gb28181.bean.*;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
@@ -44,8 +45,12 @@
@Autowired
private ThreadPoolTaskExecutor taskExecutor;
+ @Autowired
+ private UserSetting userSetting;
+
@Override
public void onMessage(@NotNull Message message, byte[] bytes) {
+ // 娑堟伅绀轰緥锛� PUBLISH alarm_receive '{ "gbId": "", "alarmSn": 1, "alarmType": "111", "alarmDescription": "222", }'
logger.info("鏀跺埌鏉ヨ嚜REDIS鐨凙LARM閫氱煡锛� {}", new String(message.getBody()));
boolean isEmpty = taskQueue.isEmpty();
taskQueue.offer(message);
@@ -74,17 +79,44 @@
deviceAlarm.setLatitude(0);
if (ObjectUtils.isEmpty(gbId)) {
- // 鍙戦�佺粰鎵�鏈夌殑涓婄骇
- List<ParentPlatform> parentPlatforms = storage.queryEnableParentPlatformList(true);
- if (parentPlatforms.size() > 0) {
- for (ParentPlatform parentPlatform : parentPlatforms) {
+ if (userSetting.getSendToPlatformsWhenIdLost()) {
+ // 鍙戦�佺粰鎵�鏈夌殑涓婄骇
+ List<ParentPlatform> parentPlatforms = storage.queryEnableParentPlatformList(true);
+ if (parentPlatforms.size() > 0) {
+ for (ParentPlatform parentPlatform : parentPlatforms) {
+ try {
+ commanderForPlatform.sendAlarmMessage(parentPlatform, deviceAlarm);
+ } catch (SipException | InvalidArgumentException | ParseException e) {
+ logger.error("[鍛戒护鍙戦�佸け璐 鍥芥爣绾ц仈 鍙戦�佹姤璀�: {}", e.getMessage());
+ }
+ }
+ }
+ }else {
+ // 鑾峰彇寮�鍚簡娑堟伅鎺ㄩ�佺殑璁惧鍜屽钩鍙�
+ List<ParentPlatform> parentPlatforms = storage.queryEnablePlatformListWithAsMessageChannel();
+ if (parentPlatforms.size() > 0) {
+ for (ParentPlatform parentPlatform : parentPlatforms) {
+ try {
+ commanderForPlatform.sendAlarmMessage(parentPlatform, deviceAlarm);
+ } catch (SipException | InvalidArgumentException | ParseException e) {
+ logger.error("[鍛戒护鍙戦�佸け璐 鍥芥爣绾ц仈 鍙戦�佹姤璀�: {}", e.getMessage());
+ }
+ }
+ }
+
+ }
+ // 鑾峰彇寮�鍚簡娑堟伅鎺ㄩ�佺殑璁惧鍜屽钩鍙�
+ List<Device> devices = storage.queryDeviceWithAsMessageChannel();
+ if (devices.size() > 0) {
+ for (Device device : devices) {
try {
- commanderForPlatform.sendAlarmMessage(parentPlatform, deviceAlarm);
- } catch (SipException | InvalidArgumentException | ParseException e) {
- logger.error("[鍛戒护鍙戦�佸け璐 鍥芥爣绾ц仈 鍙戦�佹姤璀�: {}", e.getMessage());
+ commander.sendAlarmMessage(device, deviceAlarm);
+ } catch (InvalidArgumentException | SipException | ParseException e) {
+ logger.error("[鍛戒护鍙戦�佸け璐 鍙戦�佹姤璀�: {}", e.getMessage());
}
}
}
+
}else {
Device device = storage.queryVideoDevice(gbId);
ParentPlatform platform = storage.queryParentPlatByServerGBId(gbId);
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorage.java b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorage.java
index 5965678..b53c2d3 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorage.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorage.java
@@ -378,4 +378,7 @@
List<DeviceChannelExtend> queryChannelsByDeviceId(String serial, List<String> channelIds, Boolean online);
+ List<ParentPlatform> queryEnablePlatformListWithAsMessageChannel();
+
+ List<Device> queryDeviceWithAsMessageChannel();
}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java
index 0aed820..8f158e2 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java
@@ -39,6 +39,7 @@
"mobilePositionSubmissionInterval," +
"subscribeCycleForAlarm," +
"ssrcCheck," +
+ "asMessageChannel," +
"geoCoordSys," +
"treeType," +
"online" +
@@ -70,6 +71,7 @@
"mobilePositionSubmissionInterval," +
"subscribeCycleForAlarm," +
"ssrcCheck," +
+ "asMessageChannel," +
"geoCoordSys," +
"treeType," +
"online" +
@@ -98,6 +100,7 @@
"#{mobilePositionSubmissionInterval}," +
"#{subscribeCycleForAlarm}," +
"#{ssrcCheck}," +
+ "#{asMessageChannel}," +
"#{geoCoordSys}," +
"#{treeType}," +
"#{online}" +
@@ -152,6 +155,7 @@
"mobilePositionSubmissionInterval," +
"subscribeCycleForAlarm," +
"ssrcCheck," +
+ "asMessageChannel," +
"geoCoordSys," +
"treeType," +
"online," +
@@ -192,6 +196,7 @@
"mobilePositionSubmissionInterval," +
"subscribeCycleForAlarm," +
"ssrcCheck," +
+ "asMessageChannel," +
"geoCoordSys," +
"treeType," +
"online " +
@@ -222,6 +227,7 @@
"mobilePositionSubmissionInterval," +
"subscribeCycleForAlarm," +
"ssrcCheck," +
+ "asMessageChannel," +
"geoCoordSys," +
"treeType," +
"online" +
@@ -243,6 +249,7 @@
"<if test=\"mobilePositionSubmissionInterval != null\">, mobilePositionSubmissionInterval=#{mobilePositionSubmissionInterval}</if>" +
"<if test=\"subscribeCycleForAlarm != null\">, subscribeCycleForAlarm=#{subscribeCycleForAlarm}</if>" +
"<if test=\"ssrcCheck != null\">, ssrcCheck=#{ssrcCheck}</if>" +
+ "<if test=\"asMessageChannel != null\">, asMessageChannel=#{asMessageChannel}</if>" +
"<if test=\"geoCoordSys != null\">, geoCoordSys=#{geoCoordSys}</if>" +
"<if test=\"treeType != null\">, treeType=#{treeType}</if>" +
"<if test=\"mediaServerId != null\">, mediaServerId=#{mediaServerId}</if>" +
@@ -259,6 +266,7 @@
"updateTime," +
"charset," +
"ssrcCheck," +
+ "asMessageChannel," +
"geoCoordSys," +
"treeType," +
"online" +
@@ -271,6 +279,7 @@
"#{updateTime}," +
"#{charset}," +
"#{ssrcCheck}," +
+ "#{asMessageChannel}," +
"#{geoCoordSys}," +
"#{treeType}," +
"#{online}" +
@@ -282,4 +291,7 @@
@Select("select * from device")
List<Device> getAll();
+
+ @Select("select * from device where asMessageChannel = 1")
+ List<Device> queryDeviceWithAsMessageChannel();
}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java
index 52025eb..89ebd69 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java
@@ -15,10 +15,10 @@
public interface ParentPlatformMapper {
@Insert("INSERT INTO parent_platform (enable, name, serverGBId, serverGBDomain, serverIP, serverPort, deviceGBId, deviceIp, " +
- " devicePort, username, password, expires, keepTimeout, transport, characterSet, ptz, rtcp, " +
+ " devicePort, username, password, expires, keepTimeout, transport, characterSet, ptz, rtcp, asMessageChannel, " +
" status, startOfflinePush, catalogId, administrativeDivision, catalogGroup, createTime, updateTime, treeType) " +
" VALUES (#{enable}, #{name}, #{serverGBId}, #{serverGBDomain}, #{serverIP}, #{serverPort}, #{deviceGBId}, #{deviceIp}, " +
- " #{devicePort}, #{username}, #{password}, #{expires}, #{keepTimeout}, #{transport}, #{characterSet}, #{ptz}, #{rtcp}, " +
+ " #{devicePort}, #{username}, #{password}, #{expires}, #{keepTimeout}, #{transport}, #{characterSet}, #{ptz}, #{rtcp}, #{asMessageChannel}, " +
" #{status}, #{startOfflinePush}, #{catalogId}, #{administrativeDivision}, #{catalogGroup}, #{createTime}, #{updateTime}, #{treeType})")
int addParentPlatform(ParentPlatform parentPlatform);
@@ -40,6 +40,7 @@
"characterSet=#{characterSet}, " +
"ptz=#{ptz}, " +
"rtcp=#{rtcp}, " +
+ "asMessageChannel=#{asMessageChannel}, " +
"status=#{status}, " +
"startOfflinePush=#{startOfflinePush}, " +
"catalogGroup=#{catalogGroup}, " +
@@ -68,9 +69,12 @@
"FROM parent_platform pp ")
List<ParentPlatform> getParentPlatformList();
- @Select("SELECT * FROM parent_platform WHERE enable=#{enable}")
+ @Select("SELECT * FROM parent_platform WHERE enable=#{enable} ")
List<ParentPlatform> getEnableParentPlatformList(boolean enable);
+ @Select("SELECT * FROM parent_platform WHERE enable=1 and asMessageChannel = 1")
+ List<ParentPlatform> queryEnablePlatformListWithAsMessageChannel();
+
@Select("SELECT * FROM parent_platform WHERE serverGBId=#{platformGbId}")
ParentPlatform getParentPlatByServerGBId(String platformGbId);
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 9475abc..3920fc7 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
@@ -525,6 +525,16 @@
}
@Override
+ public List<ParentPlatform> queryEnablePlatformListWithAsMessageChannel() {
+ return platformMapper.queryEnablePlatformListWithAsMessageChannel();
+ }
+
+ @Override
+ public List<Device> queryDeviceWithAsMessageChannel() {
+ return deviceMapper.queryDeviceWithAsMessageChannel();
+ }
+
+ @Override
public void outlineForAllParentPlatform() {
platformMapper.outlineForAllParentPlatform();
}
diff --git a/src/main/resources/all-application.yml b/src/main/resources/all-application.yml
index 3908019..89da5e0 100644
--- a/src/main/resources/all-application.yml
+++ b/src/main/resources/all-application.yml
@@ -199,8 +199,8 @@
sip-use-source-ip-as-remote-address: false
# 鏄惁寮�鍚痵ip鏃ュ織
sip-log: true
- # 鑷姩鏁版嵁搴撳崌绾э紝淇濊瘉琛ㄧ粨鏋勫畬鏁�
- sync-db: true
+ # 娑堟伅閫氶亾鍔熻兘-缂哄皯鍥芥爣ID鏄惁缁欐墍鏈変笂绾у彂閫佹秷鎭�
+ send-to-platforms-when-id-lost: true
# 鍏抽棴鍦ㄧ嚎鏂囨。锛堢敓浜х幆澧冨缓璁叧闂級
springdoc:
diff --git a/web_src/index.html b/web_src/index.html
index 778591e..bd66d39 100644
--- a/web_src/index.html
+++ b/web_src/index.html
@@ -15,5 +15,6 @@
<script type="text/javascript" src="./static/js/ZLMRTCClient.js"></script>
<script type="text/javascript" src="./static/js/config.js"></script>
<div id="app"></div>
+
</body>
</html>
diff --git a/web_src/src/components/dialog/deviceEdit.vue b/web_src/src/components/dialog/deviceEdit.vue
index 8a5f9d1..7597c10 100644
--- a/web_src/src/components/dialog/deviceEdit.vue
+++ b/web_src/src/components/dialog/deviceEdit.vue
@@ -66,6 +66,7 @@
</el-form-item>
<el-form-item label="鍏朵粬閫夐」">
<el-checkbox label="SSRC鏍¢獙" v-model="form.ssrcCheck" style="float: left"></el-checkbox>
+ <el-checkbox label="浣滀负娑堟伅閫氶亾" v-model="form.asMessageChannel" style="float: left"></el-checkbox>
</el-form-item>
<el-form-item>
<div style="float: right;">
diff --git a/web_src/src/components/dialog/platformEdit.vue b/web_src/src/components/dialog/platformEdit.vue
index 7638232..2844fcc 100644
--- a/web_src/src/components/dialog/platformEdit.vue
+++ b/web_src/src/components/dialog/platformEdit.vue
@@ -96,9 +96,10 @@
</el-form-item>
<el-form-item label="鍏朵粬閫夐」">
<el-checkbox label="鍚敤" v-model="platform.enable" @change="checkExpires"></el-checkbox>
- <el-checkbox label="浜戝彴鎺у埗" v-model="platform.ptz"></el-checkbox>
+<!-- <el-checkbox label="浜戝彴鎺у埗" v-model="platform.ptz"></el-checkbox>-->
<el-checkbox label="鎷夎捣绂荤嚎鎺ㄦ祦" v-model="platform.startOfflinePush"></el-checkbox>
<el-checkbox label="RTCP淇濇椿" v-model="platform.rtcp" @change="rtcpCheckBoxChange"></el-checkbox>
+ <el-checkbox label="浣滀负娑堟伅閫氶亾" v-model="platform.asMessageChannel" ></el-checkbox>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">{{
@@ -145,6 +146,7 @@
enable: true,
ptz: true,
rtcp: false,
+ asMessageChannel: false,
name: null,
serverGBId: null,
serverGBDomain: null,
@@ -213,6 +215,7 @@
this.platform.enable = platform.enable;
this.platform.ptz = platform.ptz;
this.platform.rtcp = platform.rtcp;
+ this.platform.rtcpasMessageChannel = platform.asMessageChannel;
this.platform.name = platform.name;
this.platform.serverGBId = platform.serverGBId;
this.platform.serverGBDomain = platform.serverGBDomain;
@@ -290,6 +293,7 @@
enable: true,
ptz: true,
rtcp: false,
+ asMessageChannel: false,
name: null,
serverGBId: null,
administrativeDivision: null,
--
Gitblit v1.8.0