Commit 1792ed2e by Future

成员状态变更

parent 3f116f1c
......@@ -30,9 +30,14 @@ public enum MultiRtcMemberStateEnum implements BaseEnum {
NOT_ANSWERED(4, "未接听"),
/**
* 5 - 已断开
* 5 - 已断开(断网断线)
*/
DISCONNECT(5, "已断开");
DISCONNECT(5, "已断开"),
/**
* 6 - 主动退出
*/
LEAVE(6, "主动退出");
MultiRtcMemberStateEnum(int code, String desc) {
this.code = code;
......
package com.wecloud.multimeet.service.impl;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.google.common.collect.Lists;
import com.wecloud.im.entity.ImClient;
import com.wecloud.im.entity.ImConversationMembers;
import com.wecloud.im.entity.ImMultiRtcRoom;
import com.wecloud.im.entity.ImMultiRtcRoomMember;
import com.wecloud.im.enums.MultiRtcMemberStateEnum;
......@@ -15,7 +12,6 @@ import com.wecloud.im.param.AgreeToMultiMeetParam;
import com.wecloud.im.param.InviteToMultiMeetParam;
import com.wecloud.im.param.LeaveFromMultiMeetParam;
import com.wecloud.im.param.RejectToMultiMeetParam;
import com.wecloud.im.param.rtc.CreateRtcChannelResult;
import com.wecloud.im.service.ImClientService;
import com.wecloud.im.service.ImMultiRtcRoomMemberService;
import com.wecloud.im.service.ImMultiRtcRoomService;
......@@ -35,6 +31,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
/**
* @Author wenzhida
* @Date 2022/3/7 18:43
......@@ -152,6 +151,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
@Override
public void reject(RejectToMultiMeetParam param) {
ImClient currentClient = imClientService.getCurrentClient();
this.changeRoomMemberState(currentClient, param.getRoomId(), MultiRtcMemberStateEnum.REJECTED.getCode());
List<ImMultiRtcRoomMember> rtcRoomMemberList = imMultiRtcRoomMemberService.list(
new QueryWrapper<ImMultiRtcRoomMember>().lambda()
.eq(ImMultiRtcRoomMember::getRoomId, param.getRoomId())
......@@ -178,6 +178,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
@Override
public void agree(AgreeToMultiMeetParam param) {
ImClient currentClient = imClientService.getCurrentClient();
this.changeRoomMemberState(currentClient, param.getRoomId(), MultiRtcMemberStateEnum.ANSWERED.getCode());
List<ImMultiRtcRoomMember> rtcRoomMemberList = imMultiRtcRoomMemberService.list(
new QueryWrapper<ImMultiRtcRoomMember>().lambda()
.eq(ImMultiRtcRoomMember::getRoomId, param.getRoomId())
......@@ -204,6 +205,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
@Override
public void leave(LeaveFromMultiMeetParam param) {
ImClient currentClient = imClientService.getCurrentClient();
this.changeRoomMemberState(currentClient, param.getRoomId(), MultiRtcMemberStateEnum.LEAVE.getCode());
List<ImMultiRtcRoomMember> rtcRoomMemberList = imMultiRtcRoomMemberService.list(
new QueryWrapper<ImMultiRtcRoomMember>().lambda()
.eq(ImMultiRtcRoomMember::getRoomId, param.getRoomId())
......@@ -226,4 +228,18 @@ public class MultiMeetServiceImpl implements MultiMeetService {
}
}
/**
* 改变会议成员状态
*
* @param currentClient
* @param roomId
* @param state
*/
private void changeRoomMemberState(ImClient currentClient, String roomId, Integer state) {
imMultiRtcRoomMemberService.update(new UpdateWrapper<ImMultiRtcRoomMember>().lambda()
.eq(ImMultiRtcRoomMember::getRoomId, roomId)
.eq(ImMultiRtcRoomMember::getFkClientId, currentClient.getId())
.set(ImMultiRtcRoomMember::getState, state));
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment