Commit 45ba90b0 by 罗长华

1、修复返回null消息的bug

2、action请求返回reqId
3、参数名统一为data 删除requestParam
parent 89a22df1
package com.wecloud.dispatch.general;
import com.wecloud.dispatch.common.BaseRequest;
import com.wecloud.dispatch.extend.ActionMessage;
import com.wecloud.dispatch.extend.ArgumentBox;
import com.wecloud.dispatch.extend.impl.DefaultArgumentBox;
import com.wecloud.dispatch.general.config.GeneralActionDispatcher;
import com.wecloud.dispatch.general.extend.ActionMessageResolver;
import com.wecloud.im.exception.VerificationCodeException;
import com.wecloud.im.ws.model.WsResponse;
import com.wecloud.im.ws.sender.ChannelSender;
import com.wecloud.utils.JsonUtils;
import io.geekidea.springbootplus.framework.common.api.ApiCode;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.exception.BusinessException;
import io.geekidea.springbootplus.framework.common.exception.DaoException;
import io.geekidea.springbootplus.framework.common.exception.SpringBootPlusException;
......@@ -20,14 +8,20 @@ import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.socket.nio.NioSocketChannel;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.lang.Nullable;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerExecutionChain;
import org.springframework.web.servlet.ModelAndView;
import com.wecloud.dispatch.common.BaseRequest;
import com.wecloud.dispatch.extend.ActionMessage;
import com.wecloud.dispatch.extend.ArgumentBox;
import com.wecloud.dispatch.extend.impl.DefaultArgumentBox;
import com.wecloud.dispatch.general.config.GeneralActionDispatcher;
import com.wecloud.dispatch.general.extend.ActionMessageResolver;
import com.wecloud.im.exception.VerificationCodeException;
import com.wecloud.im.ws.model.WsResponse;
import com.wecloud.im.ws.sender.ChannelSender;
import com.wecloud.utils.JsonUtils;
/**
......@@ -100,7 +94,8 @@ public class GeneralMessageHandler {
res = WsResponse.result(ApiCode.SYSTEM_EXCEPTION);
}
}
if (res != null) {
channelSender.sendMsgLocal((NioSocketChannel) am.getSenderChannel(), res);
}
}
}
......@@ -19,6 +19,10 @@ public class ActionRequestHolder {
return THREAD_LOCAL.get();
}
public static String getReqId() {
return getActionRequest().getData().getReqId();
}
/**
* 设置请求信息到当前线程中
*
......
......@@ -4,18 +4,13 @@ import io.geekidea.springbootplus.framework.core.pagination.Paging;
import io.geekidea.springbootplus.framework.log.annotation.OperationLog;
import io.geekidea.springbootplus.framework.log.enums.OperationLogType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestParam;
import com.wecloud.dispatch.annotation.ActionMapping;
import com.wecloud.im.param.ImClientBlacklistPageParam;
......@@ -23,7 +18,6 @@ import com.wecloud.im.param.ImClientBlacklistQueryVo;
import com.wecloud.im.param.add.ImClientBlacklistUpdate;
import com.wecloud.im.service.ImClientBlacklistService;
import com.wecloud.im.ws.model.WsResponse;
import com.wecloud.im.ws.model.request.PushVO;
/**
* ws 黑名单
......@@ -45,8 +39,8 @@ public class BlacklistAction {
*/
@ActionMapping("/add")
@ApiOperation(value = "拉入黑名单")
public WsResponse<Boolean> addImClientBlacklist(@RequestParam(value = "data") ImClientBlacklistUpdate clientBlacklistUpdate) {
imClientBlacklistService.addImClientBlacklist(clientBlacklistUpdate);
public WsResponse<Map<String, Boolean>> addImClientBlacklist(ImClientBlacklistUpdate data) {
imClientBlacklistService.addImClientBlacklist(data);
return WsResponse.ok();
}
......@@ -56,20 +50,21 @@ public class BlacklistAction {
*/
@ActionMapping("/delete")
@ApiOperation(value = "移出黑名单")
public WsResponse<Boolean> deleteImClientBlacklist(@RequestParam(value = "data") ImClientBlacklistUpdate clientBlacklistUpdate) {
imClientBlacklistService.removeImClientBlacklist(clientBlacklistUpdate);
public WsResponse<Map<String, Boolean>> deleteImClientBlacklist(ImClientBlacklistUpdate data) {
imClientBlacklistService.removeImClientBlacklist(data);
return WsResponse.ok();
}
/**
* 黑名单分页列表
* @return
*/
@ActionMapping("/getPageList")
@OperationLog(name = "黑名单分页列表", type = OperationLogType.PAGE)
@ApiOperation(value = "黑名单分页列表")
public WsResponse<Paging<ImClientBlacklistQueryVo>> getImClientBlacklistPageList(@RequestParam(value = "data") ImClientBlacklistPageParam clientBlacklistUpdate) {
public WsResponse<Paging<ImClientBlacklistQueryVo>> getImClientBlacklistPageList(ImClientBlacklistPageParam data) {
Paging<ImClientBlacklistQueryVo> blacklist =
imClientBlacklistService.getImClientBlacklistPageList(clientBlacklistUpdate);
imClientBlacklistService.getImClientBlacklistPageList(data);
return WsResponse.ok(blacklist);
}
}
......@@ -9,7 +9,6 @@ import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestParam;
import com.alibaba.fastjson.JSON;
import com.wecloud.dispatch.annotation.ActionMapping;
......@@ -69,8 +68,8 @@ public class ClientAction {
@ActionMapping("/infoList")
@ApiOperation(value = "根据id获取Client的头像昵称")
public WsResponse<List<GetInfoListVo>> getInfoList(@RequestParam(value = "data") GetClientInfoParam getClientInfoParam) throws Exception {
return WsResponse.ok(imClientService.getInfoList(getClientInfoParam));
public WsResponse<List<GetInfoListVo>> getInfoList(GetClientInfoParam data) throws Exception {
return WsResponse.ok(imClientService.getInfoList(data));
}
/**
......@@ -78,34 +77,34 @@ public class ClientAction {
*/
@ActionMapping("/clientInfo")
@ApiOperation(value = "查询用户信息 用户可能是好友、陌生人、被拉黑名单的人")
public WsResponse<ClientInfoVo> getClientInfo(@RequestParam(value = "data") ClientInfoParam clientInfoParam) {
ClientInfoVo clientInfoVo = imClientService.getClientInfo(clientInfoParam);
public WsResponse<ClientInfoVo> getClientInfo(ClientInfoParam data) {
ClientInfoVo clientInfoVo = imClientService.getClientInfo(data);
return WsResponse.ok(clientInfoVo);
}
@ActionMapping("/updateHeadAndNickname")
@ApiOperation(value = "添加或修改头像和昵称")
public WsResponse<Boolean> updateHeadAndNickname(@RequestParam(value = "data") ImClientHeadPortraitAndNicknameUpdate clientHeadPortraitAndNicknameUpdate) throws Exception {
log.info("添加或修改头像和昵称入参 {}", JSON.toJSONString(clientHeadPortraitAndNicknameUpdate));
boolean flag = imClientService.updateHeadAndNickname(clientHeadPortraitAndNicknameUpdate);
public WsResponse<Boolean> updateHeadAndNickname(ImClientHeadPortraitAndNicknameUpdate data) throws Exception {
log.info("添加或修改头像和昵称入参 {}", JSON.toJSONString(data));
boolean flag = imClientService.updateHeadAndNickname(data);
return WsResponse.ok(flag);
}
@ActionMapping("/updateHeadPortrait")
@ApiOperation(value = "添加或修改头像")
public WsResponse<Boolean> updateHeadPortrait(@RequestParam(value = "data") ImClientHeadPortraitAdd clientHeadPortraitAdd) throws Exception {
log.info("添加或修改头像入参 {}", JSON.toJSONString(clientHeadPortraitAdd));
boolean flag = imClientService.updateHeadPortrait(clientHeadPortraitAdd);
public WsResponse<Boolean> updateHeadPortrait(ImClientHeadPortraitAdd data) throws Exception {
log.info("添加或修改头像入参 {}", JSON.toJSONString(data));
boolean flag = imClientService.updateHeadPortrait(data);
return WsResponse.ok(flag);
}
@ActionMapping("/updateNickname")
@ApiOperation(value = "添加或修改主昵称")
public WsResponse<Boolean> updateNickname(@RequestParam(value = "data") ImClientNicknameAdd clientNicknameAdd) throws Exception {
log.info("添加或修改主昵称入参 {}", JSON.toJSONString(clientNicknameAdd));
boolean flag = imClientService.updateNickname(clientNicknameAdd);
public WsResponse<Boolean> updateNickname(ImClientNicknameAdd data) throws Exception {
log.info("添加或修改主昵称入参 {}", JSON.toJSONString(data));
boolean flag = imClientService.updateNickname(data);
return WsResponse.ok(flag);
}
......@@ -118,9 +117,9 @@ public class ClientAction {
*/
@ActionMapping("/logout")
@ApiOperation(value = "退出登陆 清除推送token等")
public WsResponse<Boolean> logout(@RequestParam(value = "data") LogoutParam param) {
log.info("退出登陆入参 {}", JSON.toJSONString(param));
boolean flag = imClientService.logout(param);
public WsResponse<Boolean> logout(LogoutParam data) {
log.info("退出登陆入参 {}", JSON.toJSONString(data));
boolean flag = imClientService.logout(data);
return WsResponse.ok(flag);
}
......@@ -132,13 +131,13 @@ public class ClientAction {
@ActionMapping("/onlineStatus")
@ApiOperation(value = "获取用户在线状态(批量)")
public WsResponse<List<ImOnlineStatusVo>> getOnlineStatus(
@RequestParam(value = "data") GetOnlineStatusParam getOnlineStatusParam) {
GetOnlineStatusParam data) {
// shiro线程中获取当前token
ImClient imClient = contextService.getImClientIfNotNullOrThrow();
ImApplication imApplication = contextService.getImApplicationIfNotNullOrThrow(imClient.getFkAppid());
ArrayList<ImOnlineStatusVo> imOnlineStatusVos = new ArrayList<>();
for (String clientId : getOnlineStatusParam.getClientIds()) {
List<ImOnlineStatusVo> imOnlineStatusVos = new ArrayList<>();
for (String clientId : data.getClientIds()) {
ImOnlineStatusVo imOnlineStatusVo = new ImOnlineStatusVo();
// todo 需要改成批量
......
package com.wecloud.im.action;
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 java.util.List;
import java.util.Map;
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.RequestParam;
import com.alibaba.fastjson.JSON;
import com.wecloud.dispatch.annotation.ActionMapping;
......@@ -54,9 +53,9 @@ public class ConversationAction {
*/
@ActionMapping("/saveOrUpdateName")
@ApiOperation(value = "添加或修改会话名称", notes = "权限:目前只有创建者有权限操作")
public WsResponse<Boolean> saveOrUpdateName(@RequestParam(value = "data") ImConversationNameUpdate conversationNameUpdate) {
log.info("添加或修改会话名称入参 {}", JSON.toJSONString(conversationNameUpdate));
imConversationService.saveOrUpdateName(conversationNameUpdate);
public WsResponse<Map<String, Boolean>> saveOrUpdateName(ImConversationNameUpdate data) {
log.info("添加或修改会话名称入参 {}", JSON.toJSONString(data));
imConversationService.saveOrUpdateName(data);
return WsResponse.ok();
}
......@@ -66,8 +65,8 @@ public class ConversationAction {
*/
@ActionMapping("/saveOrUpdateAttr")
@ApiOperation(value = "添加或修改会话拓展字段", notes = "权限:所有client都权限操作")
public WsResponse<Boolean> saveOrUpdateAttr(@RequestParam(value = "data") ImConversationAttrUpdate imConversationAttrUpdate) {
imConversationService.saveOrUpdateAttr(imConversationAttrUpdate);
public WsResponse<Map<String, Boolean>> saveOrUpdateAttr(ImConversationAttrUpdate data) {
imConversationService.saveOrUpdateAttr(data);
return WsResponse.ok();
}
......@@ -77,9 +76,9 @@ public class ConversationAction {
*/
@ActionMapping("/leave")
@ApiOperation(value = "client退出会话", notes = "若是创建者退出,[创建者]权限将会转移给按加入会话时间排序的下一个client")
public WsResponse<Boolean> leaveConversation(@RequestParam(value = "data") ImClientLeaveConversation imClientToConversation) {
log.info("client退出会话入参 {}", JSON.toJSONString(imClientToConversation));
imConversationService.leaveConversation(imClientToConversation);
public WsResponse<Map<String, Boolean>> leaveConversation(ImClientLeaveConversation data) {
log.info("client退出会话入参 {}", JSON.toJSONString(data));
imConversationService.leaveConversation(data);
return WsResponse.ok();
}
......@@ -89,9 +88,9 @@ public class ConversationAction {
*/
@ActionMapping("/delClient")
@ApiOperation(value = "将client从会话移除", notes = "权限:目前只有群主有权限操作")
public WsResponse<Boolean> delClientToConversation(@RequestParam(value = "data") ImClientToConversation imClientToConversation) throws Exception {
log.info("将client从会话移除入参 {}", JSON.toJSONString(imClientToConversation));
return WsResponse.ok(imConversationService.delClientToConversation(imClientToConversation));
public WsResponse<Boolean> delClientToConversation(ImClientToConversation data) throws Exception {
log.info("将client从会话移除入参 {}", JSON.toJSONString(data));
return WsResponse.ok(imConversationService.delClientToConversation(data));
}
/**
......@@ -99,9 +98,9 @@ public class ConversationAction {
*/
@ActionMapping("/disband")
@ApiOperation(value = "解散群聊", notes = "权限:目前只有群主有权限操作")
public WsResponse<Boolean> disband(@RequestParam(value = "data") DisbandConversationParam param) throws Exception {
log.info("解散群聊入参 {}", JSON.toJSONString(param));
imConversationService.disband(param);
public WsResponse<Map<String, Boolean>> disband(DisbandConversationParam data) throws Exception {
log.info("解散群聊入参 {}", JSON.toJSONString(data));
imConversationService.disband(data);
return WsResponse.ok();
}
......@@ -111,9 +110,9 @@ public class ConversationAction {
*/
@ActionMapping("/addClient")
@ApiOperation(value = "将用户添加进会话", notes = "权限:会话中所有client都有权限操作")
public WsResponse<Boolean> addClientToConversation(@RequestParam(value = "data") ImClientToConversation imClientToConversation) throws Exception {
log.info("将用户添加进会话入参 {}", JSON.toJSONString(imClientToConversation));
imConversationService.addClientToConversation(imClientToConversation);
public WsResponse<Map<String, Boolean>> addClientToConversation(ImClientToConversation data) throws Exception {
log.info("将用户添加进会话入参 {}", JSON.toJSONString(data));
imConversationService.addClientToConversation(data);
return WsResponse.ok();
}
......@@ -122,9 +121,9 @@ public class ConversationAction {
*/
@ActionMapping("/create")
@ApiOperation(value = "创建会话", notes = "后台可配置:两个客户端如果已经创建过会话,是否重复创建会话")
public WsResponse<ImConversationCreateVo> createImConversation(@RequestParam(value = "data") ImConversationCreate imConversationCreate) throws Exception {
log.info("创建会话入参 {}", JSON.toJSONString(imConversationCreate));
ImConversationCreateVo vo = imConversationService.createImConversation(imConversationCreate);
public WsResponse<ImConversationCreateVo> createImConversation(ImConversationCreate data) throws Exception {
log.info("创建会话入参 {}", JSON.toJSONString(data));
ImConversationCreateVo vo = imConversationService.createImConversation(data);
return WsResponse.ok(vo);
}
......@@ -133,9 +132,9 @@ public class ConversationAction {
*/
@ActionMapping("/transferOwner")
@ApiOperation(value = "群主转让", notes = "权限:目前只有群主有权限操作")
public WsResponse<Boolean> transferOwner(@RequestParam(value = "data") TransferOwnerParam param) {
log.info("群主转让入参 {}", JSON.toJSONString(param));
Boolean result = imConversationService.transferOwner(param);
public WsResponse<Boolean> transferOwner(TransferOwnerParam data) {
log.info("群主转让入参 {}", JSON.toJSONString(data));
Boolean result = imConversationService.transferOwner(data);
return WsResponse.ok(result);
}
......@@ -144,12 +143,12 @@ public class ConversationAction {
*/
@ActionMapping("/setAdmins")
@ApiOperation(value = "设置群管理员", notes = "权限:目前只有群主有权限操作")
public WsResponse<Boolean> setAdmins(@RequestParam(value = "data") @Validated SetAdminsParam param) {
log.info("设置群管理员入参 {}", JSON.toJSONString(param));
if (CollectionUtils.isEmpty(param.getClientIds())) {
public WsResponse<Boolean> setAdmins(@Validated SetAdminsParam data) {
log.info("设置群管理员入参 {}", JSON.toJSONString(data));
if (CollectionUtils.isEmpty(data.getClientIds())) {
return WsResponse.fail(ApiCode.PARAMETER_EXCEPTION, null);
}
Boolean result = imConversationService.setAdmins(param);
Boolean result = imConversationService.setAdmins(data);
return WsResponse.ok(result);
}
......@@ -158,9 +157,9 @@ public class ConversationAction {
*/
@ActionMapping("/mutedGroup")
@ApiOperation(value = "群禁言、取消群禁言", notes = "权限:群主和管理员有权限操作")
public WsResponse<Boolean> mutedGroup(@RequestParam(value = "data") @Validated MutedGroupParam param) {
log.info("群禁言、取消群禁言入参 {}", JSON.toJSONString(param));
Boolean result = imConversationService.mutedGroup(param);
public WsResponse<Boolean> mutedGroup(@Validated MutedGroupParam data) {
log.info("群禁言、取消群禁言入参 {}", JSON.toJSONString(data));
Boolean result = imConversationService.mutedGroup(data);
return WsResponse.ok(result);
}
......@@ -169,12 +168,12 @@ public class ConversationAction {
*/
@ActionMapping("/mutedGroupMember")
@ApiOperation(value = "选择禁言", notes = "权限:群主和管理员有权限操作")
public WsResponse<Boolean> mutedGroupMember(@RequestParam(value = "data") @Validated MutedGroupMemberParam param) {
log.info("选择禁言入参 {}", JSON.toJSONString(param));
if (CollectionUtils.isEmpty(param.getClientIds())) {
public WsResponse<Boolean> mutedGroupMember(@Validated MutedGroupMemberParam data) {
log.info("选择禁言入参 {}", JSON.toJSONString(data));
if (CollectionUtils.isEmpty(data.getClientIds())) {
return WsResponse.fail(ApiCode.PARAMETER_EXCEPTION, null);
}
Boolean result = imConversationService.mutedGroupMember(param);
Boolean result = imConversationService.mutedGroupMember(data);
return WsResponse.ok(result);
}
......@@ -193,8 +192,8 @@ public class ConversationAction {
*/
@ActionMapping("/info")
@ApiOperation(value = "根据会话id查询指定会话信息", notes = "根据会话id查询指定会话信息 与每个会话的未读条数")
public WsResponse<ConversationVo> info(@RequestParam(value = "data") @Validated ImConversationQueryParam param) throws Exception {
ConversationVo conversationVo = imConversationService.infoImConversationAndMsgCount(param);
public WsResponse<ConversationVo> info(@Validated ImConversationQueryParam data) throws Exception {
ConversationVo conversationVo = imConversationService.infoImConversationAndMsgCount(data);
return WsResponse.ok(conversationVo);
}
......@@ -203,9 +202,9 @@ public class ConversationAction {
*/
@ActionMapping("/displayUpdate")
@ApiOperation(value = "批量修改单向隐藏或显示会话", notes = "拉取会话列表不展示已隐藏状态的会话,云端聊天记录不删除;假设有A和B两个用户,A删会话,B还能发; 如果B发了消息,A这边要重新把会话显示出来,并能显示之前的聊天记录")
public ApiResult<Boolean> updateDisplayConversation(@RequestParam(value = "data") ImConversationDisplayUpdate imConversationDisplayUpdate) throws Exception {
public WsResponse<Map<String, Boolean>> updateDisplayConversation(ImConversationDisplayUpdate data) throws Exception {
imConversationService.updateDisplayConversation(imConversationDisplayUpdate);
return ApiResult.result(true);
imConversationService.updateDisplayConversation(data);
return WsResponse.ok();
}
}
......@@ -5,11 +5,11 @@ import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestParam;
import com.wecloud.dispatch.annotation.ActionMapping;
import com.wecloud.im.param.ImConvMemeClientRemarkNameParam;
......@@ -34,11 +34,12 @@ public class ConversationMembersAction {
/**
* 添加或修改会话成员备注
* @return
*/
@ActionMapping("/updateClientRemarkName")
@ApiOperation(value = "添加或修改会话成员备注", notes = "权限:目前只有client成员自己有权限操作")
public WsResponse<Boolean> saveOrUpdateClientRemarkName(@RequestParam(value = "data") ImConvMemeClientRemarkNameParam convMemeClientRemarkNameParam) throws Exception {
imConversationMembersService.saveOrUpdateClientRemarkName(convMemeClientRemarkNameParam);
public WsResponse<Map<String, Boolean>> saveOrUpdateClientRemarkName(ImConvMemeClientRemarkNameParam data) throws Exception {
imConversationMembersService.saveOrUpdateClientRemarkName(data);
return WsResponse.ok();
}
......@@ -48,8 +49,8 @@ public class ConversationMembersAction {
*/
@ActionMapping("/updateAttr")
@ApiOperation(value = "添加或修改会话成员拓展字段", notes = "权限:目前只有client成员自己有权限操作")
public WsResponse<Boolean> saveOrUpdateAttr(@RequestParam(value = "data") ImConversationMemAttrUpdate conversationMemAttrUpdate) throws Exception {
boolean r = imConversationMembersService.saveOrUpdateAttr(conversationMemAttrUpdate);
public WsResponse<Map<String, Boolean>> saveOrUpdateAttr(ImConversationMemAttrUpdate data) throws Exception {
boolean r = imConversationMembersService.saveOrUpdateAttr(data);
if (r) {
return WsResponse.ok();
} else {
......@@ -63,7 +64,7 @@ public class ConversationMembersAction {
*/
@ActionMapping("/getList")
@ApiOperation(value = "获取会话中成员表列表")
public WsResponse<List<ConversationMemberVo>> getImConversationMembersList(@RequestParam(value = "data") @Validated ListConversationMembersParam listConversationMembersParam) throws Exception {
return WsResponse.ok(imConversationMembersService.getImConversationMembersList(listConversationMembersParam));
public WsResponse<List<ConversationMemberVo>> getImConversationMembersList(@Validated ListConversationMembersParam data) throws Exception {
return WsResponse.ok(imConversationMembersService.getImConversationMembersList(data));
}
}
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.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import java.util.Map;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
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;
/**
* @Author luozh
......@@ -36,8 +38,8 @@ public class InboxAction {
*/
@ActionMapping("/msgReceivedUpdate")
@ApiOperation(value = "消息修改为已接收状态")
public WsResponse<Boolean> updateImMsgReceived(@RequestParam(value = "data") @Validated ImMsgReceivedStatusUpdate imMsgReceivedUpdate) throws Exception {
imInboxService.updateImMsgReceived(imMsgReceivedUpdate);
public WsResponse<Map<String, Boolean>> updateImMsgReceived(@Validated ImMsgReceivedStatusUpdate data) throws Exception {
imInboxService.updateImMsgReceived(data);
return WsResponse.ok();
}
......@@ -46,11 +48,11 @@ public class InboxAction {
*/
@ActionMapping("/msgReadUpdate")
@ApiOperation(value = "消息修改为已读状态")
public WsResponse<Boolean> updateInMsgReadUpdate(@RequestParam(value = "data") MsgReadStatusUpdateParam msgReadStatusUpdateParam) throws Exception {
if (CollectionUtils.isEmpty(msgReadStatusUpdateParam.getMsgIds())) {
public WsResponse<Map<String, Boolean>> updateInMsgReadUpdate(MsgReadStatusUpdateParam data) throws Exception {
if (CollectionUtils.isEmpty(data.getMsgIds())) {
return WsResponse.fail(ApiCode.PARAMETER_EXCEPTION);
}
imInboxService.updateImMsgRead(msgReadStatusUpdateParam);
imInboxService.updateImMsgRead(data);
return WsResponse.ok();
}
......@@ -59,10 +61,10 @@ public class InboxAction {
*/
@ActionMapping("/updateMsgReadStatusByConversation")
@ApiOperation(value = "会话消息修改为已读状态")
public WsResponse<Boolean> updateMsgReadStatusByConversation(@RequestParam(value = "data") UpdateMsgReadStatusByConversationParam param) throws Exception {
if (param.getConversationId() == null) {
public WsResponse<Boolean> updateMsgReadStatusByConversation(UpdateMsgReadStatusByConversationParam data) throws Exception {
if (data.getConversationId() == null) {
return WsResponse.fail(ApiCode.PARAMETER_EXCEPTION);
}
return WsResponse.ok(imInboxService.updateMsgReadStatusByConversation(param));
return WsResponse.ok(imInboxService.updateMsgReadStatusByConversation(data));
}
}
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 java.util.Map;
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.RequestParam;
import com.alibaba.fastjson.JSON;
import com.wecloud.dispatch.annotation.ActionMapping;
import com.wecloud.im.param.AgreeToMultiMeetParam;
import com.wecloud.im.param.HeartbeatMultiMeetParam;
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.ws.model.WsResponse;
import com.wecloud.multimeet.service.MultiMeetService;
@Slf4j
@Component
......@@ -26,54 +34,55 @@ public class MultiMeetAction {
/**
* 邀请客户端加入
* @return
*/
@ActionMapping("/invite")
@ApiOperation(value = "邀请加入多人音视频会议", notes = "邀请加入多人音视频会议")
public WsResponse<Boolean> invite(@RequestParam(value = "data") @Validated InviteToMultiMeetParam param) {
log.info("邀请加入多人音视频会议入参 {}", JSON.toJSONString(param));
if (CollectionUtils.isEmpty(param.getToClients())) {
public WsResponse<Map<String, Boolean>> invite(@Validated InviteToMultiMeetParam data) {
log.info("邀请加入多人音视频会议入参 {}", JSON.toJSONString(data));
if (CollectionUtils.isEmpty(data.getToClients())) {
return WsResponse.fail(ApiCode.PARAMETER_EXCEPTION);
}
multiMeetService.invite(param);
multiMeetService.invite(data);
return WsResponse.ok();
}
@ActionMapping("/reject")
@ApiOperation(value = "拒接进入会议", notes = "拒接进入会议")
public WsResponse<Boolean> reject(@RequestParam(value = "data") RejectToMultiMeetParam param) {
log.info("拒绝加入多人音视频会议入参 {}", JSON.toJSONString(param));
multiMeetService.reject(param);
public WsResponse<Map<String, Boolean>> reject(RejectToMultiMeetParam data) {
log.info("拒绝加入多人音视频会议入参 {}", JSON.toJSONString(data));
multiMeetService.reject(data);
return WsResponse.ok();
}
@ActionMapping("/agree")
@ApiOperation(value = "同意进入会议", notes = "同意进入会议")
public WsResponse<Boolean> agree(@RequestParam(value = "data") AgreeToMultiMeetParam param) {
log.info("同意进入多人音视频会议入参 {}", JSON.toJSONString(param));
multiMeetService.agree(param);
public WsResponse<Map<String, Boolean>> agree(AgreeToMultiMeetParam data) {
log.info("同意进入多人音视频会议入参 {}", JSON.toJSONString(data));
multiMeetService.agree(data);
return WsResponse.ok();
}
@ActionMapping("/leave")
@ApiOperation(value = "主动挂断(离开会议)", notes = "主动挂断(离开会议)")
public WsResponse<Boolean> leave(@RequestParam(value = "data") LeaveFromMultiMeetParam param) {
log.info("主动挂断多人音视频会议入参 {}", JSON.toJSONString(param));
multiMeetService.leave(param);
public WsResponse<Map<String, Boolean>> leave(LeaveFromMultiMeetParam data) {
log.info("主动挂断多人音视频会议入参 {}", JSON.toJSONString(data));
multiMeetService.leave(data);
return WsResponse.ok();
}
@ActionMapping("/notAnswered")
@ApiOperation(value = "未接听", notes = "未接听")
public WsResponse<Boolean> notAnswered(@RequestParam(value = "data") NotAnsweredMultiMeetParam param) {
log.info("多人音视频会议未接听入参 {}", JSON.toJSONString(param));
multiMeetService.notAnswered(param);
public WsResponse<Map<String, Boolean>> notAnswered(NotAnsweredMultiMeetParam data) {
log.info("多人音视频会议未接听入参 {}", JSON.toJSONString(data));
multiMeetService.notAnswered(data);
return WsResponse.ok();
}
@ActionMapping("/heartbeat")
@ApiOperation(value = "发送心跳", notes = "发送心跳")
public WsResponse<Boolean> heartbeat(@RequestParam(value = "data") HeartbeatMultiMeetParam param) {
multiMeetService.heartbeat(param);
public WsResponse<Map<String, Boolean>> heartbeat(HeartbeatMultiMeetParam data) {
multiMeetService.heartbeat(data);
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 java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import com.wecloud.dispatch.annotation.ActionMapping;
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.ws.model.WsResponse;
import com.wecloud.rtc.service.RtcService;
@Slf4j
@Component
......@@ -29,46 +37,46 @@ public class RtcAction {
*/
@ActionMapping("/createAndCall")
@ApiOperation(value = "创建频道,并邀请客户端加入", notes = "创建频道,并邀请客户端加入")
public WsResponse<CreateRtcChannelResult> createAndCall(@RequestParam(value = "data") CreateRtcChannelParam createRtcChannelParam) {
if (BaseEnum.valueOf(CallTypeEnum.class, createRtcChannelParam.getCallType()) == null) {
public WsResponse<CreateRtcChannelResult> createAndCall(CreateRtcChannelParam data) {
if (BaseEnum.valueOf(CallTypeEnum.class, data.getCallType()) == null) {
return WsResponse.fail(ApiCode.PARAMETER_EXCEPTION);
}
return WsResponse.ok(rtcService.createAndCall(createRtcChannelParam));
return WsResponse.ok(rtcService.createAndCall(data));
}
@ActionMapping("/join")
@ApiOperation(value = "同意进入频道", notes = "")
public WsResponse<Boolean> join(@RequestParam(value = "data") JoinRtcChannelParam joinRtcChannelParam) {
rtcService.join(joinRtcChannelParam);
public WsResponse<Map<String, Boolean>> join(JoinRtcChannelParam data) {
rtcService.join(data);
return WsResponse.ok();
}
@ActionMapping("/reject")
@ApiOperation(value = "拒接进入频道", notes = "")
public WsResponse<Boolean> reject(@RequestParam(value = "data") RejectRtcChannelParam rejectRtcChannelParam) {
rtcService.reject(rejectRtcChannelParam);
public WsResponse<Map<String, Boolean>> reject(RejectRtcChannelParam data) {
rtcService.reject(data);
return WsResponse.ok();
}
@ActionMapping("/leave")
@ApiOperation(value = "主动挂断(离开频道)", notes = "")
public WsResponse<Boolean> leave(@RequestParam(value = "data") LeaveRtcChannelParam leaveRtcChannelParam) {
rtcService.leave(leaveRtcChannelParam);
public WsResponse<Map<String, Boolean>> leave(LeaveRtcChannelParam data) {
rtcService.leave(data);
return WsResponse.ok();
}
@ActionMapping("/sdpForward")
@ApiOperation(value = "SDP数据转发", notes = "")
public WsResponse<Boolean> sdpForward(@RequestParam(value = "data") SdpForwardParam sdpForwardParam) {
rtcService.sdpForward(sdpForwardParam);
public WsResponse<Map<String, Boolean>> sdpForward(SdpForwardParam data) {
rtcService.sdpForward(data);
return WsResponse.ok();
}
@ActionMapping("/candidateForward")
@ApiOperation(value = "candidate候选者数据转发", notes = "")
public WsResponse<Boolean> candidateForward(@RequestParam(value = "data") CandidateForwardParam candidateForwardParam) {
rtcService.candidateForward(candidateForwardParam);
public WsResponse<Map<String, Boolean>> candidateForward(CandidateForwardParam data) {
rtcService.candidateForward(data);
return WsResponse.ok();
}
}
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.config.il8n.I18nMessageUtil;
import io.geekidea.springbootplus.framework.config.il8n.LanguageEnum;
......@@ -9,6 +8,11 @@ import lombok.experimental.Accessors;
import java.io.IOException;
import java.io.Serializable;
import java.util.Collections;
import java.util.Map;
import com.wecloud.dispatch.util.ActionRequestHolder;
import com.wecloud.im.ws.enums.WsResponseCmdEnum;
/**
* @Description websocket服务端响应消息和下方消息的封装对象
......@@ -67,20 +71,20 @@ public class WsResponse<T> implements Serializable {
message = success;
}
WsResponse<T> response = new WsResponse<>();
response.setCmd(cmd).setCode(apiCode.getCode()).setMsg(message).setData(data);
response.setCmd(cmd).setCode(apiCode.getCode()).setMsg(message).setData(data).setReqId(ActionRequestHolder.getReqId());
return response;
}
public static WsResponse<Boolean> ok() {
return ok(true);
public static WsResponse<Map<String, Boolean>> ok() {
return ok(Collections.emptyMap());
}
public static <T> WsResponse<T> ok(T data) {
return result(ApiCode.SUCCESS, data);
}
public static WsResponse<Boolean> fail() {
return fail("");
public static WsResponse<Map<String, Boolean>> fail() {
return ok(Collections.emptyMap());
}
public static WsResponse<Boolean> fail(String message) {
......
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