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
f1954ef0
Commit
f1954ef0
authored
Jun 16, 2022
by
Future
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
忙线逻辑添加
parent
54533414
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
7 deletions
+12
-7
core/src/main/java/com/wecloud/rtc/service/impl/RtcServiceImpl.java
+12
-7
No files found.
core/src/main/java/com/wecloud/rtc/service/impl/RtcServiceImpl.java
View file @
f1954ef0
package
com
.
wecloud
.
rtc
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.google.common.collect.Lists
;
import
com.wecloud.im.entity.ImApplication
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImRtcRecord
;
...
...
@@ -12,6 +14,7 @@ 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.sdk.enums.RtcStateEnum
;
import
com.wecloud.im.sdk.enums.SingleRtcOperateTypeEnum
;
import
com.wecloud.im.service.ImApplicationService
;
import
com.wecloud.im.service.ImClientBlacklistService
;
...
...
@@ -95,15 +98,17 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
public
CreateRtcChannelResult
createAndCall
(
CreateRtcChannelParam
createRtcChannelParam
)
{
ImClient
currentClient
=
imClientService
.
getCurrentClient
();
Long
rtcChannelId
=
SnowflakeUtil
.
getId
();
// 判断发起方必须在线
boolean
onlineStatus
=
userStateCacheManager
.
isOnline
(
currentClient
.
getId
());
if
(!
onlineStatus
)
{
log
.
info
(
"发起方必须在线"
+
currentClient
.
getFkAppid
()
+
currentClient
.
getClientId
());
ApiResult
.
fail
();
}
ImClient
toClient
=
imClientService
.
getCacheImClient
(
currentClient
.
getFkAppid
(),
createRtcChannelParam
.
getToClient
());
if
(
toClient
==
null
)
{
ApiResult
.
fail
();
throw
new
BusinessException
(
"查无接收人信息"
);
}
ImRtcRecord
imRtcRecord
=
imRtcRecordService
.
getOne
(
new
LambdaQueryWrapper
<
ImRtcRecord
>()
.
eq
(
ImRtcRecord:
:
getFkAppid
,
currentClient
.
getFkAppid
())
.
in
(
ImRtcRecord:
:
getState
,
Lists
.
newArrayList
(
RtcStateEnum
.
CREATED
.
getCode
(),
RtcStateEnum
.
ING
.
getCode
()))
.
eq
(
ImRtcRecord:
:
getToClientId
,
toClient
.
getClientId
())
);
if
(
imRtcRecord
!=
null
)
{
throw
new
BusinessException
(
"对方忙线中"
);
}
// 拉黑逻辑
black
(
currentClient
,
toClient
);
...
...
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