Commit 633f3901 by Future

对接多人音视频

parent 95d4132a
......@@ -46,7 +46,7 @@ public class ImMultiMeetController extends BaseController {
@PostMapping("/reject")
@ApiOperation(value = "拒接进入频道", notes = "")
@ApiOperation(value = "拒接进入会议", notes = "拒接进入会议")
public ApiResult<Boolean> reject(@RequestBody RejectToMultiMeetParam param) {
multiMeetService.reject(param);
return ApiResult.ok();
......
......@@ -24,6 +24,9 @@ public class UserBaseDto implements Serializable {
@ApiModelProperty("蓝豆号")
private String idNumber;
@ApiModelProperty("手机号码")
private String phone;
/**
* 性别
* @see com.wecloud.im.enums.SexEnum
......
......@@ -218,6 +218,7 @@ public class UserService extends BaseServiceImpl<UserMapper, User> {
UserBaseDto userBaseDto = new UserBaseDto();
BeanUtils.copyProperties(user, userBaseDto);
userBaseDto.setUserId(user.getId().toString());
userBaseDto.setPhone(user.getPhone());
return userBaseDto;
}
......
......@@ -21,7 +21,7 @@ public interface ImClientBlacklistMapper extends BaseMapper<ImClientBlacklist> {
/**
* 查询我的拉黑列表
*
* @param page
* @param clientId
* @return
*/
......
......@@ -22,6 +22,9 @@ public class InviteToMultiMeetParam implements Serializable {
@ApiModelProperty(value = "绑定的会话id,可选", required = false)
private Long conversationId;
@ApiModelProperty(value = "多人会议房间id", required = true)
private String roomId;
@ApiModelProperty(value = "被邀请的客户端ID列表", required = true)
private List<String> toClients;
......
package com.wecloud.im.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Author wenzhida
......@@ -16,4 +18,13 @@ public class RejectToMultiMeetParam implements Serializable {
private static final long serialVersionUID = -249558750895602938L;
@ApiModelProperty(value = "会话id,可选", required = false)
private Long conversationId;
@ApiModelProperty(value = "多人会议房间id", required = true)
private String roomId;
@ApiModelProperty(value = "发起会议人clientId", required = true)
private String inviterClientId;
}
......@@ -33,7 +33,7 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist>
* @return
* @throws Exception
*/
ApiResult<Boolean> addImClientBlacklist(ImClientBlacklistUpdate imClientBlacklistUpdate) throws Exception;
ApiResult<Boolean> addImClientBlacklist(ImClientBlacklistUpdate imClientBlacklistUpdate);
/**
* 移出黑名单
......@@ -42,7 +42,7 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist>
* @return
* @throws Exception
*/
ApiResult<Boolean> removeImClientBlacklist(ImClientBlacklistUpdate imClientBlacklistUpdate) throws Exception;
ApiResult<Boolean> removeImClientBlacklist(ImClientBlacklistUpdate imClientBlacklistUpdate);
/**
* 获取分页对象
......@@ -50,6 +50,6 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist>
* @return
* @throws Exception
*/
ApiResult<Paging<ImClientBlacklistQueryVo>> getImClientBlacklistPageList(ImClientBlacklistPageParam imClientBlacklistPageParam) throws Exception;
ApiResult<Paging<ImClientBlacklistQueryVo>> getImClientBlacklistPageList(ImClientBlacklistPageParam imClientBlacklistPageParam);
}
......@@ -51,13 +51,13 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
@Override
@Transactional(rollbackFor = Exception.class)
public ApiResult<Boolean> addImClientBlacklist(ImClientBlacklistUpdate imClientBlacklistUpdate) throws Exception {
ImClient client = imClientService.getCurrentClient();
if (client == null) {
public ApiResult<Boolean> addImClientBlacklist(ImClientBlacklistUpdate imClientBlacklistUpdate) {
ImClient currentClient = imClientService.getCurrentClient();
if (currentClient == null) {
throw new BusinessException("当前用户登录信息失效");
}
ImClient beBlacker = imClientService.getOne(new QueryWrapper<ImClient>().lambda()
.eq(ImClient::getFkAppid, client.getFkAppid())
.eq(ImClient::getFkAppid, currentClient.getFkAppid())
.eq(ImClient::getClientId, imClientBlacklistUpdate.getClientIdBePrevent()));
if (beBlacker == null) {
throw new BusinessException("查无用户信息");
......@@ -65,8 +65,8 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
ImClientBlacklist imClientBlacklist = new ImClientBlacklist();
imClientBlacklist.setId(SnowflakeUtil.getId());
imClientBlacklist.setCreateTime(new Date());
imClientBlacklist.setFkAppid(client.getFkAppid());
imClientBlacklist.setClientIdPrevent(client.getClientId());
imClientBlacklist.setFkAppid(currentClient.getFkAppid());
imClientBlacklist.setClientIdPrevent(currentClient.getClientId());
imClientBlacklist.setClientIdBePrevent(beBlacker.getClientId());
this.save(imClientBlacklist);
......@@ -75,37 +75,32 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
@Override
@Transactional(rollbackFor = Exception.class)
public ApiResult<Boolean> removeImClientBlacklist(ImClientBlacklistUpdate imClientBlacklistUpdate) throws Exception {
public ApiResult<Boolean> removeImClientBlacklist(ImClientBlacklistUpdate imClientBlacklistUpdate) {
// 操作者
ImClient client = imClientService.getCurrentClient();
if (client == null) {
ImClient currentClient = imClientService.getCurrentClient();
if (currentClient == null) {
throw new BusinessException("当前用户登录信息失效");
}
// 被拉黑者
ImClient beBlacker = imClientService.getOne(new QueryWrapper<ImClient>().lambda()
.eq(ImClient::getFkAppid, client.getFkAppid())
.eq(ImClient::getFkAppid, currentClient.getFkAppid())
.eq(ImClient::getClientId, imClientBlacklistUpdate.getClientIdBePrevent()));
if (beBlacker == null) {
throw new BusinessException("查无用户信息");
}
// 删除
this.remove(new QueryWrapper<ImClientBlacklist>().lambda()
.eq(ImClientBlacklist::getClientIdPrevent, client.getClientId())
.eq(ImClientBlacklist::getClientIdPrevent, currentClient.getClientId())
.eq(ImClientBlacklist::getClientIdBePrevent, beBlacker.getClientId()));
return ApiResult.ok();
}
@Override
public ApiResult<Paging<ImClientBlacklistQueryVo>> getImClientBlacklistPageList(ImClientBlacklistPageParam imClientBlacklistPageParam) throws Exception {
public ApiResult<Paging<ImClientBlacklistQueryVo>> getImClientBlacklistPageList(ImClientBlacklistPageParam imClientBlacklistPageParam) {
Page<ImClientBlacklistQueryVo> page = new PageInfo<>(imClientBlacklistPageParam);
ImClient client = imClientService.getCurrentClient();
IPage<ImClientBlacklistQueryVo> imClientBlacklistPageList = imClientBlacklistMapper.getImClientBlacklistPageList(page, client.getClientId());
ImClient currentClient = imClientService.getCurrentClient();
IPage<ImClientBlacklistQueryVo> imClientBlacklistPageList = imClientBlacklistMapper.getImClientBlacklistPageList(page, currentClient.getClientId());
Paging<ImClientBlacklistQueryVo> imClientBlacklistQueryVoPaging = new Paging<>(imClientBlacklistPageList);
return ApiResult.ok(imClientBlacklistQueryVoPaging);
}
......
......@@ -19,4 +19,9 @@ public class MultiMeetInviteResponse extends MultiMeetDataBase implements Serial
*/
private Long conversationId;
/**
* 房间id
*/
private String roomId;
}
......@@ -14,4 +14,18 @@ import java.io.Serializable;
@Data
public class MultiMeetRejectResponse extends MultiMeetDataBase implements Serializable {
/**
* 会话id
*/
private Long conversationId;
/**
* 房间id
*/
private String roomId;
/**
* 发起会议人clientId
*/
private String inviterClientId;
}
......@@ -13,15 +13,15 @@ public interface WsMultiMeetWrite {
/**
* 发送邀请
* @param multiMeetInviteResponse
* @param toClientId
* @param toFkClientId
*/
void invite(MultiMeetInviteResponse multiMeetInviteResponse, Long toClientId);
void invite(MultiMeetInviteResponse multiMeetInviteResponse, Long toFkClientId);
/**
* 拒接邀请
* @param multiMeetRejectResponse
* @param toClientId
* @param toFkClientId
*/
void reject(MultiMeetRejectResponse multiMeetRejectResponse, Long toClientId);
void reject(MultiMeetRejectResponse multiMeetRejectResponse, Long toFkClientId);
}
......@@ -52,6 +52,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
// ws向接收方发送通知
MultiMeetInviteResponse multiMeetInviteResponse = new MultiMeetInviteResponse();
multiMeetInviteResponse.setConversationId(param.getConversationId());
multiMeetInviteResponse.setRoomId(param.getRoomId());
multiMeetInviteResponse.setClientId(currentClient.getClientId());
multiMeetInviteResponse.setTimestamp(System.currentTimeMillis());
......@@ -66,10 +67,17 @@ public class MultiMeetServiceImpl implements MultiMeetService {
ImClient currentClient = imClientService.getCurrentClient();
// ws向接收方发送通知
MultiMeetRejectResponse multiMeetRejectResponse = new MultiMeetRejectResponse();
multiMeetRejectResponse.setConversationId(param.getConversationId());
multiMeetRejectResponse.setRoomId(param.getRoomId());
multiMeetRejectResponse.setClientId(currentClient.getClientId());
multiMeetRejectResponse.setTimestamp(System.currentTimeMillis());
wsMultiMeetWrite.reject(multiMeetRejectResponse, currentClient.getId());
ImClient receiver = imClientService.getCacheImClient(currentClient.getFkAppid(), param.getInviterClientId());
if (receiver == null) {
log.info("查无接收人信息 {}", param.getInviterClientId());
throw new BusinessException("查无发起会议人信息");
}
wsMultiMeetWrite.reject(multiMeetRejectResponse, receiver.getId());
}
}
......@@ -24,7 +24,7 @@ public class WsMultiMeetWriteImpl implements WsMultiMeetWrite {
private ChannelSender channelSender;
@Override
public void invite(MultiMeetInviteResponse multiMeetInviteResponse, Long toClientId) {
public void invite(MultiMeetInviteResponse multiMeetInviteResponse, Long toFkClientId) {
multiMeetInviteResponse.setSubCmd(WsMultiMeetResponseSubCmdEnum.INVITE.getCmdCode());
// 向接收方推送
......@@ -35,11 +35,11 @@ public class WsMultiMeetWriteImpl implements WsMultiMeetWrite {
responseModel.setMsg(result.getMessage());
responseModel.setData(multiMeetInviteResponse);
responseModel.setReqId(null);
channelSender.sendMsg(responseModel, toClientId);
channelSender.sendMsg(responseModel, toFkClientId);
}
@Override
public void reject(MultiMeetRejectResponse multiMeetRejectResponse, Long toClientId) {
public void reject(MultiMeetRejectResponse multiMeetRejectResponse, Long toFkClientId) {
multiMeetRejectResponse.setSubCmd(WsMultiMeetResponseSubCmdEnum.REJECT.getCmdCode());
// 向接收方推送
......@@ -50,7 +50,7 @@ public class WsMultiMeetWriteImpl implements WsMultiMeetWrite {
responseModel.setMsg(result.getMessage());
responseModel.setData(multiMeetRejectResponse);
responseModel.setReqId(null);
channelSender.sendMsg(responseModel, toClientId);
channelSender.sendMsg(responseModel, toFkClientId);
}
......
......@@ -17,16 +17,9 @@
<select id="getImClientBlacklistPageList" resultType="com.wecloud.im.param.ImClientBlacklistQueryVo">
SELECT im_client.client_id AS clientIdBePrevent
FROM im_client_blacklist
INNER JOIN im_client ON im_client.id = im_client_blacklist.client_id_be_prevent
INNER JOIN im_client ON im_client.client_id = im_client_blacklist.client_id_be_prevent
WHERE im_client_blacklist.client_id_prevent = #{clientId}
ORDER BY im_client_blacklist.create_time DESC
</select>
<!-- <select id="getImClientBlacklistPageList" parameterType="com.wecloud.im.param.ImClientBlacklistPageParam"-->
<!-- resultType="com.wecloud.im.param.ImClientBlacklistQueryVo">-->
<!-- select-->
<!-- <include refid="Base_Column_List"/>-->
<!-- from im_client_blacklist-->
<!-- </select>-->
</mapper>
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