From 46cf650a863f9181f78c09f9b1146972844449bc Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 21 一月 2022 18:00:15 +0800
Subject: [PATCH] 优化通道选择是通道的查询
---
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java | 81 ++++++++++++++++++++++++---
web_src/src/components/dialog/platformEdit.vue | 14 +++-
src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java | 25 ++++---
src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java | 2
4 files changed, 98 insertions(+), 24 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java
index 1c8f191..13277c2 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java
@@ -146,20 +146,23 @@
result.append(", 鍏宠仈鍥芥爣骞冲彴[ " + param.getPlatformGbId() + " ]澶辫触");
}
}
- // 鏌ユ壘寮�鍚簡鍏ㄩ儴鐩存挱娴佸叡浜殑涓婄骇骞冲彴
- List<ParentPlatform> parentPlatforms = parentPlatformMapper.selectAllAhareAllLiveStream();
- if (parentPlatforms.size() > 0) {
- for (ParentPlatform parentPlatform : parentPlatforms) {
- param.setPlatformId(parentPlatform.getServerGBId());
- param.setCatalogId(parentPlatform.getCatalogId());
- String stream = param.getStream();
- StreamProxyItem streamProxyItems = platformGbStreamMapper.selectOne(param.getApp(), stream, parentPlatform.getServerGBId());
- if (streamProxyItems == null) {
- platformGbStreamMapper.add(param);
- eventPublisher.catalogEventPublishForStream(parentPlatform.getServerGBId(), param, CatalogEvent.ADD);
+ if (!StringUtils.isEmpty(param.getGbId())) {
+ // 鏌ユ壘寮�鍚簡鍏ㄩ儴鐩存挱娴佸叡浜殑涓婄骇骞冲彴
+ List<ParentPlatform> parentPlatforms = parentPlatformMapper.selectAllAhareAllLiveStream();
+ if (parentPlatforms.size() > 0) {
+ for (ParentPlatform parentPlatform : parentPlatforms) {
+ param.setPlatformId(parentPlatform.getServerGBId());
+ param.setCatalogId(parentPlatform.getCatalogId());
+ String stream = param.getStream();
+ StreamProxyItem streamProxyItems = platformGbStreamMapper.selectOne(param.getApp(), stream, parentPlatform.getServerGBId());
+ if (streamProxyItems == null) {
+ platformGbStreamMapper.add(param);
+ eventPublisher.catalogEventPublishForStream(parentPlatform.getServerGBId(), param, CatalogEvent.ADD);
+ }
}
}
}
+
wvpResult.setMsg(result.toString());
return wvpResult;
}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
index 4a12ce4..ea5e2e4 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
@@ -96,7 +96,7 @@
"SELECT * FROM ( "+
" SELECT dc.channelId, dc.deviceId, dc.name, de.manufacturer, de.hostAddress, " +
"(SELECT count(0) FROM device_channel WHERE parentId=dc.channelId) as subCount, " +
- "(SELECT pc.platformId FROM platform_gb_channel pc WHERE pc.deviceId=dc.deviceId AND pc.channelId = dc.channelId ) as platformId, " +
+ "(SELECT pc.platformId FROM platform_gb_channel pc WHERE pc.deviceId=dc.deviceId AND pc.channelId = dc.channelId AND pc.platformId = #{platformId}) as platformId, " +
"(SELECT pc.catalogId FROM platform_gb_channel pc WHERE pc.deviceId=dc.deviceId AND pc.channelId = dc.channelId ) as catalogId " +
"FROM device_channel dc " +
"LEFT JOIN device de ON dc.deviceId = de.deviceId " +
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
index c486b42..1111ff7 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
@@ -87,21 +87,22 @@
}
/**
- * 淇濆瓨涓婄骇骞冲彴淇℃伅
+ * 娣诲姞涓婄骇骞冲彴淇℃伅
* @param parentPlatform
* @return
*/
- @ApiOperation("淇濆瓨涓婄骇骞冲彴淇℃伅")
+ @ApiOperation("娣诲姞涓婄骇骞冲彴淇℃伅")
@ApiImplicitParams({
@ApiImplicitParam(name = "parentPlatform", value = "涓婄骇骞冲彴淇℃伅", dataTypeClass = ParentPlatform.class),
})
- @PostMapping("/save")
+ @PostMapping("/add")
@ResponseBody
- public ResponseEntity<String> savePlatform(@RequestBody ParentPlatform parentPlatform){
+ public ResponseEntity<WVPResult<String>> addPlatform(@RequestBody ParentPlatform parentPlatform){
if (logger.isDebugEnabled()) {
logger.debug("淇濆瓨涓婄骇骞冲彴淇℃伅API璋冪敤");
}
+ WVPResult<String> wvpResult = new WVPResult<>();
if (StringUtils.isEmpty(parentPlatform.getName())
||StringUtils.isEmpty(parentPlatform.getServerGBId())
||StringUtils.isEmpty(parentPlatform.getServerGBDomain())
@@ -113,11 +114,69 @@
||StringUtils.isEmpty(parentPlatform.getTransport())
||StringUtils.isEmpty(parentPlatform.getCharacterSet())
){
- return new ResponseEntity<>("missing parameters", HttpStatus.BAD_REQUEST);
+ wvpResult.setCode(-1);
+ wvpResult.setMsg("missing parameters");
+ return new ResponseEntity<>(wvpResult, HttpStatus.BAD_REQUEST);
}
- // TODO 妫�鏌ユ槸鍚﹀凡缁忓瓨鍦�,涓旀敞鍐屾垚鍔�, 濡傛灉娉ㄥ唽鎴愬姛,闇�瑕佸厛娉ㄩ攢涔嬪墠鍐�,淇敼骞舵敞鍐�
- // ParentPlatform parentPlatformOld = storager.queryParentPlatById(parentPlatform.getDeviceGBId());
+ ParentPlatform parentPlatformOld = storager.queryParentPlatByServerGBId(parentPlatform.getServerGBId());
+ if (parentPlatformOld != null) {
+ wvpResult.setCode(-1);
+ wvpResult.setMsg("骞冲彴 "+parentPlatform.getServerGBId()+" 宸插瓨鍦�");
+ return new ResponseEntity<>(wvpResult, HttpStatus.OK);
+ }
+ boolean updateResult = storager.updateParentPlatform(parentPlatform);
+
+ if (updateResult) {
+ // 淇濆瓨鏃跺惎鐢ㄥ氨鍙戦�佹敞鍐�
+ if (parentPlatform.isEnable()) {
+ // 鍙淇濆瓨灏卞彂閫佹敞鍐�
+ commanderForPlatform.register(parentPlatform, null, null);
+ } else if (parentPlatformOld != null && parentPlatformOld.isEnable() && !parentPlatform.isEnable()){ // 鍏抽棴鍚敤鏃舵敞閿�
+ commanderForPlatform.unregister(parentPlatform, null, null);
+ }
+ wvpResult.setCode(0);
+ wvpResult.setMsg("success");
+ return new ResponseEntity<>(wvpResult, HttpStatus.OK);
+ } else {
+ wvpResult.setCode(-1);
+ wvpResult.setMsg("鍐欏叆鏁版嵁搴撳け璐�");
+ return new ResponseEntity<>(wvpResult, HttpStatus.OK);
+ }
+ }
+
+ /**
+ * 淇濆瓨涓婄骇骞冲彴淇℃伅
+ * @param parentPlatform
+ * @return
+ */
+ @ApiOperation("淇濆瓨涓婄骇骞冲彴淇℃伅")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "parentPlatform", value = "涓婄骇骞冲彴淇℃伅", dataTypeClass = ParentPlatform.class),
+ })
+ @PostMapping("/save")
+ @ResponseBody
+ public ResponseEntity<WVPResult<String>> savePlatform(@RequestBody ParentPlatform parentPlatform){
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("淇濆瓨涓婄骇骞冲彴淇℃伅API璋冪敤");
+ }
+ WVPResult<String> wvpResult = new WVPResult<>();
+ if (StringUtils.isEmpty(parentPlatform.getName())
+ ||StringUtils.isEmpty(parentPlatform.getServerGBId())
+ ||StringUtils.isEmpty(parentPlatform.getServerGBDomain())
+ ||StringUtils.isEmpty(parentPlatform.getServerIP())
+ ||StringUtils.isEmpty(parentPlatform.getServerPort())
+ ||StringUtils.isEmpty(parentPlatform.getDeviceGBId())
+ ||StringUtils.isEmpty(parentPlatform.getExpires())
+ ||StringUtils.isEmpty(parentPlatform.getKeepTimeout())
+ ||StringUtils.isEmpty(parentPlatform.getTransport())
+ ||StringUtils.isEmpty(parentPlatform.getCharacterSet())
+ ){
+ wvpResult.setCode(-1);
+ wvpResult.setMsg("missing parameters");
+ return new ResponseEntity<>(wvpResult, HttpStatus.BAD_REQUEST);
+ }
ParentPlatform parentPlatformOld = storager.queryParentPlatByServerGBId(parentPlatform.getServerGBId());
boolean updateResult = storager.updateParentPlatform(parentPlatform);
@@ -130,9 +189,13 @@
} else if (parentPlatformOld != null && parentPlatformOld.isEnable() && !parentPlatform.isEnable()){ // 鍏抽棴鍚敤鏃舵敞閿�
commanderForPlatform.unregister(parentPlatform, null, null);
}
- return new ResponseEntity<>("success", HttpStatus.OK);
+ wvpResult.setCode(0);
+ wvpResult.setMsg("success");
+ return new ResponseEntity<>(wvpResult, HttpStatus.OK);
} else {
- return new ResponseEntity<>("fail", HttpStatus.OK);
+ wvpResult.setCode(0);
+ wvpResult.setMsg("鍐欏叆鏁版嵁搴撳け璐�");
+ return new ResponseEntity<>(wvpResult, HttpStatus.OK);
}
}
diff --git a/web_src/src/components/dialog/platformEdit.vue b/web_src/src/components/dialog/platformEdit.vue
index 62a6957..38a2aef 100644
--- a/web_src/src/components/dialog/platformEdit.vue
+++ b/web_src/src/components/dialog/platformEdit.vue
@@ -116,6 +116,7 @@
showDialog: false,
isLoging: false,
onSubmit_text: "绔嬪嵆鍒涘缓",
+ saveUrl: "/api/platform/save",
platform: {
id: null,
@@ -163,6 +164,7 @@
var that = this;
if (platform == null) {
this.onSubmit_text = "绔嬪嵆鍒涘缓";
+ this.saveUrl = "/api/platform/add";
this.$axios({
method: 'get',
url:`/api/platform/server_config`
@@ -198,6 +200,7 @@
this.platform.shareAllLiveStream = platform.shareAllLiveStream;
this.platform.catalogId = platform.catalogId;
this.onSubmit_text = "淇濆瓨";
+ this.saveUrl = "/api/platform/save";
}
this.showDialog = true;
this.listChangeCallback = callback;
@@ -212,14 +215,13 @@
this.platform.username = this.platform.deviceGBId ;
},
onSubmit: function () {
- console.log("onSubmit");
var that = this;
that.$axios({
method: 'post',
- url:`/api/platform/save`,
+ url: this.saveUrl,
data: that.platform
}).then(function (res) {
- if (res.data == "success") {
+ if (res.data.code === 0) {
that.$message({
showClose: true,
message: "淇濆瓨鎴愬姛",
@@ -229,6 +231,12 @@
if (that.listChangeCallback != null) {
that.listChangeCallback();
}
+ }else {
+ that.$message({
+ showClose: true,
+ message: res.data.msg,
+ type: "error",
+ });
}
}).catch(function (error) {
console.log(error);
--
Gitblit v1.8.0