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; } 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 " + 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); } } 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);