Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wecloud_im_server
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hewei
wecloud_im_server
Commits
45ba90b0
Commit
45ba90b0
authored
Apr 08, 2022
by
罗长华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、修复返回null消息的bug
2、action请求返回reqId 3、参数名统一为data 删除requestParam
parent
89a22df1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
141 additions
and
124 deletions
+141
-124
core/src/main/java/com/wecloud/dispatch/general/GeneralMessageHandler.java
+14
-19
core/src/main/java/com/wecloud/dispatch/util/ActionRequestHolder.java
+4
-0
core/src/main/java/com/wecloud/im/action/BlacklistAction.java
+7
-12
core/src/main/java/com/wecloud/im/action/ClientAction.java
+19
-20
core/src/main/java/com/wecloud/im/action/ConversationAction.java
+0
-0
core/src/main/java/com/wecloud/im/action/ConversationMembersAction.java
+8
-7
core/src/main/java/com/wecloud/im/action/InboxAction.java
+18
-16
core/src/main/java/com/wecloud/im/action/MultiMeetAction.java
+33
-24
core/src/main/java/com/wecloud/im/action/RtcAction.java
+28
-20
core/src/main/java/com/wecloud/im/ws/model/WsResponse.java
+10
-6
No files found.
core/src/main/java/com/wecloud/dispatch/general/GeneralMessageHandler.java
View file @
45ba90b0
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
);
}
}
channelSender
.
sendMsgLocal
((
NioSocketChannel
)
am
.
getSenderChannel
(),
res
);
if
(
res
!=
null
)
{
channelSender
.
sendMsgLocal
((
NioSocketChannel
)
am
.
getSenderChannel
(),
res
);
}
}
}
core/src/main/java/com/wecloud/dispatch/util/ActionRequestHolder.java
View file @
45ba90b0
...
...
@@ -19,6 +19,10 @@ public class ActionRequestHolder {
return
THREAD_LOCAL
.
get
();
}
public
static
String
getReqId
()
{
return
getActionRequest
().
getData
().
getReqId
();
}
/**
* 设置请求信息到当前线程中
*
...
...
core/src/main/java/com/wecloud/im/action/BlacklistAction.java
View file @
45ba90b0
...
...
@@ -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
);
}
}
core/src/main/java/com/wecloud/im/action/ClientAction.java
View file @
45ba90b0
...
...
@@ -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
());
Array
List
<
ImOnlineStatusVo
>
imOnlineStatusVos
=
new
ArrayList
<>();
for
(
String
clientId
:
getOnlineStatusParam
.
getClientIds
())
{
List
<
ImOnlineStatusVo
>
imOnlineStatusVos
=
new
ArrayList
<>();
for
(
String
clientId
:
data
.
getClientIds
())
{
ImOnlineStatusVo
imOnlineStatusVo
=
new
ImOnlineStatusVo
();
// todo 需要改成批量
...
...
core/src/main/java/com/wecloud/im/action/ConversationAction.java
View file @
45ba90b0
This diff is collapsed.
Click to expand it.
core/src/main/java/com/wecloud/im/action/ConversationMembersAction.java
View file @
45ba90b0
...
...
@@ -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
));
}
}
core/src/main/java/com/wecloud/im/action/InboxAction.java
View file @
45ba90b0
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
));
}
}
core/src/main/java/com/wecloud/im/action/MultiMeetAction.java
View file @
45ba90b0
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
();
}
}
core/src/main/java/com/wecloud/im/action/RtcAction.java
View file @
45ba90b0
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
();
}
}
core/src/main/java/com/wecloud/im/ws/model/WsResponse.java
View file @
45ba90b0
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
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment