Browse Source

fix增加推流状态查询

Eric 2 years ago
parent
commit
dac79236d3

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveBroadcastRoomService.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.microsvc.toolkit.middleware.live.message.TencentWrapper;
 import com.ym.mec.biz.dal.dto.ImLiveBroadcastRoomDto;
 import com.ym.mec.biz.dal.dto.LiveRoomStatus;
 import com.ym.mec.biz.dal.dto.RoomReservationUserSearch;
@@ -186,5 +187,12 @@ public interface ImLiveBroadcastRoomService extends IService<ImLiveBroadcastRoom
      * @param roomUid 直播间uid
      */
     int syncLikeCount(String roomUid);
+
+    /**
+     * 直播间推流状态查询
+     * @param roomUid 直播间ID
+     * @return TencentWrapper.LiveStreamState
+     */
+    TencentWrapper.LiveStreamState roomLiveStreamStatus(String roomUid);
 }
 

+ 32 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -2648,6 +2648,38 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
         return 0;
     }
 
+    /**
+     * 直播间推流状态查询
+     *
+     * @param roomUid 直播间ID
+     * @return TencentWrapper.LiveStreamState
+     */
+    @Override
+    public TencentWrapper.LiveStreamState roomLiveStreamStatus(String roomUid) {
+
+        // 直播间信息
+        ImLiveBroadcastRoomVo roomVo = getImLiveBroadcastRoomVo(roomUid);
+        if (Objects.isNull(roomVo)) {
+            throw new BizException("无效的直播间ID");
+        }
+
+        TencentWrapper.LiveStreamState liveStreamState = TencentWrapper.LiveStreamState
+                .builder()
+                .streamState("inactive")
+                .requestId("")
+                .build();
+        // 直播间推流状态
+        try {
+            LivePluginService pluginService = livePluginContext.getPluginService(roomVo.getServiceProvider());
+
+            liveStreamState = pluginService.liveStreamState(getStreamId(roomUid, roomVo.getSpeakerId()));
+        } catch (Exception e) {
+            log.error("roomLiveStreamStatus roomUid={}", roomUid, e);
+        }
+
+        return liveStreamState;
+    }
+
 
     /**
      * 查询直播间所有用户信息

+ 12 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherImLiveBroadcastRoomController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.teacher.controller;
 
+import com.microsvc.toolkit.middleware.live.message.TencentWrapper;
 import com.ym.mec.biz.dal.dto.LiveRoomStatus;
 import com.ym.mec.biz.dal.dto.RoomReservationUserSearch;
 import com.ym.mec.biz.dal.page.LiveRoomGoodsOrderQueryInfo;
@@ -199,5 +200,16 @@ public class TeacherImLiveBroadcastRoomController extends BaseController {
     public HttpResponseResult<Boolean> updateRoomStatus(@RequestBody @Valid LiveRoomStatus status ) {
         return succeed(imLiveBroadcastRoomService.updateRoomStatus(status));
     }
+
+    @ApiOperation("直播间推流状态")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "roomUid", dataType = "String", value = "房间Uid", required = true),
+    })
+    @GetMapping(value = "/liveStreamStatus")
+    public HttpResponseResult<TencentWrapper.LiveStreamState> roomLiveStream(String roomUid) {
+
+        // 直播间推流状态查询
+        return succeed(imLiveBroadcastRoomService.roomLiveStreamStatus(roomUid));
+    }
 }
 

+ 13 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ImLiveBroadcastRoomController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.web.controller;
 
+import com.microsvc.toolkit.middleware.live.message.TencentWrapper;
 import com.ym.mec.biz.dal.dto.ImLiveBroadcastRoomDto;
 import com.ym.mec.biz.dal.dto.LiveRoomStatus;
 import com.ym.mec.biz.dal.dto.RoomReservationUserSearch;
@@ -302,5 +303,17 @@ public class ImLiveBroadcastRoomController extends BaseController {
         imLiveBroadcastRoomService.whetherMic(roomUid,whetherMic);
         return succeed();
     }
+
+    @ApiOperation("直播间推流状态")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "roomUid", dataType = "String", value = "房间Uid", required = true),
+    })
+    @GetMapping(value = "/liveStreamStatus")
+    public HttpResponseResult<TencentWrapper.LiveStreamState> roomLiveStream(String roomUid) {
+
+        // 直播间推流状态查询
+        return succeed(imLiveBroadcastRoomService.roomLiveStreamStatus(roomUid));
+    }
+
 }