From 77e3e0878f9ffe8881bc8b168cc4173257c707df Mon Sep 17 00:00:00 2001 From: 64850858 <648540858@qq.com> Date: 星期一, 19 七月 2021 17:22:54 +0800 Subject: [PATCH] 修复云端录像查看 --- src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java | 16 ++++++- web_src/src/components/StreamProxyList.vue | 17 ++++++-- src/main/resources/wvp.sqlite | 0 src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java | 2 web_src/src/components/CloudRecord.vue | 19 +++++---- pom.xml | 6 +- web_src/src/components/CloudRecordDetail.vue | 14 +++--- 7 files changed, 47 insertions(+), 27 deletions(-) diff --git a/pom.xml b/pom.xml index 6223945..93b4257 100644 --- a/pom.xml +++ b/pom.xml @@ -10,8 +10,8 @@ </parent> <groupId>com.genersoft</groupId> - <artifactId>wvp-gb28181</artifactId> - <version>2.0.0</version> + <artifactId>wvp-pro</artifactId> + <version>2.0</version> <name>web video platform</name> <repositories> @@ -44,7 +44,7 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format> + <maven.build.timestamp.format>MMddHHmm</maven.build.timestamp.format> <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> <!-- 渚濊禆鐗堟湰 --> diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java index a90225a..52c9f85 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java @@ -194,7 +194,7 @@ mediaConfig.setId(zlmServerConfig.getGeneralMediaServerId()); mediaConfig.setCreateTime(now); mediaConfig.setUpdateTime(now); - serverItem = mediaConfig; + serverItem = mediaConfig.getMediaSerItem(); mediaServerMapper.add(mediaConfig); }else { // 涓�涓柊鐨剒lm鎺ュ叆wvp diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java index 450c54a..b4b7469 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java @@ -4,6 +4,7 @@ import com.genersoft.iot.vmp.service.IStreamPushService; import com.genersoft.iot.vmp.service.IMediaService; import com.genersoft.iot.vmp.storager.IVideoManagerStorager; +import com.genersoft.iot.vmp.vmanager.bean.WVPResult; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -47,9 +48,18 @@ }) @GetMapping(value = "/stream_info_by_app_and_stream") @ResponseBody - public StreamInfo getStreamInfoByAppAndStream(@RequestParam String app, @RequestParam String stream, @RequestParam String mediaServerId){ - - return mediaService.getStreamInfoByAppAndStreamWithCheck(app, stream,mediaServerId); + public WVPResult<StreamInfo> getStreamInfoByAppAndStream(@RequestParam String app, @RequestParam String stream, @RequestParam String mediaServerId){ + StreamInfo streamInfoByAppAndStreamWithCheck = mediaService.getStreamInfoByAppAndStreamWithCheck(app, stream, mediaServerId); + WVPResult<StreamInfo> result = new WVPResult<>(); + if (streamInfoByAppAndStreamWithCheck != null){ + result.setCode(0); + result.setMsg("scccess"); + result.setData(streamInfoByAppAndStreamWithCheck); + }else { + result.setCode(-1); + result.setMsg("fail"); + } + return result; } diff --git a/src/main/resources/wvp.sqlite b/src/main/resources/wvp.sqlite index f399e6e..8e41983 100644 --- a/src/main/resources/wvp.sqlite +++ b/src/main/resources/wvp.sqlite Binary files differ diff --git a/web_src/src/components/CloudRecord.vue b/web_src/src/components/CloudRecord.vue index 284578b..c08a6cc 100644 --- a/web_src/src/components/CloudRecord.vue +++ b/web_src/src/components/CloudRecord.vue @@ -8,12 +8,12 @@ <div style="background-color: #FFFFFF; margin-bottom: 1rem; position: relative; padding: 0.5rem; text-align: left;"> <span style="font-size: 1rem; font-weight: bold;">浜戠褰曞儚</span> <div style="position: absolute; right: 5rem; top: 0.3rem;"> - 鑺傜偣閫夋嫨: <el-select size="mini" @change="chooseMediaChange" style="width: 16rem; margin-right: 1rem;" v-model="mediaServer" placeholder="璇烽�夋嫨" default-first-option> + 鑺傜偣閫夋嫨: <el-select size="mini" @change="chooseMediaChange" style="width: 16rem; margin-right: 1rem;" v-model="mediaServerId" placeholder="璇烽�夋嫨"> <el-option v-for="item in mediaServerList" :key="item.id" - :label="item.id + '( ' + item.streamIp + ' )'" - :value="item"> + :label="item.id" + :value="item.id"> </el-option> </el-select> </div> @@ -52,7 +52,7 @@ :total="total"> </el-pagination> </div> - <cloud-record-detail ref="cloudRecordDetail" v-if="recordDetail" :recordFile="chooseRecord" :mediaServer="mediaServer" ></cloud-record-detail> + <cloud-record-detail ref="cloudRecordDetail" v-if="recordDetail" :recordFile="chooseRecord" :mediaServerId="mediaServerId" ></cloud-record-detail> </el-main> </el-container> </div> @@ -70,7 +70,7 @@ data() { return { mediaServerList: [], // 婊呬綋鑺傜偣鍒楄〃 - mediaServer: null, // 濯掍綋鏈嶅姟 + mediaServerId: null, // 濯掍綋鏈嶅姟 recordList: [], // 璁惧鍒楄〃 chooseRecord: null, // 濯掍綋鏈嶅姟 @@ -111,9 +111,9 @@ getMediaServerList: function (){ let that = this; that.mediaServerObj.getMediaServerList((data)=>{ - that.mediaServerList = data; + that.mediaServerList = data.data; if (that.mediaServerList.length > 0) { - that.mediaServer = that.mediaServerList[0] + that.mediaServerId = that.mediaServerList[0].id that.getRecordList(); } }) @@ -122,7 +122,7 @@ let that = this; this.$axios({ method: 'get', - url:`/record_proxy/${that.mediaServer.generalMediaServerId}/api/record/list`, + url:`/record_proxy/${that.mediaServerId}/api/record/list`, params: { page: that.currentPage, count: that.count @@ -142,7 +142,8 @@ }, chooseMediaChange(val){ console.log(val) - this.mediaServer = val; + this.total = 0; + this.recordList = []; this.getRecordList(); }, showRecordDetail(row){ diff --git a/web_src/src/components/CloudRecordDetail.vue b/web_src/src/components/CloudRecordDetail.vue index 87182e1..b6d1932 100644 --- a/web_src/src/components/CloudRecordDetail.vue +++ b/web_src/src/components/CloudRecordDetail.vue @@ -110,7 +110,7 @@ components: { uiHeader, player }, - props: ['recordFile', 'mediaServer', 'dateFiles'], + props: ['recordFile', 'mediaServerId', 'dateFiles'], data() { return { basePath: process.env.NODE_ENV === 'development'?`${location.origin}/debug/zlm`:`${location.origin}/zlm`, @@ -238,7 +238,7 @@ let that = this; that.$axios({ method: 'get', - url:`/record_proxy/${that.mediaServer.generalMediaServerId}/api/record/file/list`, + url:`/record_proxy/${that.mediaServerId}/api/record/file/list`, params: { app: that.recordFile.app, stream: that.recordFile.stream, @@ -263,7 +263,7 @@ this.videoUrl = ""; }else { // TODO 鎺у埗鍒楄〃婊氬姩鏉� - this.videoUrl = `${this.basePath}/${this.mediaServer.recordAppName}/${this.recordFile.app}/${this.recordFile.stream}/${this.chooseDate}/${this.choosedFile}` + this.videoUrl = `${this.basePath}/${this.mediaServerId}/record/${this.recordFile.app}/${this.recordFile.stream}/${this.chooseDate}/${this.choosedFile}` console.log(this.videoUrl) } @@ -312,7 +312,7 @@ let that = this; this.$axios({ method: 'delete', - url:`/record_proxy/${that.mediaServer.generalMediaServerId}/api/record/delete`, + url:`/record_proxy/${that.mediaServerId}/api/record/delete`, params: { page: that.currentPage, count: that.count @@ -331,7 +331,7 @@ that.dateFilesObj = {}; this.$axios({ method: 'get', - url:`/record_proxy/${that.mediaServer.generalMediaServerId}/api/record/date/list`, + url:`/record_proxy/${that.mediaServerId}/api/record/date/list`, params: { app: that.recordFile.app, stream: that.recordFile.stream @@ -380,7 +380,7 @@ let that = this; this.$axios({ method: 'get', - url:`/record_proxy/${that.mediaServer.generalMediaServerId}/api/record/file/download/task/add`, + url:`/record_proxy/${that.mediaServerId}/api/record/file/download/task/add`, params: { app: that.recordFile.app, stream: that.recordFile.stream, @@ -405,7 +405,7 @@ let that = this; this.$axios({ method: 'get', - url:`/record_proxy/${that.mediaServer.generalMediaServerId}/api/record/file/download/task/list`, + url:`/record_proxy/${that.mediaServerId}/api/record/file/download/task/list`, params: { isEnd: isEnd, } diff --git a/web_src/src/components/StreamProxyList.vue b/web_src/src/components/StreamProxyList.vue index 45fd573..746bcdb 100644 --- a/web_src/src/components/StreamProxyList.vue +++ b/web_src/src/components/StreamProxyList.vue @@ -211,10 +211,19 @@ } }).then(function (res) { that.getListLoading = false; - that.$refs.devicePlayer.openDialog("streamPlay", null, null, { - streamInfo: res.data, - hasAudio: true - }); + if (res.data.code === 0) { + that.$refs.devicePlayer.openDialog("streamPlay", null, null, { + streamInfo: res.data.data, + hasAudio: true + }); + }else { + that.$message({ + showClose: true, + message: "鑾峰彇鍦板潃澶辫触锛�" + res.data.msg, + type: "error", + }); + } + }).catch(function (error) { console.log(error); that.getListLoading = false; -- Gitblit v1.8.0