64850858 4 роки тому
батько
коміт
77e3e0878f

+ 3 - 3
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>
 
 		<!-- 依赖版本 -->

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java

@@ -194,7 +194,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
                 mediaConfig.setId(zlmServerConfig.getGeneralMediaServerId());
                 mediaConfig.setCreateTime(now);
                 mediaConfig.setUpdateTime(now);
-                serverItem = mediaConfig;
+                serverItem = mediaConfig.getMediaSerItem();
                 mediaServerMapper.add(mediaConfig);
             }else {
                 // 一个新的zlm接入wvp

+ 13 - 3
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java

@@ -4,6 +4,7 @@ import com.genersoft.iot.vmp.common.StreamInfo;
 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 @@ public class MediaController {
     })
     @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;
     }
 
 

BIN
src/main/resources/wvp.sqlite


+ 10 - 9
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){

+ 7 - 7
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,
           }

+ 13 - 4
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;