Commit e47d5b0f by 14759289890

1、回话成员、收件箱、RTC语音、多人音视频ws改造完成

parent 393de387
package com.wecloud.im.action;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import com.wecloud.dispatch.annotation.ActionMapping;
import com.wecloud.im.param.ImConvMemeClientRemarkNameParam;
import com.wecloud.im.param.ListConversationMembersParam;
import com.wecloud.im.param.add.ImConversationMemAttrUpdate;
import com.wecloud.im.service.ImConversationMembersService;
import com.wecloud.im.vo.ConversationMemberVo;
import com.wecloud.im.ws.model.WsResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import com.wecloud.dispatch.annotation.ActionMapping;
import com.wecloud.im.param.ImConvMemeClientRemarkNameParam;
import com.wecloud.im.param.ListConversationMembersParam;
import com.wecloud.im.param.add.ImConversationMemAttrUpdate;
import com.wecloud.im.service.ImConversationMembersService;
import com.wecloud.im.vo.ConversationMemberVo;
import java.util.List;
/**
*
* @Author luozh
* @Date 2022年04月02日 16:41
* @Version 1.0
......@@ -37,32 +32,35 @@ public class ConversationMembersAction {
/**
* 添加或修改会话成员备注
*/
@PostMapping("/updateClientRemarkName")
@ActionMapping("/updateClientRemarkName")
@ApiOperation(value = "添加或修改会话成员备注", notes = "权限:目前只有client成员自己有权限操作")
public ApiResult<Boolean> saveOrUpdateClientRemarkName(@RequestBody ImConvMemeClientRemarkNameParam imConvMemeClientRemarkNameParam) throws Exception {
public WsResponse<Boolean> saveOrUpdateClientRemarkName(ImConvMemeClientRemarkNameParam imConvMemeClientRemarkNameParam) throws Exception {
imConversationMembersService.saveOrUpdateClientRemarkName(imConvMemeClientRemarkNameParam);
return ApiResult.ok();
return WsResponse.ok();
}
/**
* 添加或修改会话成员拓展字段
*/
@PostMapping("/updateAttr")
@ActionMapping("/updateAttr")
@ApiOperation(value = "添加或修改会话成员拓展字段", notes = "权限:目前只有client成员自己有权限操作")
public ApiResult<Boolean> saveOrUpdateAttr(@RequestBody ImConversationMemAttrUpdate imConversationMemAttrUpdate) throws Exception {
return imConversationMembersService.saveOrUpdateAttr(imConversationMemAttrUpdate);
public WsResponse<Boolean> saveOrUpdateAttr(ImConversationMemAttrUpdate imConversationMemAttrUpdate) throws Exception {
boolean r = imConversationMembersService.saveOrUpdateAttr(imConversationMemAttrUpdate);
if (r) {
return WsResponse.ok();
} else {
return WsResponse.fail();
}
}
/**
* 会话中成员表列表
*/
@PostMapping("/getList")
@ActionMapping("/getList")
@ApiOperation(value = "获取会话中成员表列表")
public ApiResult<List<ConversationMemberVo>> getImConversationMembersList(@Validated @RequestBody ListConversationMembersParam listConversationMembersParam) throws Exception {
// Paging<ImConversationMembersQueryVo> paging = imConversationMembersService.getImConversationMembersPageList(imConversationMembersPageParam);
// return ApiResult.ok(paging);
return ApiResult.ok(imConversationMembersService.getImConversationMembersList(listConversationMembersParam));
public WsResponse<List<ConversationMemberVo>> getImConversationMembersList(@Validated ListConversationMembersParam listConversationMembersParam) throws Exception {
return WsResponse.ok(imConversationMembersService.getImConversationMembersList(listConversationMembersParam));
}
}
package com.wecloud.im.action;
import com.wecloud.dispatch.annotation.ActionMapping;
import com.wecloud.im.param.ImMsgReceivedStatusUpdate;
import com.wecloud.im.param.MsgReadStatusUpdateParam;
import com.wecloud.im.param.UpdateMsgReadStatusByConversationParam;
import com.wecloud.im.service.ImInboxService;
import com.wecloud.im.ws.model.WsResponse;
import io.geekidea.springbootplus.framework.common.api.ApiCode;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import com.wecloud.dispatch.annotation.ActionMapping;
import com.wecloud.im.param.ImMsgReceivedStatusUpdate;
import com.wecloud.im.param.MsgReadStatusUpdateParam;
import com.wecloud.im.param.UpdateMsgReadStatusByConversationParam;
import com.wecloud.im.service.ImInboxService;
/**
*
* @Author luozh
* @Date 2022年04月02日 16:39
* @Version 1.0
......@@ -37,33 +33,35 @@ public class InboxAction {
/**
* 消息修改为已接收状态
*/
@PostMapping("/msgReceivedUpdate")
@ActionMapping("/msgReceivedUpdate")
@ApiOperation(value = "消息修改为已接收状态")
public ApiResult<Boolean> updateImMsgReceived(@RequestBody @Validated ImMsgReceivedStatusUpdate imMsgReceivedUpdate) throws Exception {
return imInboxService.updateImMsgReceived(imMsgReceivedUpdate);
public WsResponse<Boolean> updateImMsgReceived(@RequestBody @Validated ImMsgReceivedStatusUpdate imMsgReceivedUpdate) throws Exception {
imInboxService.updateImMsgReceived(imMsgReceivedUpdate);
return WsResponse.ok();
}
/**
* 消息修改为已读状态
*/
@PostMapping("/msgReadUpdate")
@ActionMapping("/msgReadUpdate")
@ApiOperation(value = "消息修改为已读状态")
public ApiResult<Boolean> updateInMsgReadUpdate(@RequestBody MsgReadStatusUpdateParam msgReadStatusUpdateParam) throws Exception {
public WsResponse<Boolean> updateInMsgReadUpdate(@RequestBody MsgReadStatusUpdateParam msgReadStatusUpdateParam) throws Exception {
if (CollectionUtils.isEmpty(msgReadStatusUpdateParam.getMsgIds())) {
return ApiResult.fail(ApiCode.PARAMETER_EXCEPTION);
return WsResponse.fail(ApiCode.PARAMETER_EXCEPTION);
}
return imInboxService.updateImMsgRead(msgReadStatusUpdateParam);
imInboxService.updateImMsgRead(msgReadStatusUpdateParam);
return WsResponse.ok();
}
/**
* 会话消息修改为已读状态
*/
@PostMapping("/updateMsgReadStatusByConversation")
@ActionMapping("/updateMsgReadStatusByConversation")
@ApiOperation(value = "会话消息修改为已读状态")
public ApiResult<Boolean> updateMsgReadStatusByConversation(@RequestBody UpdateMsgReadStatusByConversationParam param) throws Exception {
public WsResponse<Boolean> updateMsgReadStatusByConversation(@RequestBody UpdateMsgReadStatusByConversationParam param) throws Exception {
if (param.getConversationId() == null) {
return ApiResult.fail(ApiCode.PARAMETER_EXCEPTION);
return WsResponse.fail(ApiCode.PARAMETER_EXCEPTION);
}
return ApiResult.ok(imInboxService.updateMsgReadStatusByConversation(param));
return WsResponse.ok(imInboxService.updateMsgReadStatusByConversation(param));
}
}
package com.wecloud.im.action;
import com.alibaba.fastjson.JSON;
import com.wecloud.dispatch.annotation.ActionMapping;
import com.wecloud.im.param.*;
import com.wecloud.im.ws.model.WsResponse;
import com.wecloud.multimeet.service.MultiMeetService;
import io.geekidea.springbootplus.framework.common.api.ApiCode;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;
@Slf4j
@Component
@ActionMapping(value = "/im/multiMeet")
@Api(value = "ws-多人音视频通话", tags = {"多人音视频通话"})
public class MultiMeetAction {
@Autowired
private MultiMeetService multiMeetService;
/**
* 邀请客户端加入
*/
@ActionMapping("/invite")
@ApiOperation(value = "邀请加入多人音视频会议", notes = "邀请加入多人音视频会议")
public WsResponse<Boolean> invite(@Validated InviteToMultiMeetParam param) {
log.info("邀请加入多人音视频会议入参 {}", JSON.toJSONString(param));
if (CollectionUtils.isEmpty(param.getToClients())) {
return WsResponse.fail(ApiCode.PARAMETER_EXCEPTION);
}
multiMeetService.invite(param);
return WsResponse.ok();
}
@ActionMapping("/reject")
@ApiOperation(value = "拒接进入会议", notes = "拒接进入会议")
public WsResponse<Boolean> reject(RejectToMultiMeetParam param) {
log.info("拒绝加入多人音视频会议入参 {}", JSON.toJSONString(param));
multiMeetService.reject(param);
return WsResponse.ok();
}
@ActionMapping("/agree")
@ApiOperation(value = "同意进入会议", notes = "同意进入会议")
public WsResponse<Boolean> agree(AgreeToMultiMeetParam param) {
log.info("同意进入多人音视频会议入参 {}", JSON.toJSONString(param));
multiMeetService.agree(param);
return WsResponse.ok();
}
@ActionMapping("/leave")
@ApiOperation(value = "主动挂断(离开会议)", notes = "主动挂断(离开会议)")
public WsResponse<Boolean> leave(LeaveFromMultiMeetParam param) {
log.info("主动挂断多人音视频会议入参 {}", JSON.toJSONString(param));
multiMeetService.leave(param);
return WsResponse.ok();
}
@ActionMapping("/notAnswered")
@ApiOperation(value = "未接听", notes = "未接听")
public WsResponse<Boolean> notAnswered(NotAnsweredMultiMeetParam param) {
log.info("多人音视频会议未接听入参 {}", JSON.toJSONString(param));
multiMeetService.notAnswered(param);
return WsResponse.ok();
}
@ActionMapping("/heartbeat")
@ApiOperation(value = "发送心跳", notes = "发送心跳")
public WsResponse<Boolean> heartbeat(HeartbeatMultiMeetParam param) {
multiMeetService.heartbeat(param);
return WsResponse.ok();
}
}
package com.wecloud.im.action;
import com.wecloud.dispatch.annotation.ActionMapping;
import com.wecloud.im.enums.CallTypeEnum;
import com.wecloud.im.param.rtc.*;
import com.wecloud.im.ws.model.WsResponse;
import com.wecloud.rtc.service.RtcService;
import io.geekidea.springbootplus.framework.common.api.ApiCode;
import io.geekidea.springbootplus.framework.common.enums.BaseEnum;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;
@Slf4j
@Component
@ActionMapping(value = "/im/rtc")
@Api(value = "ws-音视频通话", tags = {"音视频通话"})
public class RtcAction {
@Autowired
private RtcService rtcService;
/**
* 创建频道,并邀请客户端加入
*/
@ActionMapping("/createAndCall")
@ApiOperation(value = "创建频道,并邀请客户端加入", notes = "创建频道,并邀请客户端加入")
public WsResponse<CreateRtcChannelResult> createAndCall(@RequestBody CreateRtcChannelParam createRtcChannelParam) {
if (BaseEnum.valueOf(CallTypeEnum.class, createRtcChannelParam.getCallType()) == null) {
return WsResponse.fail(ApiCode.PARAMETER_EXCEPTION);
}
return WsResponse.ok(rtcService.createAndCall(createRtcChannelParam));
}
@ActionMapping("/join")
@ApiOperation(value = "同意进入频道", notes = "")
public WsResponse<Boolean> join(@RequestBody JoinRtcChannelParam joinRtcChannelParam) {
rtcService.join(joinRtcChannelParam);
return WsResponse.ok();
}
@ActionMapping("/reject")
@ApiOperation(value = "拒接进入频道", notes = "")
public WsResponse<Boolean> reject(@RequestBody RejectRtcChannelParam rejectRtcChannelParam) {
rtcService.reject(rejectRtcChannelParam);
return WsResponse.ok();
}
@ActionMapping("/leave")
@ApiOperation(value = "主动挂断(离开频道)", notes = "")
public WsResponse<Boolean> leave(@RequestBody LeaveRtcChannelParam leaveRtcChannelParam) {
rtcService.leave(leaveRtcChannelParam);
return WsResponse.ok();
}
@ActionMapping("/sdpForward")
@ApiOperation(value = "SDP数据转发", notes = "")
public WsResponse<Boolean> sdpForward(@RequestBody SdpForwardParam sdpForwardParam) {
rtcService.sdpForward(sdpForwardParam);
return WsResponse.ok();
}
@ActionMapping("/candidateForward")
@ApiOperation(value = "candidate候选者数据转发", notes = "")
public WsResponse<Boolean> candidateForward(@RequestBody CandidateForwardParam candidateForwardParam) {
rtcService.candidateForward(candidateForwardParam);
return WsResponse.ok();
}
}
......@@ -51,7 +51,12 @@ public class ImConversationMembersController extends BaseController {
@PostMapping("/updateAttr")
@ApiOperation(value = "添加或修改会话成员拓展字段", notes = "权限:目前只有client成员自己有权限操作")
public ApiResult<Boolean> saveOrUpdateAttr(@RequestBody ImConversationMemAttrUpdate imConversationMemAttrUpdate) throws Exception {
return imConversationMembersService.saveOrUpdateAttr(imConversationMemAttrUpdate);
boolean r = imConversationMembersService.saveOrUpdateAttr(imConversationMemAttrUpdate);
if (r) {
return ApiResult.ok();
} else {
return ApiResult.fail();
}
}
......
......@@ -39,7 +39,8 @@ public class ImInboxController extends BaseController {
@PostMapping("/msgReceivedUpdate")
@ApiOperation(value = "消息修改为已接收状态")
public ApiResult<Boolean> updateImMsgReceived(@RequestBody @Validated ImMsgReceivedStatusUpdate imMsgReceivedUpdate) throws Exception {
return imInboxService.updateImMsgReceived(imMsgReceivedUpdate);
imInboxService.updateImMsgReceived(imMsgReceivedUpdate);
return ApiResult.ok();
}
/**
......@@ -51,7 +52,8 @@ public class ImInboxController extends BaseController {
if (CollectionUtils.isEmpty(msgReadStatusUpdateParam.getMsgIds())) {
return ApiResult.fail(ApiCode.PARAMETER_EXCEPTION);
}
return imInboxService.updateImMsgRead(msgReadStatusUpdateParam);
imInboxService.updateImMsgRead(msgReadStatusUpdateParam);
return ApiResult.ok();
}
/**
......
package com.wecloud.im.controller;
import com.wecloud.im.enums.CallTypeEnum;
import com.wecloud.im.param.rtc.CandidateForwardParam;
import com.wecloud.im.param.rtc.CreateRtcChannelParam;
import com.wecloud.im.param.rtc.CreateRtcChannelResult;
import com.wecloud.im.param.rtc.JoinRtcChannelParam;
import com.wecloud.im.param.rtc.LeaveRtcChannelParam;
import com.wecloud.im.param.rtc.RejectRtcChannelParam;
import com.wecloud.im.param.rtc.SdpForwardParam;
import com.wecloud.im.param.rtc.*;
import com.wecloud.rtc.service.RtcService;
import io.geekidea.springbootplus.framework.common.api.ApiCode;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
......@@ -46,41 +40,46 @@ public class ImRtcController extends BaseController {
if (BaseEnum.valueOf(CallTypeEnum.class, createRtcChannelParam.getCallType()) == null) {
return ApiResult.fail(ApiCode.PARAMETER_EXCEPTION, null);
}
return rtcService.createAndCall(createRtcChannelParam);
return ApiResult.ok(rtcService.createAndCall(createRtcChannelParam));
}
@PostMapping("/join")
@ApiOperation(value = "同意进入频道", notes = "")
public ApiResult<Boolean> join(@RequestBody JoinRtcChannelParam joinRtcChannelParam) {
return rtcService.join(joinRtcChannelParam);
rtcService.join(joinRtcChannelParam);
return ApiResult.ok();
}
@PostMapping("/reject")
@ApiOperation(value = "拒接进入频道", notes = "")
public ApiResult<Boolean> reject(@RequestBody RejectRtcChannelParam rejectRtcChannelParam) {
return rtcService.reject(rejectRtcChannelParam);
rtcService.reject(rejectRtcChannelParam);
return ApiResult.ok();
}
@PostMapping("/leave")
@ApiOperation(value = "主动挂断(离开频道)", notes = "")
public ApiResult<Boolean> leave(@RequestBody LeaveRtcChannelParam leaveRtcChannelParam) {
return rtcService.leave(leaveRtcChannelParam);
rtcService.leave(leaveRtcChannelParam);
return ApiResult.ok();
}
@PostMapping("/sdpForward")
@ApiOperation(value = "SDP数据转发", notes = "")
public ApiResult<Boolean> sdpForward(@RequestBody SdpForwardParam sdpForwardParam) {
return rtcService.sdpForward(sdpForwardParam);
rtcService.sdpForward(sdpForwardParam);
return ApiResult.ok();
}
@PostMapping("/candidateForward")
@ApiOperation(value = "candidate候选者数据转发", notes = "")
public ApiResult<Boolean> candidateForward(@RequestBody CandidateForwardParam candidateForwardParam) {
return rtcService.candidateForward(candidateForwardParam);
rtcService.candidateForward(candidateForwardParam);
return ApiResult.ok();
}
......
......@@ -2,13 +2,7 @@ package com.wecloud.im.service;
import com.wecloud.im.entity.ImApplication;
import com.wecloud.im.entity.ImConversationMembers;
import com.wecloud.im.param.ApiImConversationMembersPageParam;
import com.wecloud.im.param.ApiImConversationMembersQueryVo;
import com.wecloud.im.param.ImConvMemeClientRemarkNameParam;
import com.wecloud.im.param.ListConversationMembersParam;
import com.wecloud.im.param.ImConversationMembersPageParam;
import com.wecloud.im.param.ImConversationMembersQueryVo;
import com.wecloud.im.param.SetAdminsParam;
import com.wecloud.im.param.*;
import com.wecloud.im.param.add.ImConversationMemAttrUpdate;
import com.wecloud.im.vo.ConversationMemberVo;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
......@@ -54,7 +48,7 @@ public interface ImConversationMembersService extends BaseService<ImConversation
List<ConversationMemberVo> getImConversationMembersList(ListConversationMembersParam param);
ApiResult<Boolean> saveOrUpdateAttr(ImConversationMemAttrUpdate imConversationMemAttrUpdate);
Boolean saveOrUpdateAttr(ImConversationMemAttrUpdate imConversationMemAttrUpdate);
/**
* 保存
......
......@@ -2,10 +2,9 @@ package com.wecloud.im.service;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.wecloud.im.entity.ImInbox;
import com.wecloud.im.param.MsgReadStatusUpdateParam;
import com.wecloud.im.param.ImMsgReceivedStatusUpdate;
import com.wecloud.im.param.MsgReadStatusUpdateParam;
import com.wecloud.im.param.UpdateMsgReadStatusByConversationParam;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.service.BaseService;
/**
......@@ -68,7 +67,7 @@ public interface ImInboxService extends BaseService<ImInbox> {
* @param imMsgReceivedUpdate
* @return
*/
ApiResult<Boolean> updateImMsgReceived(ImMsgReceivedStatusUpdate imMsgReceivedUpdate);
Boolean updateImMsgReceived(ImMsgReceivedStatusUpdate imMsgReceivedUpdate);
/**
* 统计未读消息数量
......@@ -83,7 +82,7 @@ public interface ImInboxService extends BaseService<ImInbox> {
*
* @return
*/
ApiResult<Boolean> updateImMsgRead(MsgReadStatusUpdateParam msgReadStatusUpdateParam) throws JsonProcessingException;
Boolean updateImMsgRead(MsgReadStatusUpdateParam msgReadStatusUpdateParam) throws JsonProcessingException;
/**
* 整个会话消息修改为已读状态
......
......@@ -12,19 +12,9 @@ import com.wecloud.im.entity.ImConversationMembers;
import com.wecloud.im.entity.ImMessageOnlineSend;
import com.wecloud.im.mapper.ImConversationMapper;
import com.wecloud.im.mapper.ImConversationMembersMapper;
import com.wecloud.im.param.ApiImConversationMembersPageParam;
import com.wecloud.im.param.ApiImConversationMembersQueryVo;
import com.wecloud.im.param.ImConvMemeClientRemarkNameParam;
import com.wecloud.im.param.ListConversationMembersParam;
import com.wecloud.im.param.ImConversationMembersPageParam;
import com.wecloud.im.param.ImConversationMembersQueryVo;
import com.wecloud.im.param.SetAdminsParam;
import com.wecloud.im.param.*;
import com.wecloud.im.param.add.ImConversationMemAttrUpdate;
import com.wecloud.im.service.ImApplicationService;
import com.wecloud.im.service.ImClientService;
import com.wecloud.im.service.ImConversationMembersService;
import com.wecloud.im.service.ImConversationService;
import com.wecloud.im.service.ImMessageService;
import com.wecloud.im.service.*;
import com.wecloud.im.vo.ConversationMemberVo;
import com.wecloud.im.ws.enums.MsgTypeEnum;
import com.wecloud.im.ws.enums.WsResponseCmdEnum;
......@@ -37,15 +27,12 @@ import io.geekidea.springbootplus.framework.common.exception.BusinessException;
import io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl;
import io.geekidea.springbootplus.framework.core.pagination.PageInfo;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import io.geekidea.springbootplus.framework.shiro.jwt.JwtToken;
import io.geekidea.springbootplus.framework.shiro.util.JwtUtil;
import lombok.extern.slf4j.Slf4j;
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.HashMap;
import java.util.List;
import java.util.Map;
......@@ -83,6 +70,9 @@ public class ImConversationMembersServiceImpl extends BaseServiceImpl<ImConversa
@Autowired
private ImConversationMembersMapper imConversationMembersMapper;
@Autowired
private ContextService contextService;
@Override
public ApiResult<List<ApiImConversationMembersQueryVo>> getRestApiImConversationMembersList(ApiImConversationMembersPageParam apiImConversationMembersPageParam, ImApplication imApplication) {
......@@ -162,12 +152,12 @@ public class ImConversationMembersServiceImpl extends BaseServiceImpl<ImConversa
@Override
@Transactional(rollbackFor = Exception.class)
public ApiResult<Boolean> saveOrUpdateAttr(ImConversationMemAttrUpdate imConversationMemAttrUpdate) {
public Boolean saveOrUpdateAttr(ImConversationMemAttrUpdate imConversationMemAttrUpdate) {
// shiro线程中获取当前token
JwtToken curentJwtToken = JwtUtil.getCurrentJwtToken();
// 根据appKey查询application
ImApplication imApplication = imApplicationService.getCacheAppByAppKey(curentJwtToken.getAppKey());
// 获取当前client
ImClient createClient = contextService.getImClientIfNotNullOrThrow();
// 根据appId查询application
ImApplication imApplication = contextService.getImApplicationIfNotNullOrThrow(createClient.getFkAppid());
ImClient imClientSender = imClientService.getCurrentClient();
......@@ -180,7 +170,7 @@ public class ImConversationMembersServiceImpl extends BaseServiceImpl<ImConversa
);
if (imConversationMember == null) {
return ApiResult.fail();
return false;
}
......@@ -197,15 +187,8 @@ public class ImConversationMembersServiceImpl extends BaseServiceImpl<ImConversa
boolean b = imConversationMembersService.updateById(imConversationMember);
if (b) {
//TODO ws下发群成员属性变动事件
return ApiResult.ok();
} else {
return ApiResult.fail();
}
//TODO ws下发群成员属性变动事件
return b;
}
......
......@@ -2,22 +2,13 @@ package com.wecloud.im.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Maps;
import com.wecloud.im.entity.ImApplication;
import com.wecloud.im.entity.ImClient;
import com.wecloud.im.entity.ImConversationMembers;
import com.wecloud.im.entity.ImInbox;
import com.wecloud.im.entity.ImMessage;
import com.wecloud.im.entity.ImMessageOnlineSend;
import com.wecloud.im.entity.*;
import com.wecloud.im.enums.ReadMsgStatusEnum;
import com.wecloud.im.mapper.ImInboxMapper;
import com.wecloud.im.param.ImMsgReceivedStatusUpdate;
import com.wecloud.im.param.MsgReadStatusUpdateParam;
import com.wecloud.im.param.UpdateMsgReadStatusByConversationParam;
import com.wecloud.im.service.ImApplicationService;
import com.wecloud.im.service.ImClientService;
import com.wecloud.im.service.ImConversationMembersService;
import com.wecloud.im.service.ImInboxService;
import com.wecloud.im.service.ImMessageService;
import com.wecloud.im.service.*;
import com.wecloud.im.ws.enums.MsgTypeEnum;
import com.wecloud.im.ws.enums.WsResponseCmdEnum;
import com.wecloud.im.ws.model.WsResponse;
......@@ -96,7 +87,7 @@ public class ImInboxServiceImpl extends BaseServiceImpl<ImInboxMapper, ImInbox>
@Override
@Transactional(rollbackFor = Exception.class)
public ApiResult<Boolean> updateImMsgReceived(ImMsgReceivedStatusUpdate imMsgReceivedUpdate) {
public Boolean updateImMsgReceived(ImMsgReceivedStatusUpdate imMsgReceivedUpdate) {
ImClient curentClient = imClientService.getCurrentClient();
// 修改已接收状态
......@@ -119,7 +110,7 @@ public class ImInboxServiceImpl extends BaseServiceImpl<ImInboxMapper, ImInbox>
this.updateImMsgRead(msgReadStatusUpdateParam);
}
return ApiResult.ok();
return true;
}
/**
......@@ -137,7 +128,7 @@ public class ImInboxServiceImpl extends BaseServiceImpl<ImInboxMapper, ImInbox>
@Override
@Transactional(rollbackFor = Exception.class)
public ApiResult<Boolean> updateImMsgRead(MsgReadStatusUpdateParam msgReadStatusUpdateParam) {
public Boolean updateImMsgRead(MsgReadStatusUpdateParam msgReadStatusUpdateParam) {
ImClient curentClient = imClientService.getCurrentClient();
// 修改已读状态
......@@ -151,7 +142,7 @@ public class ImInboxServiceImpl extends BaseServiceImpl<ImInboxMapper, ImInbox>
contentMap.put("receiverId", curentClient.getClientId());
sendMsgStatus(curentClient, MsgTypeEnum.CLIENT_READ_MSG, contentMap, msgReadStatusUpdateParam.getMsgIds());
return ApiResult.ok();
return true;
}
......
package com.wecloud.im.ws.model;
import com.wecloud.im.ws.enums.WsResponseCmdEnum;
import io.geekidea.springbootplus.framework.common.api.ApiCode;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.config.il8n.I18nMessageUtil;
import io.geekidea.springbootplus.framework.config.il8n.LanguageEnum;
import lombok.Data;
......@@ -10,10 +10,6 @@ import lombok.experimental.Accessors;
import java.io.IOException;
import java.io.Serializable;
import javax.xml.ws.Response;
import com.wecloud.im.ws.enums.WsResponseCmdEnum;
/**
* @Description websocket服务端响应消息和下方消息的封装对象
* @Author hewei hwei1233@163.com
......@@ -91,8 +87,12 @@ public class WsResponse<T> implements Serializable {
return result(ApiCode.FAIL, message, false);
}
public static WsResponse<Boolean> fail(ApiCode apiCode, String message) {
return result(apiCode, message, false);
public static <T> WsResponse<T> fail(ApiCode apiCode) {
return result(apiCode, "", null);
}
public static <T> WsResponse<T> fail(ApiCode apiCode, String message) {
return result(apiCode, message, null);
}
......
package com.wecloud.rtc.service;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.wecloud.im.param.rtc.CandidateForwardParam;
import com.wecloud.im.param.rtc.CreateRtcChannelParam;
import com.wecloud.im.param.rtc.CreateRtcChannelResult;
import com.wecloud.im.param.rtc.JoinRtcChannelParam;
import com.wecloud.im.param.rtc.LeaveRtcChannelParam;
import com.wecloud.im.param.rtc.RejectRtcChannelParam;
import com.wecloud.im.param.rtc.SdpForwardParam;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import com.wecloud.im.param.rtc.*;
/**
* 管理rtc频道
......@@ -18,22 +10,22 @@ public interface RtcService {
/**
* 创建一个频道,并向接收方发送系统推送
*/
ApiResult<CreateRtcChannelResult> createAndCall(CreateRtcChannelParam createRtcChannelParam);
CreateRtcChannelResult createAndCall(CreateRtcChannelParam createRtcChannelParam);
/**
* 加入频道
*/
ApiResult<Boolean> join(JoinRtcChannelParam joinRtcChannelParam);
Boolean join(JoinRtcChannelParam joinRtcChannelParam);
/**
* 拒接加入频道
*/
ApiResult<Boolean> reject(RejectRtcChannelParam rejectRtcChannelParam);
Boolean reject(RejectRtcChannelParam rejectRtcChannelParam);
/**
* 退出频道
*/
ApiResult<Boolean> leave(LeaveRtcChannelParam leaveRtcChannelParam);
Boolean leave(LeaveRtcChannelParam leaveRtcChannelParam);
/**
* SDP数据转发
......@@ -41,7 +33,7 @@ public interface RtcService {
* @param sdpForwardParam
* @return
*/
ApiResult<Boolean> sdpForward(SdpForwardParam sdpForwardParam);
Boolean sdpForward(SdpForwardParam sdpForwardParam);
/**
* candidate候选者数据转发
......@@ -49,6 +41,6 @@ public interface RtcService {
* @param candidateForwardParam
* @return
*/
ApiResult<Boolean> candidateForward(CandidateForwardParam candidateForwardParam);
Boolean candidateForward(CandidateForwardParam candidateForwardParam);
}
package com.wecloud.rtc.service.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.wecloud.im.entity.ImApplication;
import com.wecloud.im.entity.ImClient;
import com.wecloud.im.param.rtc.CandidateForwardParam;
import com.wecloud.im.param.rtc.CreateRtcChannelParam;
import com.wecloud.im.param.rtc.CreateRtcChannelResult;
import com.wecloud.im.param.rtc.JoinRtcChannelParam;
import com.wecloud.im.param.rtc.LeaveRtcChannelParam;
import com.wecloud.im.param.rtc.RejectRtcChannelParam;
import com.wecloud.im.param.rtc.SdpForwardParam;
import com.wecloud.im.param.rtc.*;
import com.wecloud.im.service.ImApplicationService;
import com.wecloud.im.service.ImClientBlacklistService;
import com.wecloud.im.service.ImClientService;
import com.wecloud.im.ws.cache.UserStateCacheManager;
import com.wecloud.im.ws.cache.UserStateListener;
import com.wecloud.rtc.entity.response.RtcCallResponse;
import com.wecloud.rtc.entity.response.RtcCandidateForwardResponse;
import com.wecloud.rtc.entity.response.RtcClientJoinResponse;
import com.wecloud.rtc.entity.response.RtcClientLeaveResponse;
import com.wecloud.rtc.entity.response.RtcClientRejectResponse;
import com.wecloud.rtc.entity.response.RtcSdpForwardResponse;
import com.wecloud.rtc.entity.response.*;
import com.wecloud.rtc.service.MangerRtcCacheService;
import com.wecloud.rtc.service.RtcService;
import com.wecloud.rtc.service.WsRtcWrite;
......@@ -82,7 +70,7 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
}
@Override
public ApiResult<CreateRtcChannelResult> createAndCall(CreateRtcChannelParam createRtcChannelParam) {
public CreateRtcChannelResult createAndCall(CreateRtcChannelParam createRtcChannelParam) {
ImClient currentClient = imClientService.getCurrentClient();
Long rtcChannelId = SnowflakeUtil.getId();
// 判断发起方必须在线
......@@ -115,13 +103,13 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
// TODO 待开发 下发安卓和ios系统推送
return ApiResult.ok(createRtcChannelResult);
return createRtcChannelResult;
}
@Override
public ApiResult<Boolean> join(JoinRtcChannelParam joinRtcChannelParam) {
public Boolean join(JoinRtcChannelParam joinRtcChannelParam) {
ImClient client = imClientService.getCurrentClient();
......@@ -144,11 +132,11 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
wsRtcWrite.clientJoin(rtcSdpForwardResponse, Long.valueOf(toClientId));
}
return ApiResult.ok(true);
return true;
}
@Override
public ApiResult<Boolean> reject(RejectRtcChannelParam rejectRtcChannelParam) {
public Boolean reject(RejectRtcChannelParam rejectRtcChannelParam) {
ImClient client = imClientService.getCurrentClient();
// 修改缓存
mangerRtcCacheService.leave(client.getId(), rejectRtcChannelParam.getChannelId());
......@@ -169,20 +157,20 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
if (CollectionUtils.isEmpty(clientListByRtcChannelId)) {
// 移除频道信息
mangerRtcCacheService.delChannelInfo(rejectRtcChannelParam.getChannelId());
} else if (clientListByRtcChannelId.size() == 1){
} else if (clientListByRtcChannelId.size() == 1) {
// 频道内只有一个人了 -- 删除频道 并将这个人设为离开
mangerRtcCacheService.leave(Long.valueOf(clientListByRtcChannelId.get(0)), rejectRtcChannelParam.getChannelId());
mangerRtcCacheService.delChannelInfo(rejectRtcChannelParam.getChannelId());
}
return ApiResult.ok(true);
return true;
}
@Override
public ApiResult<Boolean> leave(LeaveRtcChannelParam leaveRtcChannelParam) {
public Boolean leave(LeaveRtcChannelParam leaveRtcChannelParam) {
ImClient currentClient = imClientService.getCurrentClient();
this.leave(leaveRtcChannelParam, currentClient);
return ApiResult.ok(true);
return true;
}
private void leave(LeaveRtcChannelParam leaveRtcChannelParam, ImClient currentClient) {
......@@ -206,7 +194,7 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
if (CollectionUtils.isEmpty(clientListByRtcChannelId)) {
// 移除频道信息
mangerRtcCacheService.delChannelInfo(leaveRtcChannelParam.getChannelId());
} else if (clientListByRtcChannelId.size() == 1){
} else if (clientListByRtcChannelId.size() == 1) {
// 频道内只有一个人了 -- 删除频道 并将这个人设为离开
mangerRtcCacheService.leave(Long.valueOf(clientListByRtcChannelId.get(0)), leaveRtcChannelParam.getChannelId());
mangerRtcCacheService.delChannelInfo(leaveRtcChannelParam.getChannelId());
......@@ -214,7 +202,7 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
}
@Override
public ApiResult<Boolean> sdpForward(SdpForwardParam sdpForwardParam) {
public Boolean sdpForward(SdpForwardParam sdpForwardParam) {
ImClient client = imClientService.getCurrentClient();
Long rtcChannelId = SnowflakeUtil.getId();
......@@ -251,11 +239,11 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
}
return ApiResult.ok(true);
return true;
}
@Override
public ApiResult<Boolean> candidateForward(CandidateForwardParam candidateForwardParam) {
public Boolean candidateForward(CandidateForwardParam candidateForwardParam) {
ImClient client = imClientService.getCurrentClient();
Long rtcChannelId = SnowflakeUtil.getId();
......@@ -291,7 +279,7 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
wsRtcWrite.candidateForward(rtcCandidateForwardResponse, Long.valueOf(toClientId));
}
return ApiResult.ok(true);
return true;
}
......
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