|
@@ -22,6 +22,7 @@ import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
@@ -49,8 +50,8 @@ public class RoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNetworkRoom
|
|
|
private ImNetworkRoomMemberService imNetworkRoomMemberService;
|
|
|
@Autowired
|
|
|
private ImService imService;
|
|
|
- @Autowired
|
|
|
- private ImGroupService imGroupService;
|
|
|
+ @Resource
|
|
|
+ private RedisTemplate<String,Object> redisTemplate;
|
|
|
|
|
|
@Override
|
|
|
public ImNetworkRoomDao getDao() {
|
|
@@ -119,12 +120,14 @@ public class RoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNetworkRoom
|
|
|
int memberNum = imNetworkRoomMemberService.lambdaQuery()
|
|
|
.eq(ImNetworkRoomMember::getRoomId,roomId).count();
|
|
|
if (memberNum <= 1) {
|
|
|
- imHelper.dismiss(roomMember.getUserId(), roomId);
|
|
|
+ RTCRoomPluginService pluginService = rtcRoomPluginContext.getPluginService(serviceProvider);
|
|
|
+ redisTemplate.delete("joinImGroup:" + roomId);
|
|
|
+ pluginService.chatRoomDestroy(roomId);
|
|
|
+ //删除房间
|
|
|
+ this.removeById(room.getId());
|
|
|
log.info("leaveRoomSuccess dismiss the room: {},userId: {}", roomId, roomMember.getUserId());
|
|
|
} else {
|
|
|
- ImNetworkRoomMemberChangedMessage msg = new ImNetworkRoomMemberChangedMessage(roomMember, ImNetworkRoomMemberChangedEnum.LEAVE);
|
|
|
- imHelper.publishMessage(roomMember.getUserId(), roomId, msg);
|
|
|
- imHelper.quit(new String[]{roomMember.getUserId()}, roomId);
|
|
|
+ imService.sendQuitRoomMsg(roomMember,serviceProvider);
|
|
|
log.info("leaveRoomSuccess quit group: roomId={},userId: {}", roomId, roomMember.getUserId());
|
|
|
}
|
|
|
//删房间用户信息
|