Commit d6934d29 by Future

未接听接口添加

parent 5e4ed11b
......@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.wecloud.im.param.AgreeToMultiMeetParam;
import com.wecloud.im.param.InviteToMultiMeetParam;
import com.wecloud.im.param.LeaveFromMultiMeetParam;
import com.wecloud.im.param.NotAnsweredMultiMeetParam;
import com.wecloud.im.param.RejectToMultiMeetParam;
import com.wecloud.multimeet.service.MultiMeetService;
import io.geekidea.springbootplus.framework.common.api.ApiCode;
......@@ -72,5 +73,13 @@ public class ImMultiMeetController extends BaseController {
return ApiResult.ok();
}
@PostMapping("/notAnswered")
@ApiOperation(value = "未接听", notes = "未接听")
public ApiResult<Boolean> notAnswered(@RequestBody NotAnsweredMultiMeetParam param) {
log.info("多人音视频会议未接听入参 {}", JSON.toJSONString(param));
multiMeetService.notAnswered(param);
return ApiResult.ok();
}
}
package com.wecloud.im.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @Author wenzhida
* @Date 2022/3/24 11:06
* @Description 未接听入参
*/
@Data
@ApiModel(value = "未接听入参")
public class NotAnsweredMultiMeetParam implements Serializable {
private static final long serialVersionUID = 7439324829502466053L;
@ApiModelProperty(value = "会话id,可选", required = false)
private Long conversationId;
@ApiModelProperty(value = "多人会议房间id", required = true)
private String roomId;
}
......@@ -3,6 +3,7 @@ package com.wecloud.multimeet.service;
import com.wecloud.im.param.AgreeToMultiMeetParam;
import com.wecloud.im.param.InviteToMultiMeetParam;
import com.wecloud.im.param.LeaveFromMultiMeetParam;
import com.wecloud.im.param.NotAnsweredMultiMeetParam;
import com.wecloud.im.param.RejectToMultiMeetParam;
/**
......@@ -37,4 +38,10 @@ public interface MultiMeetService {
*/
void leave(LeaveFromMultiMeetParam param);
/**
* 拒绝接听
* @param param
*/
void notAnswered(NotAnsweredMultiMeetParam param);
}
......@@ -10,6 +10,7 @@ import com.wecloud.im.enums.MultiRtcRoomStateEnum;
import com.wecloud.im.param.AgreeToMultiMeetParam;
import com.wecloud.im.param.InviteToMultiMeetParam;
import com.wecloud.im.param.LeaveFromMultiMeetParam;
import com.wecloud.im.param.NotAnsweredMultiMeetParam;
import com.wecloud.im.param.RejectToMultiMeetParam;
import com.wecloud.im.service.ImClientService;
import com.wecloud.im.service.ImMultiRtcRoomMemberService;
......@@ -131,6 +132,17 @@ public class MultiMeetServiceImpl implements MultiMeetService {
roomMemberDto.setState(MultiRtcMemberStateEnum.CALLING.getCode());
members.add(roomMemberDto);
}
// 将邀请人存入房间成员
ImMultiRtcRoomMember roomMember = new ImMultiRtcRoomMember();
roomMember.setId(SnowflakeUtil.getId());
roomMember.setFkRtcRoomId(rtcRoom.getId());
roomMember.setRoomId(param.getRoomId());
roomMember.setFkClientId(currentClient.getId());
roomMember.setClientId(currentClient.getClientId());
roomMember.setState(MultiRtcMemberStateEnum.ANSWERED.getCode());
roomMember.setCreateTime(new Date());
roomMember.setUpdateTime(new Date());
roomMembersToSave.add(roomMember);
imMultiRtcRoomMemberService.saveBatch(roomMembersToSave);
for (RoomMemberDto member : members) {
// ws向接收方发送通知
......@@ -153,6 +165,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
List<ImMultiRtcRoomMember> rtcRoomMemberList = imMultiRtcRoomMemberService.list(
new QueryWrapper<ImMultiRtcRoomMember>().lambda()
.eq(ImMultiRtcRoomMember::getRoomId, param.getRoomId())
.in(ImMultiRtcRoomMember::getState, Lists.newArrayList(MultiRtcMemberStateEnum.ANSWERED.getCode()), MultiRtcMemberStateEnum.CALLING.getCode())
.ne(ImMultiRtcRoomMember::getClientId, currentClient.getClientId())
);
for (ImMultiRtcRoomMember imMultiRtcRoomMember : rtcRoomMemberList) {
......@@ -189,6 +202,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
List<ImMultiRtcRoomMember> rtcRoomMemberList = imMultiRtcRoomMemberService.list(
new QueryWrapper<ImMultiRtcRoomMember>().lambda()
.eq(ImMultiRtcRoomMember::getRoomId, param.getRoomId())
.in(ImMultiRtcRoomMember::getState, Lists.newArrayList(MultiRtcMemberStateEnum.ANSWERED.getCode()), MultiRtcMemberStateEnum.CALLING.getCode())
.ne(ImMultiRtcRoomMember::getClientId, currentClient.getClientId())
);
for (ImMultiRtcRoomMember imMultiRtcRoomMember : rtcRoomMemberList) {
......@@ -216,6 +230,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
List<ImMultiRtcRoomMember> rtcRoomMemberList = imMultiRtcRoomMemberService.list(
new QueryWrapper<ImMultiRtcRoomMember>().lambda()
.eq(ImMultiRtcRoomMember::getRoomId, param.getRoomId())
.in(ImMultiRtcRoomMember::getState, Lists.newArrayList(MultiRtcMemberStateEnum.ANSWERED.getCode()), MultiRtcMemberStateEnum.CALLING.getCode())
.ne(ImMultiRtcRoomMember::getClientId, currentClient.getClientId())
);
for (ImMultiRtcRoomMember imMultiRtcRoomMember : rtcRoomMemberList) {
......@@ -235,4 +250,10 @@ public class MultiMeetServiceImpl implements MultiMeetService {
}
}
@Override
public void notAnswered(NotAnsweredMultiMeetParam param) {
ImClient currentClient = imClientService.getCurrentClient();
imMultiRtcRoomMemberService.changeRoomMemberState(currentClient, param.getRoomId(), MultiRtcMemberStateEnum.NOT_ANSWERED.getCode());
}
}
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