Commit 7763315e by Future

多人音视频同意、拒绝、离开

parent bd635577
...@@ -48,7 +48,6 @@ public class ImMultiMeetController extends BaseController { ...@@ -48,7 +48,6 @@ public class ImMultiMeetController extends BaseController {
return ApiResult.ok(); return ApiResult.ok();
} }
@PostMapping("/reject") @PostMapping("/reject")
@ApiOperation(value = "拒接进入会议", notes = "拒接进入会议") @ApiOperation(value = "拒接进入会议", notes = "拒接进入会议")
public ApiResult<Boolean> reject(@RequestBody RejectToMultiMeetParam param) { public ApiResult<Boolean> reject(@RequestBody RejectToMultiMeetParam param) {
......
...@@ -30,6 +30,9 @@ public class ImMultiRtcRoomMember extends BaseEntity { ...@@ -30,6 +30,9 @@ public class ImMultiRtcRoomMember extends BaseEntity {
@TableId(value = "id", type = IdType.INPUT) @TableId(value = "id", type = IdType.INPUT)
private Long id; private Long id;
@ApiModelProperty("房间id")
private String roomId;
@ApiModelProperty("im房间id") @ApiModelProperty("im房间id")
private Long fkRtcRoomId; private Long fkRtcRoomId;
......
...@@ -23,7 +23,4 @@ public class AgreeToMultiMeetParam implements Serializable { ...@@ -23,7 +23,4 @@ public class AgreeToMultiMeetParam implements Serializable {
@ApiModelProperty(value = "多人会议房间id", required = true) @ApiModelProperty(value = "多人会议房间id", required = true)
private String roomId; private String roomId;
@ApiModelProperty(value = "发起会议人clientId", required = true)
private String inviterClientId;
} }
...@@ -23,7 +23,4 @@ public class LeaveFromMultiMeetParam implements Serializable { ...@@ -23,7 +23,4 @@ public class LeaveFromMultiMeetParam implements Serializable {
@ApiModelProperty(value = "多人会议房间id", required = true) @ApiModelProperty(value = "多人会议房间id", required = true)
private String roomId; private String roomId;
@ApiModelProperty(value = "发起会议人clientId", required = true)
private String inviterClientId;
} }
...@@ -24,7 +24,4 @@ public class RejectToMultiMeetParam implements Serializable { ...@@ -24,7 +24,4 @@ public class RejectToMultiMeetParam implements Serializable {
@ApiModelProperty(value = "多人会议房间id", required = true) @ApiModelProperty(value = "多人会议房间id", required = true)
private String roomId; private String roomId;
@ApiModelProperty(value = "发起会议人clientId", required = true)
private String inviterClientId;
} }
...@@ -136,56 +136,78 @@ public class MultiMeetServiceImpl implements MultiMeetService { ...@@ -136,56 +136,78 @@ public class MultiMeetServiceImpl implements MultiMeetService {
@Override @Override
public void reject(RejectToMultiMeetParam param) { public void reject(RejectToMultiMeetParam param) {
ImClient currentClient = imClientService.getCurrentClient(); ImClient currentClient = imClientService.getCurrentClient();
// ws向接收方发送通知 List<ImMultiRtcRoomMember> rtcRoomMemberList = imMultiRtcRoomMemberService.list(
MultiMeetRejectResponse multiMeetRejectResponse = new MultiMeetRejectResponse(); new QueryWrapper<ImMultiRtcRoomMember>().lambda()
multiMeetRejectResponse.setConversationId(param.getConversationId()); .eq(ImMultiRtcRoomMember::getRoomId, param.getRoomId())
multiMeetRejectResponse.setRoomId(param.getRoomId()); .ne(ImMultiRtcRoomMember::getClientId, currentClient.getClientId())
);
multiMeetRejectResponse.setClientId(currentClient.getClientId()); for (ImMultiRtcRoomMember imMultiRtcRoomMember : rtcRoomMemberList) {
multiMeetRejectResponse.setTimestamp(System.currentTimeMillis()); // ws向接收方发送通知
ImClient receiver = imClientService.getCacheImClient(currentClient.getFkAppid(), param.getInviterClientId()); MultiMeetRejectResponse multiMeetRejectResponse = new MultiMeetRejectResponse();
if (receiver == null) { multiMeetRejectResponse.setConversationId(param.getConversationId());
log.info("查无接收人信息 {}", param.getInviterClientId()); multiMeetRejectResponse.setRoomId(param.getRoomId());
throw new BusinessException("查无发起会议人信息");
multiMeetRejectResponse.setClientId(currentClient.getClientId());
multiMeetRejectResponse.setTimestamp(System.currentTimeMillis());
ImClient receiver = imClientService.getCacheImClient(currentClient.getFkAppid(), imMultiRtcRoomMember.getClientId());
if (receiver == null) {
log.info("查无接收人信息 {}", imMultiRtcRoomMember.getClientId());
throw new BusinessException("查无发起会议人信息");
}
wsMultiMeetWrite.reject(multiMeetRejectResponse, receiver.getId());
} }
wsMultiMeetWrite.reject(multiMeetRejectResponse, receiver.getId());
} }
@Override @Override
public void agree(AgreeToMultiMeetParam param) { public void agree(AgreeToMultiMeetParam param) {
ImClient currentClient = imClientService.getCurrentClient(); ImClient currentClient = imClientService.getCurrentClient();
// ws向接收方发送通知 List<ImMultiRtcRoomMember> rtcRoomMemberList = imMultiRtcRoomMemberService.list(
MultiMeetAgreeResponse multiMeetAgreeResponse = new MultiMeetAgreeResponse(); new QueryWrapper<ImMultiRtcRoomMember>().lambda()
multiMeetAgreeResponse.setConversationId(param.getConversationId()); .eq(ImMultiRtcRoomMember::getRoomId, param.getRoomId())
multiMeetAgreeResponse.setRoomId(param.getRoomId()); .ne(ImMultiRtcRoomMember::getClientId, currentClient.getClientId())
);
multiMeetAgreeResponse.setClientId(currentClient.getClientId()); for (ImMultiRtcRoomMember imMultiRtcRoomMember : rtcRoomMemberList) {
multiMeetAgreeResponse.setTimestamp(System.currentTimeMillis()); // ws向接收方发送通知
ImClient receiver = imClientService.getCacheImClient(currentClient.getFkAppid(), param.getInviterClientId()); MultiMeetAgreeResponse multiMeetAgreeResponse = new MultiMeetAgreeResponse();
if (receiver == null) { multiMeetAgreeResponse.setConversationId(param.getConversationId());
log.info("查无接收人信息 {}", param.getInviterClientId()); multiMeetAgreeResponse.setRoomId(param.getRoomId());
throw new BusinessException("查无发起会议人信息");
multiMeetAgreeResponse.setClientId(currentClient.getClientId());
multiMeetAgreeResponse.setTimestamp(System.currentTimeMillis());
ImClient receiver = imClientService.getCacheImClient(currentClient.getFkAppid(), imMultiRtcRoomMember.getClientId());
if (receiver == null) {
log.info("查无接收人信息 {}", imMultiRtcRoomMember.getClientId());
throw new BusinessException("查无发起会议人信息");
}
wsMultiMeetWrite.agree(multiMeetAgreeResponse, receiver.getId());
} }
wsMultiMeetWrite.agree(multiMeetAgreeResponse, receiver.getId());
} }
@Override @Override
public void leave(LeaveFromMultiMeetParam param) { public void leave(LeaveFromMultiMeetParam param) {
ImClient currentClient = imClientService.getCurrentClient(); ImClient currentClient = imClientService.getCurrentClient();
// ws向接收方发送通知 List<ImMultiRtcRoomMember> rtcRoomMemberList = imMultiRtcRoomMemberService.list(
MultiMeetLeaveResponse multiMeetLeaveResponse = new MultiMeetLeaveResponse(); new QueryWrapper<ImMultiRtcRoomMember>().lambda()
multiMeetLeaveResponse.setConversationId(param.getConversationId()); .eq(ImMultiRtcRoomMember::getRoomId, param.getRoomId())
multiMeetLeaveResponse.setRoomId(param.getRoomId()); .ne(ImMultiRtcRoomMember::getClientId, currentClient.getClientId())
);
multiMeetLeaveResponse.setClientId(currentClient.getClientId()); for (ImMultiRtcRoomMember imMultiRtcRoomMember : rtcRoomMemberList) {
multiMeetLeaveResponse.setTimestamp(System.currentTimeMillis()); // ws向接收方发送通知
ImClient receiver = imClientService.getCacheImClient(currentClient.getFkAppid(), param.getInviterClientId()); MultiMeetLeaveResponse multiMeetLeaveResponse = new MultiMeetLeaveResponse();
if (receiver == null) { multiMeetLeaveResponse.setConversationId(param.getConversationId());
log.info("查无接收人信息 {}", param.getInviterClientId()); multiMeetLeaveResponse.setRoomId(param.getRoomId());
throw new BusinessException("查无发起会议人信息");
multiMeetLeaveResponse.setClientId(currentClient.getClientId());
multiMeetLeaveResponse.setTimestamp(System.currentTimeMillis());
ImClient receiver = imClientService.getCacheImClient(currentClient.getFkAppid(), imMultiRtcRoomMember.getClientId());
if (receiver == null) {
log.info("查无接收人信息 {}", imMultiRtcRoomMember.getClientId());
throw new BusinessException("查无发起会议人信息");
}
wsMultiMeetWrite.leave(multiMeetLeaveResponse, receiver.getId());
} }
wsMultiMeetWrite.leave(multiMeetLeaveResponse, receiver.getId());
} }
} }
-- 在feature-cluster 2021年12月22日之后,需要执行的的sql增量脚本 -- 在feature-cluster 2021年12月22日之后,需要执行的的sql增量脚本
...@@ -136,12 +136,15 @@ CREATE TABLE `im_multi_rtc_room_member` ...@@ -136,12 +136,15 @@ CREATE TABLE `im_multi_rtc_room_member`
( (
`id` bigint NOT NULL COMMENT '主键id', `id` bigint NOT NULL COMMENT '主键id',
`fk_rtc_room_id` bigint NOT NULL COMMENT 'im房间id', `fk_rtc_room_id` bigint NOT NULL COMMENT 'im房间id',
`room_id` varchar(64) DEFAULT NULL COMMENT '房间id',
`fk_client_id` bigint NOT NULL COMMENT 'client主键id', `fk_client_id` bigint NOT NULL COMMENT 'client主键id',
`client_id` varchar(200) DEFAULT NULL COMMENT '客户方提供的唯一id', `client_id` varchar(200) DEFAULT NULL COMMENT '客户方提供的唯一id',
`state` tinyint NOT NULL DEFAULT '1' COMMENT '房间成员状态,1:呼叫中,2:已接听,3:已拒绝,4:未接听,5:已断开', `state` tinyint NOT NULL DEFAULT '1' COMMENT '房间成员状态,1:呼叫中,2:已接听,3:已拒绝,4:未接听,5:已断开',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间', `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
`update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', `update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE, PRIMARY KEY (`id`) USING BTREE,
KEY `idx_fk_rtc_room_id` (`fk_rtc_room_id`) USING BTREE,
KEY `idx_room_id` (`room_id`) USING BTREE,
KEY `idx_client_id` (`client_id`) USING BTREE KEY `idx_client_id` (`client_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='多人音视频房间成员表'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='多人音视频房间成员表';
......
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