Commit 46cf650a863f9181f78c09f9b1146972844449bc
1 parent
b6702f7c
优化通道选择是通道的查询
Showing
4 changed files
with
96 additions
and
22 deletions
src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java
| ... | ... | @@ -146,20 +146,23 @@ public class StreamProxyServiceImpl implements IStreamProxyService { |
| 146 | 146 | result.append(", 关联国标平台[ " + param.getPlatformGbId() + " ]失败"); |
| 147 | 147 | } |
| 148 | 148 | } |
| 149 | - // 查找开启了全部直播流共享的上级平台 | |
| 150 | - List<ParentPlatform> parentPlatforms = parentPlatformMapper.selectAllAhareAllLiveStream(); | |
| 151 | - if (parentPlatforms.size() > 0) { | |
| 152 | - for (ParentPlatform parentPlatform : parentPlatforms) { | |
| 153 | - param.setPlatformId(parentPlatform.getServerGBId()); | |
| 154 | - param.setCatalogId(parentPlatform.getCatalogId()); | |
| 155 | - String stream = param.getStream(); | |
| 156 | - StreamProxyItem streamProxyItems = platformGbStreamMapper.selectOne(param.getApp(), stream, parentPlatform.getServerGBId()); | |
| 157 | - if (streamProxyItems == null) { | |
| 158 | - platformGbStreamMapper.add(param); | |
| 159 | - eventPublisher.catalogEventPublishForStream(parentPlatform.getServerGBId(), param, CatalogEvent.ADD); | |
| 149 | + if (!StringUtils.isEmpty(param.getGbId())) { | |
| 150 | + // 查找开启了全部直播流共享的上级平台 | |
| 151 | + List<ParentPlatform> parentPlatforms = parentPlatformMapper.selectAllAhareAllLiveStream(); | |
| 152 | + if (parentPlatforms.size() > 0) { | |
| 153 | + for (ParentPlatform parentPlatform : parentPlatforms) { | |
| 154 | + param.setPlatformId(parentPlatform.getServerGBId()); | |
| 155 | + param.setCatalogId(parentPlatform.getCatalogId()); | |
| 156 | + String stream = param.getStream(); | |
| 157 | + StreamProxyItem streamProxyItems = platformGbStreamMapper.selectOne(param.getApp(), stream, parentPlatform.getServerGBId()); | |
| 158 | + if (streamProxyItems == null) { | |
| 159 | + platformGbStreamMapper.add(param); | |
| 160 | + eventPublisher.catalogEventPublishForStream(parentPlatform.getServerGBId(), param, CatalogEvent.ADD); | |
| 161 | + } | |
| 160 | 162 | } |
| 161 | 163 | } |
| 162 | 164 | } |
| 165 | + | |
| 163 | 166 | wvpResult.setMsg(result.toString()); |
| 164 | 167 | return wvpResult; |
| 165 | 168 | } | ... | ... |
src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
| ... | ... | @@ -96,7 +96,7 @@ public interface DeviceChannelMapper { |
| 96 | 96 | "SELECT * FROM ( "+ |
| 97 | 97 | " SELECT dc.channelId, dc.deviceId, dc.name, de.manufacturer, de.hostAddress, " + |
| 98 | 98 | "(SELECT count(0) FROM device_channel WHERE parentId=dc.channelId) as subCount, " + |
| 99 | - "(SELECT pc.platformId FROM platform_gb_channel pc WHERE pc.deviceId=dc.deviceId AND pc.channelId = dc.channelId ) as platformId, " + | |
| 99 | + "(SELECT pc.platformId FROM platform_gb_channel pc WHERE pc.deviceId=dc.deviceId AND pc.channelId = dc.channelId AND pc.platformId = #{platformId}) as platformId, " + | |
| 100 | 100 | "(SELECT pc.catalogId FROM platform_gb_channel pc WHERE pc.deviceId=dc.deviceId AND pc.channelId = dc.channelId ) as catalogId " + |
| 101 | 101 | "FROM device_channel dc " + |
| 102 | 102 | "LEFT JOIN device de ON dc.deviceId = de.deviceId " + | ... | ... |
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
| ... | ... | @@ -87,6 +87,65 @@ public class PlatformController { |
| 87 | 87 | } |
| 88 | 88 | |
| 89 | 89 | /** |
| 90 | + * 添加上级平台信息 | |
| 91 | + * @param parentPlatform | |
| 92 | + * @return | |
| 93 | + */ | |
| 94 | + @ApiOperation("添加上级平台信息") | |
| 95 | + @ApiImplicitParams({ | |
| 96 | + @ApiImplicitParam(name = "parentPlatform", value = "上级平台信息", dataTypeClass = ParentPlatform.class), | |
| 97 | + }) | |
| 98 | + @PostMapping("/add") | |
| 99 | + @ResponseBody | |
| 100 | + public ResponseEntity<WVPResult<String>> addPlatform(@RequestBody ParentPlatform parentPlatform){ | |
| 101 | + | |
| 102 | + if (logger.isDebugEnabled()) { | |
| 103 | + logger.debug("保存上级平台信息API调用"); | |
| 104 | + } | |
| 105 | + WVPResult<String> wvpResult = new WVPResult<>(); | |
| 106 | + if (StringUtils.isEmpty(parentPlatform.getName()) | |
| 107 | + ||StringUtils.isEmpty(parentPlatform.getServerGBId()) | |
| 108 | + ||StringUtils.isEmpty(parentPlatform.getServerGBDomain()) | |
| 109 | + ||StringUtils.isEmpty(parentPlatform.getServerIP()) | |
| 110 | + ||StringUtils.isEmpty(parentPlatform.getServerPort()) | |
| 111 | + ||StringUtils.isEmpty(parentPlatform.getDeviceGBId()) | |
| 112 | + ||StringUtils.isEmpty(parentPlatform.getExpires()) | |
| 113 | + ||StringUtils.isEmpty(parentPlatform.getKeepTimeout()) | |
| 114 | + ||StringUtils.isEmpty(parentPlatform.getTransport()) | |
| 115 | + ||StringUtils.isEmpty(parentPlatform.getCharacterSet()) | |
| 116 | + ){ | |
| 117 | + wvpResult.setCode(-1); | |
| 118 | + wvpResult.setMsg("missing parameters"); | |
| 119 | + return new ResponseEntity<>(wvpResult, HttpStatus.BAD_REQUEST); | |
| 120 | + } | |
| 121 | + | |
| 122 | + ParentPlatform parentPlatformOld = storager.queryParentPlatByServerGBId(parentPlatform.getServerGBId()); | |
| 123 | + if (parentPlatformOld != null) { | |
| 124 | + wvpResult.setCode(-1); | |
| 125 | + wvpResult.setMsg("平台 "+parentPlatform.getServerGBId()+" 已存在"); | |
| 126 | + return new ResponseEntity<>(wvpResult, HttpStatus.OK); | |
| 127 | + } | |
| 128 | + boolean updateResult = storager.updateParentPlatform(parentPlatform); | |
| 129 | + | |
| 130 | + if (updateResult) { | |
| 131 | + // 保存时启用就发送注册 | |
| 132 | + if (parentPlatform.isEnable()) { | |
| 133 | + // 只要保存就发送注册 | |
| 134 | + commanderForPlatform.register(parentPlatform, null, null); | |
| 135 | + } else if (parentPlatformOld != null && parentPlatformOld.isEnable() && !parentPlatform.isEnable()){ // 关闭启用时注销 | |
| 136 | + commanderForPlatform.unregister(parentPlatform, null, null); | |
| 137 | + } | |
| 138 | + wvpResult.setCode(0); | |
| 139 | + wvpResult.setMsg("success"); | |
| 140 | + return new ResponseEntity<>(wvpResult, HttpStatus.OK); | |
| 141 | + } else { | |
| 142 | + wvpResult.setCode(-1); | |
| 143 | + wvpResult.setMsg("写入数据库失败"); | |
| 144 | + return new ResponseEntity<>(wvpResult, HttpStatus.OK); | |
| 145 | + } | |
| 146 | + } | |
| 147 | + | |
| 148 | + /** | |
| 90 | 149 | * 保存上级平台信息 |
| 91 | 150 | * @param parentPlatform |
| 92 | 151 | * @return |
| ... | ... | @@ -97,11 +156,12 @@ public class PlatformController { |
| 97 | 156 | }) |
| 98 | 157 | @PostMapping("/save") |
| 99 | 158 | @ResponseBody |
| 100 | - public ResponseEntity<String> savePlatform(@RequestBody ParentPlatform parentPlatform){ | |
| 159 | + public ResponseEntity<WVPResult<String>> savePlatform(@RequestBody ParentPlatform parentPlatform){ | |
| 101 | 160 | |
| 102 | 161 | if (logger.isDebugEnabled()) { |
| 103 | 162 | logger.debug("保存上级平台信息API调用"); |
| 104 | 163 | } |
| 164 | + WVPResult<String> wvpResult = new WVPResult<>(); | |
| 105 | 165 | if (StringUtils.isEmpty(parentPlatform.getName()) |
| 106 | 166 | ||StringUtils.isEmpty(parentPlatform.getServerGBId()) |
| 107 | 167 | ||StringUtils.isEmpty(parentPlatform.getServerGBDomain()) |
| ... | ... | @@ -113,11 +173,10 @@ public class PlatformController { |
| 113 | 173 | ||StringUtils.isEmpty(parentPlatform.getTransport()) |
| 114 | 174 | ||StringUtils.isEmpty(parentPlatform.getCharacterSet()) |
| 115 | 175 | ){ |
| 116 | - return new ResponseEntity<>("missing parameters", HttpStatus.BAD_REQUEST); | |
| 176 | + wvpResult.setCode(-1); | |
| 177 | + wvpResult.setMsg("missing parameters"); | |
| 178 | + return new ResponseEntity<>(wvpResult, HttpStatus.BAD_REQUEST); | |
| 117 | 179 | } |
| 118 | - // TODO 检查是否已经存在,且注册成功, 如果注册成功,需要先注销之前再,修改并注册 | |
| 119 | - | |
| 120 | - // ParentPlatform parentPlatformOld = storager.queryParentPlatById(parentPlatform.getDeviceGBId()); | |
| 121 | 180 | ParentPlatform parentPlatformOld = storager.queryParentPlatByServerGBId(parentPlatform.getServerGBId()); |
| 122 | 181 | |
| 123 | 182 | boolean updateResult = storager.updateParentPlatform(parentPlatform); |
| ... | ... | @@ -130,9 +189,13 @@ public class PlatformController { |
| 130 | 189 | } else if (parentPlatformOld != null && parentPlatformOld.isEnable() && !parentPlatform.isEnable()){ // 关闭启用时注销 |
| 131 | 190 | commanderForPlatform.unregister(parentPlatform, null, null); |
| 132 | 191 | } |
| 133 | - return new ResponseEntity<>("success", HttpStatus.OK); | |
| 192 | + wvpResult.setCode(0); | |
| 193 | + wvpResult.setMsg("success"); | |
| 194 | + return new ResponseEntity<>(wvpResult, HttpStatus.OK); | |
| 134 | 195 | } else { |
| 135 | - return new ResponseEntity<>("fail", HttpStatus.OK); | |
| 196 | + wvpResult.setCode(0); | |
| 197 | + wvpResult.setMsg("写入数据库失败"); | |
| 198 | + return new ResponseEntity<>(wvpResult, HttpStatus.OK); | |
| 136 | 199 | } |
| 137 | 200 | } |
| 138 | 201 | ... | ... |
web_src/src/components/dialog/platformEdit.vue
| ... | ... | @@ -116,6 +116,7 @@ export default { |
| 116 | 116 | showDialog: false, |
| 117 | 117 | isLoging: false, |
| 118 | 118 | onSubmit_text: "立即创建", |
| 119 | + saveUrl: "/api/platform/save", | |
| 119 | 120 | |
| 120 | 121 | platform: { |
| 121 | 122 | id: null, |
| ... | ... | @@ -163,6 +164,7 @@ export default { |
| 163 | 164 | var that = this; |
| 164 | 165 | if (platform == null) { |
| 165 | 166 | this.onSubmit_text = "立即创建"; |
| 167 | + this.saveUrl = "/api/platform/add"; | |
| 166 | 168 | this.$axios({ |
| 167 | 169 | method: 'get', |
| 168 | 170 | url:`/api/platform/server_config` |
| ... | ... | @@ -198,6 +200,7 @@ export default { |
| 198 | 200 | this.platform.shareAllLiveStream = platform.shareAllLiveStream; |
| 199 | 201 | this.platform.catalogId = platform.catalogId; |
| 200 | 202 | this.onSubmit_text = "保存"; |
| 203 | + this.saveUrl = "/api/platform/save"; | |
| 201 | 204 | } |
| 202 | 205 | this.showDialog = true; |
| 203 | 206 | this.listChangeCallback = callback; |
| ... | ... | @@ -212,14 +215,13 @@ export default { |
| 212 | 215 | this.platform.username = this.platform.deviceGBId ; |
| 213 | 216 | }, |
| 214 | 217 | onSubmit: function () { |
| 215 | - console.log("onSubmit"); | |
| 216 | 218 | var that = this; |
| 217 | 219 | that.$axios({ |
| 218 | 220 | method: 'post', |
| 219 | - url:`/api/platform/save`, | |
| 221 | + url: this.saveUrl, | |
| 220 | 222 | data: that.platform |
| 221 | 223 | }).then(function (res) { |
| 222 | - if (res.data == "success") { | |
| 224 | + if (res.data.code === 0) { | |
| 223 | 225 | that.$message({ |
| 224 | 226 | showClose: true, |
| 225 | 227 | message: "保存成功", |
| ... | ... | @@ -229,6 +231,12 @@ export default { |
| 229 | 231 | if (that.listChangeCallback != null) { |
| 230 | 232 | that.listChangeCallback(); |
| 231 | 233 | } |
| 234 | + }else { | |
| 235 | + that.$message({ | |
| 236 | + showClose: true, | |
| 237 | + message: res.data.msg, | |
| 238 | + type: "error", | |
| 239 | + }); | |
| 232 | 240 | } |
| 233 | 241 | }).catch(function (error) { |
| 234 | 242 | console.log(error); | ... | ... |