瀏覽代碼

Merge remote-tracking branch 'origin/feature/0803-im' into feature/0803-im

zouxuan 1 年之前
父節點
當前提交
b44f124815

+ 5 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/EGroupDefinedDataType.java

@@ -48,6 +48,11 @@ public enum EGroupDefinedDataType {
      * 主播全员闭麦状态
      */
     ANCHOR_MIC("主播全员闭麦状态"), // 开启 "ON" 关闭 "OFF"
+
+    /**
+     * 修改字段
+     */
+    UPDATE_INFO("修改信息"), //
     ;
     private String code;
 

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/LiveRoomService.java

@@ -221,7 +221,7 @@ public interface LiveRoomService extends IService<LiveRoom> {
      */
     void userWhetherMic(String roomUid, Long userId, Integer whetherMicStatus);
 
-    void joinRoom(String roomUid, Long userId, Boolean microphoneFlag);
+    long joinRoom(String roomUid, Long userId, Boolean microphoneFlag);
 
     /**
      * 更新直播推流时间

+ 15 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/LiveRoomServiceImpl.java

@@ -728,6 +728,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
         } catch (Exception e) {
             log.error("destroyLiveRoom>>>>  FORCED_OFFLINE {}", e.getMessage());
         }
+        tryDestroyLiveRoom(room);
 
         Date now = new Date();
         //删除人员与房间关联关系缓存的方法
@@ -765,7 +766,6 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
         //删除该临时直播间列表
         RMap<Long, String> map = redissonClient.getMap(TEACHER_TEMP_LIVE_ROOM);
         map.remove(room.getSpeakerId());
-        tryDestroyLiveRoom(room);
     }
 
     /**
@@ -1009,6 +1009,11 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
                 .key(type.getCode())
                 .value(value)
                 .build());
+
+        appDefinedData.add(TencentRequest.ChatRoomGroupDefinedData.builder()
+                .key(EGroupDefinedDataType.UPDATE_INFO.getCode())
+                .value(type.getCode())
+                .build());
         try {
             livePluginContext.getPluginService(roomVo.getServiceProvider())
                     .chatRoomGroupDefinedData(TencentRequest.ChatRoomGroup.builder()
@@ -1059,6 +1064,11 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
                 .key(EGroupDefinedDataType.MEMBER_TOTAL.getCode())
                 .value(totalUser.toString())
                 .build());
+
+        appDefinedData.add(TencentRequest.ChatRoomGroupDefinedData.builder()
+                .key(EGroupDefinedDataType.UPDATE_INFO.getCode())
+                .value(StringUtils.join(EGroupDefinedDataType.MEMBER_ONLINE.getCode(),EGroupDefinedDataType.MEMBER_TOTAL.getCode(),","))
+                .build());
         try {
             livePluginContext.getPluginService(roomVo.getServiceProvider())
                     .chatRoomGroupDefinedData(TencentRequest.ChatRoomGroup.builder()
@@ -2157,14 +2167,14 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
     }
 
     @Override
-    public void joinRoom(String roomUid, Long userId, Boolean microphoneFlag) {
+    public long joinRoom(String roomUid, Long userId, Boolean microphoneFlag) {
         Optional.ofNullable(roomUid).orElseThrow(() -> new BizException("房间编号不能为空!"));
         Optional.ofNullable(userId).orElseThrow(() -> new BizException("人员编号不能为空!"));
 
         // 设置进入时间
         RBucket<Long> userStateTimeCache = redissonClient.getBucket(LIVE_USER_LAST_TIME.replace(USER_ID, userId.toString()));
-        long time = new Date().getTime();
-        log.info(" cacheTime: {}, userStateTime: {}", userStateTimeCache.get(), time);
+        long time = DateTime.now().plusSeconds(1).getMillis();
+        log.info(" join cacheTime: {}, userStateTime: {}", userStateTimeCache.get(), time);
         userStateTimeCache.set(time, 60L, TimeUnit.MINUTES);
 
         LiveRoomWrapper.LiveRoomVo liveRoomVo = queryRoomInfo(roomUid);
@@ -2232,6 +2242,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
         log.info("joinRoom>>>> userInfo: {}", userJsonStr);
         //记录当前用户对应的房间uid
         redissonClient.getBucket(LIVE_USER_ROOM.replace(USER_ID, userId.toString())).set(roomUid, 2L, TimeUnit.DAYS);
+        return new Date().getTime();
     }
 
     /**

+ 1 - 2
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/ImLiveBroadcastRoomController.java

@@ -79,8 +79,7 @@ public class ImLiveBroadcastRoomController extends BaseController {
         } else {
             userIdLong =sysUserFeignService.queryUserInfo().getId();
         }
-        liveRoomService.joinRoom(roomUid, userIdLong,microphoneFlag);
-        return succeed();
+        return succeed(liveRoomService.joinRoom(roomUid, userIdLong,microphoneFlag));
     }
 
     @ApiOperation("设置连麦状态")