Browse Source

Merge branch 'master' into dev/录制计划

648540858 11 months ago
parent
commit
a739701621

+ 1 - 15
src/main/java/com/genersoft/iot/vmp/gb28181/controller/CommonChannelController.java

@@ -261,21 +261,7 @@ public class CommonChannelController {
                 result.setResult(WVPResult.fail(code, msg));
             }
         };
-
-        if (channel.getGbDeviceDbId() != null) {
-            // 国标通道
-            channelPlayService.playGbDeviceChannel(channel, callback);
-        } else if (channel.getStreamProxyId() != null) {
-            // 拉流代理
-            channelPlayService.playProxy(channel, callback);
-        } else if (channel.getStreamPushId() != null) {
-            // 推流
-            channelPlayService.playPush(channel, null, null, callback);
-        } else {
-            // 通道数据异常
-            log.error("[点播通用通道] 通道数据异常,无法识别通道来源: {}({})", channel.getGbName(), channel.getGbDeviceId());
-            throw new PlayException(Response.SERVER_INTERNAL_ERROR, "server internal error");
-        }
+        channelPlayService.play(channel, null, callback);
         return result;
     }
 }

+ 2 - 0
src/main/java/com/genersoft/iot/vmp/gb28181/service/IGbChannelPlayService.java

@@ -10,6 +10,8 @@ public interface IGbChannelPlayService {
 
     void start(CommonGBChannel channel, InviteInfo inviteInfo, Platform platform, ErrorCallback<StreamInfo> callback);
 
+    void play(CommonGBChannel channel, Platform platform,  ErrorCallback<StreamInfo> callback);
+
     void playGbDeviceChannel(CommonGBChannel channel, ErrorCallback<StreamInfo> callback);
 
     void playProxy(CommonGBChannel channel, ErrorCallback<StreamInfo> callback);

+ 24 - 14
src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/GbChannelPlayServiceImpl.java

@@ -39,20 +39,7 @@ public class GbChannelPlayServiceImpl implements IGbChannelPlayService {
         }
         log.info("[点播通用通道] 类型:{}, 通道: {}({})", inviteInfo.getSessionName(), channel.getGbName(), channel.getGbDeviceId());
         if ("Play".equalsIgnoreCase(inviteInfo.getSessionName())) {
-            if (channel.getGbDeviceDbId() != null) {
-                // 国标通道
-                playGbDeviceChannel(channel, callback);
-            } else if (channel.getStreamProxyId() != null) {
-                // 拉流代理
-                playProxy(channel, callback);
-            } else if (channel.getStreamPushId() != null) {
-                // 推流
-                playPush(channel, platform.getServerGBId(), platform.getName(), callback);
-            } else {
-                // 通道数据异常
-                log.error("[点播通用通道] 通道数据异常,无法识别通道来源: {}({})", channel.getGbName(), channel.getGbDeviceId());
-                throw new PlayException(Response.SERVER_INTERNAL_ERROR, "server internal error");
-            }
+            play(channel, platform, callback);
         }else if ("Playback".equals(inviteInfo.getSessionName())) {
             if (channel.getGbDeviceDbId() != null) {
                 // 国标通道
@@ -101,6 +88,29 @@ public class GbChannelPlayServiceImpl implements IGbChannelPlayService {
         }
     }
 
+    @Override
+    public void play(CommonGBChannel channel, Platform platform, ErrorCallback<StreamInfo> callback) {
+        if (channel.getGbDeviceDbId() != null) {
+            // 国标通道
+            playGbDeviceChannel(channel, callback);
+        } else if (channel.getStreamProxyId() != null) {
+            // 拉流代理
+            playProxy(channel, callback);
+        } else if (channel.getStreamPushId() != null) {
+            if (platform != null) {
+                // 推流
+                playPush(channel, platform.getServerGBId(), platform.getName(), callback);
+            }else {
+                // 推流
+                playPush(channel, null, null, callback);
+            }
+        } else {
+            // 通道数据异常
+            log.error("[点播通用通道] 通道数据异常,无法识别通道来源: {}({})", channel.getGbName(), channel.getGbDeviceId());
+            throw new PlayException(Response.SERVER_INTERNAL_ERROR, "server internal error");
+        }
+    }
+
     @Override
     public void playGbDeviceChannel(CommonGBChannel channel, ErrorCallback<StreamInfo> callback){
         // 国标通道

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/storager/dao/CloudRecordServiceMapper.java

@@ -53,7 +53,7 @@ public interface CloudRecordServiceMapper {
             " <if test= 'ids != null  ' > and id in " +
             " <foreach collection='ids'  item='item'  open='(' separator=',' close=')' > #{item}</foreach>" +
             " </if>" +
-            " order by start_time ASC" +
+            " order by start_time desc" +
             " </script>")
     List<CloudRecordItem> getList(@Param("query") String query, @Param("app") String app, @Param("stream") String stream,
                                   @Param("startTimeStamp")Long startTimeStamp, @Param("endTimeStamp")Long endTimeStamp,

+ 8 - 7
web_src/src/components/CloudRecord.vue

@@ -7,26 +7,28 @@
 
       <div class="page-header-btn">
         搜索:
-        <el-input @input="getRecordList" style="margin-right: 1rem; width: auto;" size="mini" placeholder="关键字"
+        <el-input @input="initData" style="margin-right: 1rem; width: auto;" size="mini" placeholder="关键字"
                   prefix-icon="el-icon-search" v-model="search"  clearable></el-input>
         开始时间:
         <el-date-picker
             v-model="startTime"
             type="datetime"
+            size="mini"
             value-format="yyyy-MM-dd HH:mm:ss"
-            @change="getMediaServerList"
+            @change="initData"
             placeholder="选择日期时间">
         </el-date-picker>
         结束时间:
         <el-date-picker
             v-model="endTime"
             type="datetime"
+            size="mini"
             value-format="yyyy-MM-dd HH:mm:ss"
-            @change="getMediaServerList"
+            @change="initData"
             placeholder="选择日期时间">
         </el-date-picker>
         节点选择:
-        <el-select size="mini" @change="getMediaServerList" style="width: 16rem; margin-right: 1rem;"
+        <el-select size="mini" @change="initData" style="width: 16rem; margin-right: 1rem;"
                    v-model="mediaServerId" placeholder="请选择" >
           <el-option label="全部" value=""></el-option>
           <el-option
@@ -38,7 +40,7 @@
         </el-select>
 <!--        <el-button size="mini" icon="el-icon-delete" type="danger" @click="deleteRecord()">批量删除</el-button>-->
         <el-button icon="el-icon-refresh-right" circle size="mini" :loading="loading"
-                   @click="getRecordList()"></el-button>
+                   @click="initData()"></el-button>
       </div>
     </div>
     <!--设备列表-->
@@ -146,14 +148,13 @@ export default {
   computed: {},
   mounted() {
     this.initData();
+    this.getMediaServerList();
   },
   destroyed() {
       this.$destroy('recordVideoPlayer');
   },
   methods: {
     initData: function () {
-      // 获取媒体节点列表
-      this.getMediaServerList();
       this.getRecordList();
     },
     currentChange: function (val) {