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
0d15086b
Commit
0d15086b
authored
Apr 14, 2022
by
Future
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
多人音视频新增接口
parent
17a61960
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
64 additions
and
0 deletions
+64
-0
core/src/main/java/com/wecloud/im/action/MultiMeetAction.java
+7
-0
core/src/main/java/com/wecloud/im/controller/ImMultiMeetController.java
+7
-0
core/src/main/java/com/wecloud/multimeet/service/MultiMeetService.java
+5
-0
core/src/main/java/com/wecloud/multimeet/service/impl/MultiMeetServiceImpl.java
+45
-0
No files found.
core/src/main/java/com/wecloud/im/action/MultiMeetAction.java
View file @
0d15086b
...
...
@@ -85,4 +85,11 @@ public class MultiMeetAction {
multiMeetService
.
heartbeat
(
data
);
return
WsResponse
.
ok
();
}
@ActionMapping
(
"/isBeCalling"
)
@ApiOperation
(
value
=
"是否正在被呼叫"
,
notes
=
"是否正在被呼叫"
)
public
WsResponse
<
Map
<
String
,
Boolean
>>
isBeCalling
()
{
multiMeetService
.
isBeCalling
();
return
WsResponse
.
ok
();
}
}
core/src/main/java/com/wecloud/im/controller/ImMultiMeetController.java
View file @
0d15086b
...
...
@@ -89,5 +89,12 @@ public class ImMultiMeetController extends BaseController {
return
ApiResult
.
ok
();
}
@PostMapping
(
"/isBeCalling"
)
@ApiOperation
(
value
=
"是否正在被呼叫"
,
notes
=
"是否正在被呼叫"
)
public
ApiResult
<
Boolean
>
isBeCalling
()
{
multiMeetService
.
isBeCalling
();
return
ApiResult
.
ok
();
}
}
core/src/main/java/com/wecloud/multimeet/service/MultiMeetService.java
View file @
0d15086b
...
...
@@ -52,6 +52,11 @@ public interface MultiMeetService {
void
heartbeat
(
HeartbeatMultiMeetParam
param
);
/**
* 是否正在被呼叫
*/
void
isBeCalling
();
/**
* 呼叫超时逻辑处理
*/
void
callingTimeout
();
...
...
core/src/main/java/com/wecloud/multimeet/service/impl/MultiMeetServiceImpl.java
View file @
0d15086b
...
...
@@ -249,6 +249,13 @@ public class MultiMeetServiceImpl implements MultiMeetService {
.
in
(
ImMultiRtcRoomMember:
:
getState
,
Lists
.
newArrayList
(
MultiRtcMemberStateEnum
.
ANSWERED
.
getCode
(),
MultiRtcMemberStateEnum
.
CALLING
.
getCode
()))
.
ne
(
ImMultiRtcRoomMember:
:
getClientId
,
currentClient
.
getClientId
())
);
if
(
CollectionUtils
.
isEmpty
(
rtcRoomMemberList
))
{
// 房间中无已接听人员,将呼叫中的成员置为“未接听”
imMultiRtcRoomMemberService
.
update
(
new
UpdateWrapper
<
ImMultiRtcRoomMember
>().
lambda
()
.
eq
(
ImMultiRtcRoomMember:
:
getRoomId
,
param
.
getRoomId
())
.
eq
(
ImMultiRtcRoomMember:
:
getState
,
MultiRtcMemberStateEnum
.
CALLING
.
getCode
())
.
set
(
ImMultiRtcRoomMember:
:
getState
,
MultiRtcMemberStateEnum
.
NOT_ANSWERED
.
getCode
()));
}
for
(
ImMultiRtcRoomMember
imMultiRtcRoomMember
:
rtcRoomMemberList
)
{
// ws向接收方发送通知
MultiMeetLeaveResponse
multiMeetLeaveResponse
=
new
MultiMeetLeaveResponse
();
...
...
@@ -282,6 +289,44 @@ public class MultiMeetServiceImpl implements MultiMeetService {
}
@Override
public
void
isBeCalling
()
{
ImClient
currentClient
=
imClientService
.
getCurrentClient
();
// 查询当前用户是否被呼叫
List
<
ImMultiRtcRoomMember
>
roomMembers
=
imMultiRtcRoomMemberService
.
list
(
new
QueryWrapper
<
ImMultiRtcRoomMember
>().
lambda
()
.
lt
(
ImMultiRtcRoomMember:
:
getClientId
,
currentClient
.
getClientId
())
.
eq
(
ImMultiRtcRoomMember:
:
getState
,
MultiRtcMemberStateEnum
.
CALLING
.
getCode
()));
if
(
CollectionUtils
.
isNotEmpty
(
roomMembers
))
{
ImMultiRtcRoom
room
=
imMultiRtcRoomService
.
getCachedMultiRtcRoom
(
currentClient
.
getFkAppid
(),
roomMembers
.
get
(
0
).
getRoomId
());
if
(
room
==
null
)
{
return
;
}
List
<
ImMultiRtcRoomMember
>
answeredMembers
=
imMultiRtcRoomMemberService
.
list
(
new
QueryWrapper
<
ImMultiRtcRoomMember
>().
lambda
()
.
lt
(
ImMultiRtcRoomMember:
:
getClientId
,
currentClient
.
getClientId
())
.
in
(
ImMultiRtcRoomMember:
:
getState
,
Lists
.
newArrayList
(
MultiRtcMemberStateEnum
.
ANSWERED
.
getCode
(),
MultiRtcMemberStateEnum
.
ANSWERED
.
getCode
())));
List
<
RoomMemberDto
>
members
=
Lists
.
newArrayList
();
if
(
CollectionUtils
.
isNotEmpty
(
answeredMembers
))
{
for
(
ImMultiRtcRoomMember
answeredMember
:
answeredMembers
)
{
RoomMemberDto
memberDto
=
new
RoomMemberDto
();
memberDto
.
setFkClientId
(
answeredMember
.
getFkClientId
());
memberDto
.
setClientId
(
answeredMember
.
getClientId
());
memberDto
.
setState
(
answeredMember
.
getState
());
members
.
add
(
memberDto
);
}
}
// ws向接收方发送通知
MultiMeetInviteResponse
multiMeetInviteResponse
=
new
MultiMeetInviteResponse
();
multiMeetInviteResponse
.
setRoomId
(
roomMembers
.
get
(
0
).
getRoomId
());
multiMeetInviteResponse
.
setClientId
(
currentClient
.
getClientId
());
multiMeetInviteResponse
.
setTimestamp
(
System
.
currentTimeMillis
());
multiMeetInviteResponse
.
setMemberDtoList
(
members
);
wsMultiMeetWrite
.
invite
(
multiMeetInviteResponse
,
roomMembers
.
get
(
0
).
getFkClientId
());
}
}
@Override
public
void
callingTimeout
()
{
// 60 秒之前的时间
Date
beforeTime
=
DateUtils
.
addSeconds
(
new
Date
(),
-
60
);
...
...
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