diff --git a/src/main/java/com/genersoft/iot/vmp/streamProxy/controller/StreamProxyController.java b/src/main/java/com/genersoft/iot/vmp/streamProxy/controller/StreamProxyController.java index e9968f04..bb86b314 100755 --- a/src/main/java/com/genersoft/iot/vmp/streamProxy/controller/StreamProxyController.java +++ b/src/main/java/com/genersoft/iot/vmp/streamProxy/controller/StreamProxyController.java @@ -178,11 +178,13 @@ public class StreamProxyController { @ResponseBody @Operation(summary = "启用代理", security = @SecurityRequirement(name = JwtUtils.HEADER)) @Parameter(name = "id", description = "代理Id", required = true) - public void start(int id){ - log.info("启用代理: " + id); - boolean result = streamProxyService.start(id); - if (!result) { - throw new ControllerException(ErrorCode.ERROR100); + public StreamContent start(int id){ + log.info("播放代理: " + id); + StreamInfo streamInfo = streamProxyService.start(id); + if (streamInfo == null) { + throw new ControllerException(ErrorCode.ERROR100.getCode(), ErrorCode.ERROR100.getMsg()); + }else { + return new StreamContent(streamInfo); } } diff --git a/src/main/java/com/genersoft/iot/vmp/streamProxy/dao/provider/StreamProxyProvider.java b/src/main/java/com/genersoft/iot/vmp/streamProxy/dao/provider/StreamProxyProvider.java index faa90bd7..653426f6 100644 --- a/src/main/java/com/genersoft/iot/vmp/streamProxy/dao/provider/StreamProxyProvider.java +++ b/src/main/java/com/genersoft/iot/vmp/streamProxy/dao/provider/StreamProxyProvider.java @@ -20,12 +20,12 @@ public class StreamProxyProvider { } public String selectForEnableInMediaServer(Map params ){ - return getBaseSelectSql() + String.format(" WHERE st.enable=%s and st.media_server_id= %s order by st.create_time desc", + return getBaseSelectSql() + String.format(" WHERE st.enable=%s and st.media_server_id= '%s' order by st.create_time desc", params.get("enable"), params.get("mediaServerId")); } public String selectOneByAppAndStream(Map params ){ - return getBaseSelectSql() + String.format(" WHERE st.app=%s AND st.stream=%s order by st.create_time desc", + return getBaseSelectSql() + String.format(" WHERE st.app='%s' AND st.stream='%s' order by st.create_time desc", params.get("app"), params.get("stream")); } diff --git a/src/main/java/com/genersoft/iot/vmp/streamProxy/service/IStreamProxyService.java b/src/main/java/com/genersoft/iot/vmp/streamProxy/service/IStreamProxyService.java index 49c52c1b..77259ee8 100755 --- a/src/main/java/com/genersoft/iot/vmp/streamProxy/service/IStreamProxyService.java +++ b/src/main/java/com/genersoft/iot/vmp/streamProxy/service/IStreamProxyService.java @@ -93,5 +93,5 @@ public interface IStreamProxyService { void delete(int id); - boolean start(int id); + StreamInfo start(int id); } diff --git a/src/main/java/com/genersoft/iot/vmp/streamProxy/service/impl/StreamProxyServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/streamProxy/service/impl/StreamProxyServiceImpl.java index 6d22e53c..1276c97b 100755 --- a/src/main/java/com/genersoft/iot/vmp/streamProxy/service/impl/StreamProxyServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/streamProxy/service/impl/StreamProxyServiceImpl.java @@ -177,7 +177,8 @@ public class StreamProxyServiceImpl implements IStreamProxyService { } private void delete(StreamProxy streamProxy) { - if (streamProxy.getPulling()) { + assert streamProxy != null; + if (streamProxy.getPulling() != null && streamProxy.getPulling()) { stopProxy(streamProxy); } if(streamProxy.getGbId() > 0) { @@ -441,13 +442,12 @@ public class StreamProxyServiceImpl implements IStreamProxyService { @Override - public boolean start(int id) { + public StreamInfo start(int id) { StreamProxy streamProxy = streamProxyMapper.select(id); if (streamProxy == null) { throw new ControllerException(ErrorCode.ERROR404.getCode(), "代理信息未找到"); } - StreamInfo streamInfo = startProxy(streamProxy); - return streamInfo != null; + return startProxy(streamProxy); } private StreamInfo startProxy(StreamProxy streamProxy){ diff --git a/web_src/src/components/StreamProxyEdit.vue b/web_src/src/components/StreamProxyEdit.vue index e994bdf9..11f322ca 100644 --- a/web_src/src/components/StreamProxyEdit.vue +++ b/web_src/src/components/StreamProxyEdit.vue @@ -67,7 +67,7 @@ - + - - 不做处理 - 停用 - 移除 + + + 不做处理 + 停用 + 移除 + +
@@ -94,7 +97,7 @@
- 保存 + 保存 取消
@@ -114,7 +117,7 @@ import MediaServer from "./service/MediaServer"; export default { name: "channelEdit", - props: [ 'streamProxy', 'closeEdit'], + props: [ 'value', 'closeEdit'], components: { CommonChannelEdit, }, @@ -126,7 +129,8 @@ export default { }, data() { return { - locading: false, + saveLoading: false, + streamProxy: this.value, mediaServer: new MediaServer(), mediaServerList:{}, ffmpegCmdList:{}, @@ -142,7 +146,9 @@ export default { }, methods: { onSubmit: function () { - this.locading = true; + console.log(typeof this.streamProxy.noneReader) + this.saveLoading = true; + this.noneReaderHandler(); if (this.streamProxy.id) { this.$axios({ @@ -150,17 +156,19 @@ export default { url:`/api/proxy/update`, data: this.streamProxy }).then((res)=> { + this.saveLoading = false; if (typeof (res.data.code) != "undefined" && res.data.code === 0) { this.$message.success("保存成功"); - this.locading = false; this.streamProxy = res.data.data }else { this.$message.error(res.data.msg); } }).catch((error) =>{ - this.$message.error(res.data.error); + this.$message.error(error); + this.saveLoading = false; }).finally(()=>{ - this.locading = false; + console.log("finally==finally") + this.saveLoading = false; }) }else { this.$axios({ @@ -168,17 +176,18 @@ export default { url:`/api/proxy/add`, data: this.streamProxy }).then((res)=> { + this.saveLoading = false; if (typeof (res.data.code) != "undefined" && res.data.code === 0) { this.$message.success("保存成功"); - this.locading = false; this.streamProxy = res.data.data }else { this.$message.error(res.data.msg); } }).catch((error) =>{ this.$message.error(res.data.error); + this.saveLoading = false; }).finally(()=>{ - this.locading = false; + this.saveLoading = false; }) } @@ -205,13 +214,13 @@ export default { }, noneReaderHandler: function() { console.log(this.streamProxy) - if (this.streamProxy.noneReader === null || this.streamProxy.noneReader === "0" || !this.streamProxy.noneReader) { + if (this.streamProxy.noneReader === null || this.streamProxy.noneReader === 0 || !this.streamProxy.noneReader) { this.streamProxy.enableDisableNoneReader = false; this.streamProxy.enableRemoveNoneReader = false; - }else if (this.streamProxy.noneReader === "1"){ + }else if (this.streamProxy.noneReader === 1){ this.streamProxy.enableDisableNoneReader = true; this.streamProxy.enableRemoveNoneReader = false; - }else if (this.streamProxy.noneReader ==="2"){ + }else if (this.streamProxy.noneReader ===2){ this.streamProxy.enableDisableNoneReader = false; this.streamProxy.enableRemoveNoneReader = true; } diff --git a/web_src/src/components/StreamProxyList.vue b/web_src/src/components/StreamProxyList.vue index 30d23cf3..0f587e7d 100755 --- a/web_src/src/components/StreamProxyList.vue +++ b/web_src/src/components/StreamProxyList.vue @@ -80,8 +80,6 @@ 编辑 - 启用 - 云端录像 删除 @@ -101,7 +99,7 @@
- + @@ -199,7 +197,7 @@ // this.$refs.streamProxyEdit.openDialog(null, this.initData) this.streamProxy = { type: "default", - noneReader: "1", + noneReader: 1, enable: true, enableAudio: true, mediaServerId: "", @@ -232,6 +230,13 @@ }, edit: function(row){ + if (row.enableDisableNoneReader) { + this.$set(row, "noneReader", 1) + }else if (row.enableRemoveNoneReader) { + this.$set(row, "noneReader", 2) + }else { + this.$set(row, "noneReader", 0) + } this.streamProxy = row }, closeEdit: function(row){ @@ -241,11 +246,9 @@ let that = this; this.$axios({ method: 'get', - url:`/api/media/getPlayUrl`, + url:`/api/proxy/start`, params: { - app: row.app, - stream: row.stream, - mediaServerId: row.mediaServerId + id: row.id, } }).then(function (res) { if (res.data.code === 0) {