|
@@ -34,7 +34,9 @@ import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomData;
|
|
|
import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomMember;
|
|
|
import com.ym.mec.biz.dal.entity.ImLiveRoomBlack;
|
|
|
import com.ym.mec.biz.dal.entity.ImLiveRoomVideo;
|
|
|
+import com.ym.mec.biz.dal.enums.EAnchorStatus;
|
|
|
import com.ym.mec.biz.dal.enums.EGroupDefinedDataType;
|
|
|
+import com.ym.mec.biz.dal.enums.EOnOffStatus;
|
|
|
import com.ym.mec.biz.dal.enums.MessageTypeEnum;
|
|
|
import com.ym.mec.biz.dal.page.LiveRoomGoodsOrderQueryInfo;
|
|
|
import com.ym.mec.biz.dal.vo.*;
|
|
@@ -422,7 +424,15 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
|
|
|
|
|
|
ImLiveBroadcastRoomVo roomVo = getImLiveBroadcastRoomVo(obj.getRoomUid());
|
|
|
- setGroupDefinedData(roomVo,EGroupDefinedDataType.GLOBAL_BAN,whetherChat.toString());
|
|
|
+ setWhetherChatDefinedData(roomVo, whetherChat);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void setWhetherChatDefinedData(ImLiveBroadcastRoomVo roomVo, Integer whetherChat){
|
|
|
+ if (whetherChat == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ setGroupDefinedData(roomVo,EGroupDefinedDataType.GLOBAL_BAN,whetherChat == 1?
|
|
|
+ EOnOffStatus.ON.getCode() :EOnOffStatus.OFF.getCode());
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -907,13 +917,6 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
//从在线人员列表删除该人员
|
|
|
onlineUserInfo.fastRemove(userId);
|
|
|
|
|
|
- log.info("opsRoom>>>> looker userInfo: {}", JSONObject.toJSONString(userInfo));
|
|
|
- // 在线用户消息同步
|
|
|
- sendOnlineUserCount(roomVo, userId, onlineUserInfo.size());
|
|
|
-
|
|
|
- // 直播间统计数据
|
|
|
- sendLiveRoomStatMessage(userid, roomVo);
|
|
|
-
|
|
|
// 更新用户离线状态
|
|
|
ImLiveBroadcastRoomMember roomMember = new ImLiveBroadcastRoomMember();
|
|
|
roomMember.setOnlineStatus(0);
|
|
@@ -934,6 +937,12 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
.eq(ImLiveBroadcastRoomMember::getUserId, userId)
|
|
|
.update(roomMember);
|
|
|
|
|
|
+ log.info("opsRoom>>>> looker userInfo: {}", JSONObject.toJSONString(userInfo));
|
|
|
+ // 在线用户消息同步
|
|
|
+ sendOnlineUserCount(roomVo, userId, onlineUserInfo.size());
|
|
|
+
|
|
|
+ // 直播间统计数据
|
|
|
+ sendLiveRoomStatMessage(userid, roomVo);
|
|
|
});
|
|
|
}
|
|
|
|
|
@@ -1191,7 +1200,7 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
.update(room);
|
|
|
|
|
|
// 设置直播群组自定义数据
|
|
|
- setGroupDefinedData(roomVo,EGroupDefinedDataType.ANCHOR_STATUS,"OFFLINE");
|
|
|
+ setGroupDefinedData(roomVo,EGroupDefinedDataType.ANCHOR_STATUS,EAnchorStatus.OFFLINE.getCode());
|
|
|
|
|
|
return true;
|
|
|
}
|
|
@@ -1238,7 +1247,7 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
.update();
|
|
|
|
|
|
// 设置直播群组自定义数据
|
|
|
- setGroupDefinedData(roomVo,EGroupDefinedDataType.ANCHOR_STATUS,"ONLINE");
|
|
|
+ setGroupDefinedData(roomVo,EGroupDefinedDataType.ANCHOR_STATUS,EAnchorStatus.ONLINE.getCode());
|
|
|
|
|
|
return roomVo;
|
|
|
}
|
|
@@ -1538,7 +1547,8 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
imLiveBroadcastRoom.setId(imLiveBroadcastRoomVo.getId());
|
|
|
imLiveBroadcastRoom.setPushStatus(status);
|
|
|
this.updateById(imLiveBroadcastRoom);
|
|
|
- setGroupDefinedData(imLiveBroadcastRoomVo,EGroupDefinedDataType.LIVE_STATUS,status == 1?"ON":"OFF");
|
|
|
+ setGroupDefinedData(imLiveBroadcastRoomVo,EGroupDefinedDataType.LIVE_STATUS,status == 1?
|
|
|
+ EOnOffStatus.ON.getCode():EOnOffStatus.OFF.getCode());
|
|
|
|
|
|
}
|
|
|
|
|
@@ -1667,11 +1677,76 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
imLiveRoomBlackService.setBlack(black.getUserId(),roomVo);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // 设置直播间房间属性默认值
|
|
|
+ setDefaultRoomDefinedInfo(roomVo);
|
|
|
} catch (Exception e) {
|
|
|
log.error(">>>>>>>>>> createLiveRoom error roomUid:{} msg:{}", room.getRoomUid(), e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void setDefaultRoomDefinedInfo(ImLiveBroadcastRoomVo roomVo) {
|
|
|
+ List<TencentRequest.ChatRoomGroupDefinedData> appDefinedData = new ArrayList<>();
|
|
|
+ Arrays.stream(EGroupDefinedDataType.values()).forEach(key -> {
|
|
|
+ switch (key) {
|
|
|
+ case ANCHOR_STATUS:
|
|
|
+ appDefinedData.add(TencentRequest.ChatRoomGroupDefinedData.builder()
|
|
|
+ .key(key.getCode())
|
|
|
+ .value("OFFLINE")
|
|
|
+ .build());
|
|
|
+ break;
|
|
|
+ case GLOBAL_BAN:
|
|
|
+ appDefinedData.add(TencentRequest.ChatRoomGroupDefinedData.builder()
|
|
|
+ .key(key.getCode())
|
|
|
+ .value(getRoomConfig(roomVo.getRoomConfig())
|
|
|
+ .map(o -> o.getWhether_chat() == 0 ? "OFF" : "ON")
|
|
|
+ .orElse("OFF"))
|
|
|
+ .build());
|
|
|
+ break;
|
|
|
+ case LIKES:
|
|
|
+ appDefinedData.add(TencentRequest.ChatRoomGroupDefinedData.builder()
|
|
|
+ .key(key.getCode())
|
|
|
+ .value("0")
|
|
|
+ .build());
|
|
|
+ break;
|
|
|
+
|
|
|
+ case MEMBER_ONLINE:
|
|
|
+ appDefinedData.add(TencentRequest.ChatRoomGroupDefinedData.builder()
|
|
|
+ .key(key.getCode())
|
|
|
+ .value("0")
|
|
|
+ .build());
|
|
|
+ break;
|
|
|
+ case MEMBER_TOTAL:
|
|
|
+ appDefinedData.add(TencentRequest.ChatRoomGroupDefinedData.builder()
|
|
|
+ .key(key.getCode())
|
|
|
+ .value("0")
|
|
|
+ .build());
|
|
|
+ break;
|
|
|
+ case LIVE_STATUS:
|
|
|
+ appDefinedData.add(TencentRequest.ChatRoomGroupDefinedData.builder()
|
|
|
+ .key(key.getCode())
|
|
|
+ .value("OFF")
|
|
|
+ .build());
|
|
|
+ break;
|
|
|
+ case ANCHOR_CAMERA:
|
|
|
+ appDefinedData.add(TencentRequest.ChatRoomGroupDefinedData.builder()
|
|
|
+ .key(key.getCode())
|
|
|
+ .value("OFF")
|
|
|
+ .build());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ try {
|
|
|
+ livePluginContext.getPluginService(roomVo.getServiceProvider())
|
|
|
+ .chatRoomGroupDefinedData(TencentRequest.ChatRoomGroup.builder()
|
|
|
+ .groupId(roomVo.getRoomUid())
|
|
|
+ .appDefinedData(appDefinedData)
|
|
|
+ .build());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("设置直播群配置失败", e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//生成主讲人信息
|
|
|
private void createSpeakerInfo(ImLiveBroadcastRoom room, SysUser sysUser) {
|
|
|
Date now = new Date();
|
|
@@ -2038,17 +2113,23 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
ImLiveBroadcastRoom imLiveBroadcastRoom = new ImLiveBroadcastRoom();
|
|
|
imLiveBroadcastRoom.setId(room.getId());
|
|
|
imLiveBroadcastRoom.setSpeakerStatus(liveRoom.getSpeakerStatus());
|
|
|
+ // 设置直播群组自定义数据
|
|
|
+ setGroupDefinedData(room,EGroupDefinedDataType.ANCHOR_STATUS,liveRoom.getSpeakerStatus() == 0?
|
|
|
+ EAnchorStatus.OFFLINE.getCode():EAnchorStatus.ONLINE.getCode());
|
|
|
+
|
|
|
imLiveBroadcastRoom.setPushStatus(liveRoom.getPushStatus());
|
|
|
+ // 设置推流状态
|
|
|
+ setPushStatus(room.getRoomUid(), liveRoom.getPushStatus());
|
|
|
+
|
|
|
imLiveBroadcastRoom.setBanStatus(liveRoom.getBanStatus());
|
|
|
whetherChat(room.getId(), liveRoom.getBanStatus());
|
|
|
// 不用前端传时间
|
|
|
// imLiveBroadcastRoom.setLiveTotalTime(liveRoom.getLiveTotalTime());
|
|
|
// 设置摄像头状态
|
|
|
if (liveRoom.getCameraStatus() != null) {
|
|
|
- setGroupDefinedData(room,EGroupDefinedDataType.ANCHOR_CAMERA,liveRoom.getCameraStatus() == 1?"ON":"OFF");
|
|
|
+ setGroupDefinedData(room,EGroupDefinedDataType.ANCHOR_CAMERA,liveRoom.getCameraStatus() == 1?
|
|
|
+ EOnOffStatus.ON.getCode():EOnOffStatus.OFF.getCode());
|
|
|
}
|
|
|
- // 设置推流状态
|
|
|
- setPushStatus(room.getRoomUid(), liveRoom.getPushStatus());
|
|
|
|
|
|
return this.updateById(imLiveBroadcastRoom);
|
|
|
}
|