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
2e18c987
Commit
2e18c987
authored
Jun 24, 2022
by
Shadow
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/xiaohudou_20220427' into xiaohudou_20220427
parents
4c876043
9b461cd7
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
239 additions
and
65 deletions
+239
-65
core/pom.xml
+1
-1
core/src/main/java/com/wecloud/im/action/RtcAction.java
+18
-14
core/src/main/java/com/wecloud/im/controller/ImRtcRecordController.java
+15
-4
core/src/main/java/com/wecloud/im/service/ImRtcRecordService.java
+7
-0
core/src/main/java/com/wecloud/im/service/impl/ImMessageServiceImpl.java
+18
-0
core/src/main/java/com/wecloud/im/service/impl/ImRtcRecordServiceImpl.java
+32
-0
core/src/main/java/com/wecloud/im/vo/MissedRtcRecordVO.java
+33
-0
core/src/main/java/com/wecloud/rtc/service/impl/RtcServiceImpl.java
+14
-7
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
+5
-0
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
+12
-20
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
+13
-12
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImRtcRecordOperation.java
+24
-7
im-sdk/src/main/java/com/wecloud/im/sdk/model/MissedRtcRecord.java
+26
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/MissedRtcRecordParam.java
+21
-0
No files found.
core/pom.xml
View file @
2e18c987
...
...
@@ -129,7 +129,7 @@
<dependency>
<groupId>
com.wecloud
</groupId>
<artifactId>
pushserver-client
</artifactId>
<version>
0.
0
.1-SNAPSHOT
</version>
<version>
0.
1
.1-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.wecloud.imserver
</groupId>
...
...
core/src/main/java/com/wecloud/im/action/RtcAction.java
View file @
2e18c987
package
com
.
wecloud
.
im
.
action
;
import
com.alibaba.fastjson.JSON
;
import
com.wecloud.dispatch.annotation.ActionMapping
;
import
com.wecloud.im.param.rtc.*
;
import
com.wecloud.im.sdk.enums.CallTypeEnum
;
import
com.wecloud.im.service.ImRtcRecordService
;
import
com.wecloud.im.vo.MissedRtcRecordVO
;
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
com.wecloud.dispatch.annotation.ActionMapping
;
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.sdk.enums.CallTypeEnum
;
import
com.wecloud.im.ws.model.WsResponse
;
import
com.wecloud.rtc.service.RtcService
;
import
java.util.Map
;
@Slf4j
@Component
...
...
@@ -33,6 +27,9 @@ public class RtcAction {
@Autowired
private
RtcService
rtcService
;
@Autowired
private
ImRtcRecordService
rtcRecordService
;
/**
* 创建频道,并邀请客户端加入
*/
...
...
@@ -86,4 +83,11 @@ public class RtcAction {
rtcService
.
candidateForward
(
data
);
return
WsResponse
.
ok
();
}
@ApiOperation
(
"未接音视频"
)
@ActionMapping
(
"/missedConversation"
)
public
WsResponse
<
MissedRtcRecordVO
>
missedConversation
(
String
userId
){
MissedRtcRecordVO
missedRtcRecord
=
rtcRecordService
.
getMissedRtcRecord
(
userId
);
return
WsResponse
.
ok
(
missedRtcRecord
);
}
}
core/src/main/java/com/wecloud/im/controller/ImRtcRecordController.java
View file @
2e18c987
...
...
@@ -5,16 +5,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.wecloud.im.entity.ImRtcRecord
;
import
com.wecloud.im.param.rtc.SingleRtcRecordParam
;
import
com.wecloud.im.service.ImRtcRecordService
;
import
com.wecloud.im.vo.MissedRtcRecordVO
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.controller.BaseController
;
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.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
/**
* @author nanqianhao
...
...
@@ -37,4 +35,17 @@ public class ImRtcRecordController extends BaseController {
return
ApiResult
.
ok
(
rtcRecordService
.
getPageImRtcRecords
(
singleRtcRecordParam
));
}
@ApiOperation
(
"未接音视频"
)
@GetMapping
(
"/missedConversation"
)
ApiResult
<
MissedRtcRecordVO
>
missedConversation
(
@RequestParam
(
"userId"
)
String
userId
){
MissedRtcRecordVO
missedRtcRecord
=
rtcRecordService
.
getMissedRtcRecord
(
userId
);
// 如果没有记录 则状态为4
if
(
missedRtcRecord
==
null
){
MissedRtcRecordVO
missedRtcRecordVO
=
new
MissedRtcRecordVO
();
missedRtcRecordVO
.
setState
(
4
);
return
ApiResult
.
ok
(
missedRtcRecordVO
);
}
return
ApiResult
.
ok
(
missedRtcRecord
);
}
}
core/src/main/java/com/wecloud/im/service/ImRtcRecordService.java
View file @
2e18c987
...
...
@@ -5,6 +5,7 @@ import com.wecloud.im.entity.ImClient;
import
com.wecloud.im.entity.ImRtcRecord
;
import
com.wecloud.im.param.rtc.CreateRtcChannelParam
;
import
com.wecloud.im.param.rtc.SingleRtcRecordParam
;
import
com.wecloud.im.vo.MissedRtcRecordVO
;
import
io.geekidea.springbootplus.framework.common.service.BaseService
;
/**
...
...
@@ -34,4 +35,10 @@ public interface ImRtcRecordService extends BaseService<ImRtcRecord> {
* 获取通话记录
*/
Page
<
ImRtcRecord
>
getPageImRtcRecords
(
SingleRtcRecordParam
singleRtcRecordParam
);
/**
* 获取应用后台下未接受的音视频通话
*/
MissedRtcRecordVO
getMissedRtcRecord
(
String
userId
);
}
core/src/main/java/com/wecloud/im/service/impl/ImMessageServiceImpl.java
View file @
2e18c987
package
com
.
wecloud
.
im
.
service
.
impl
;
import
com.wecloud.im.post.MessageBuilder
;
import
io.geekidea.springbootplus.framework.common.api.ApiCode
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.exception.BusinessException
;
...
...
@@ -273,6 +274,14 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
eventPublisher
.
publishEvent
(
new
ClientSendMessageEvent
(
imApplication
.
getId
(),
messageById
));
// 组装消息
Map
<
String
,
Object
>
content
=
new
HashMap
<>();
content
.
put
(
"operator"
,
imClientSender
.
getClientId
());
content
.
put
(
"beOperatedMsgId"
,
imMsgRecall
.
getMsgId
());
content
.
put
(
"msgOwner"
,
msgOwner
.
getClientId
());
ImMessage
imMessage
=
MessageBuilder
.
buildEventMessage
(
MsgTypeEnum
.
MSG_WITHDRAW
,
imApplication
,
imClientSender
,
new
ImConversation
().
setId
(
messageById
.
getFkConversationId
()),
JsonUtils
.
encodeJson
(
content
));
this
.
save
(
imMessage
);
if
(
saveOk
)
{
// 查询该会话所有成员
...
...
@@ -373,6 +382,15 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
throw
new
BusinessException
(
"未查找到消息发送者"
);
}
// 组装消息
Map
<
String
,
Object
>
content
=
new
HashMap
<>();
content
.
put
(
"operator"
,
imClientSender
.
getClientId
());
content
.
put
(
"beOperatedMsgId"
,
message
.
getId
());
content
.
put
(
"msgOwner"
,
msgOwner
.
getClientId
());
ImMessage
imMessage
=
MessageBuilder
.
buildEventMessage
(
MsgTypeEnum
.
MSG_DELETE
,
imApplication
,
imClientSender
,
new
ImConversation
().
setId
(
message
.
getFkConversationId
()),
JsonUtils
.
encodeJson
(
content
));
this
.
save
(
imMessage
);
if
(
saveOk
)
{
// 查询该会话所有成员
List
<
ImConversationMembers
>
membersList
=
imConversationMembersService
.
list
(
...
...
core/src/main/java/com/wecloud/im/service/impl/ImRtcRecordServiceImpl.java
View file @
2e18c987
...
...
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.google.common.collect.Lists
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImRtcRecord
;
import
com.wecloud.im.mapper.ImRtcRecordMapper
;
...
...
@@ -11,15 +12,20 @@ import com.wecloud.im.param.rtc.CreateRtcChannelParam;
import
com.wecloud.im.param.rtc.SingleRtcRecordParam
;
import
com.wecloud.im.sdk.enums.RtcStateEnum
;
import
com.wecloud.im.sdk.enums.SingleRtcOperateTypeEnum
;
import
com.wecloud.im.service.ImClientService
;
import
com.wecloud.im.service.ImRtcRecordService
;
import
com.wecloud.im.vo.MissedRtcRecordVO
;
import
com.wecloud.utils.SnowflakeUtil
;
import
io.geekidea.springbootplus.framework.common.exception.BusinessException
;
import
io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl
;
import
io.geekidea.springbootplus.framework.shiro.util.SecurityUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Service
;
import
java.text.SimpleDateFormat
;
import
java.util.Calendar
;
import
java.util.Date
;
...
...
@@ -32,6 +38,9 @@ import java.util.Date;
@Service
public
class
ImRtcRecordServiceImpl
extends
BaseServiceImpl
<
ImRtcRecordMapper
,
ImRtcRecord
>
implements
ImRtcRecordService
{
@Autowired
private
ImClientService
imClientService
;
@Async
@Override
public
void
createRtcRecord
(
CreateRtcChannelParam
param
,
Long
channelId
,
ImClient
currentClient
)
{
...
...
@@ -111,5 +120,28 @@ public class ImRtcRecordServiceImpl extends BaseServiceImpl<ImRtcRecordMapper, I
return
page
;
}
@Override
public
MissedRtcRecordVO
getMissedRtcRecord
(
String
userId
)
{
ImClient
currentClient
=
imClientService
.
getCacheImClient
(
SecurityUtils
.
getCurrentAppId
(),
userId
);
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
calendar
.
get
(
Calendar
.
HOUR_OF_DAY
)
-
1
);
SimpleDateFormat
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
ImRtcRecord
missRtcRecord
=
this
.
getOne
(
new
LambdaQueryWrapper
<
ImRtcRecord
>()
.
eq
(
ImRtcRecord:
:
getFkAppid
,
currentClient
.
getFkAppid
())
.
in
(
ImRtcRecord:
:
getState
,
Lists
.
newArrayList
(
RtcStateEnum
.
CREATED
.
getCode
(),
RtcStateEnum
.
ING
.
getCode
()))
.
eq
(
ImRtcRecord:
:
getToClientId
,
currentClient
.
getClientId
())
.
between
(
ImRtcRecord:
:
getCreateTime
,
df
.
format
(
calendar
.
getTime
()),
df
.
format
(
new
Date
()))
);
if
(
missRtcRecord
!=
null
)
{
MissedRtcRecordVO
missedRtcRecordVo
=
new
MissedRtcRecordVO
();
missedRtcRecordVo
.
setState
(
missRtcRecord
.
getState
());
missedRtcRecordVo
.
setCallType
(
missRtcRecord
.
getCallType
());
missedRtcRecordVo
.
setFromClientId
(
missRtcRecord
.
getFromClientId
());
missedRtcRecordVo
.
setChannelId
(
missRtcRecord
.
getChannelId
());
return
missedRtcRecordVo
;
}
else
{
return
null
;
}
}
}
core/src/main/java/com/wecloud/im/vo/MissedRtcRecordVO.java
0 → 100644
View file @
2e18c987
package
com
.
wecloud
.
im
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @author nanqianhao
* @date 2022/6/16
* @apiNote
*/
@Data
@ApiModel
(
value
=
"未接音视频记录返回对象"
)
public
class
MissedRtcRecordVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
5095229246261665876L
;
@ApiModelProperty
(
"频道id"
)
private
Long
channelId
;
@ApiModelProperty
(
"发起方clientId"
)
private
String
fromClientId
;
@ApiModelProperty
(
value
=
"音视频类型: 1-video或2-voice"
)
private
Integer
callType
;
@ApiModelProperty
(
"频道状态,1:音视频发起,2:音视频中,3:音视频结束, 4:没有记录"
)
private
Integer
state
;
}
core/src/main/java/com/wecloud/rtc/service/impl/RtcServiceImpl.java
View file @
2e18c987
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,19 @@ 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
()))
.
and
(
o
->
o
.
eq
(
ImRtcRecord:
:
getToClientId
,
toClient
.
getClientId
())
.
or
()
.
eq
(
ImRtcRecord:
:
getFromClientId
,
toClient
.
getClientId
()))
);
if
(
imRtcRecord
!=
null
)
{
throw
new
BusinessException
(
"对方忙线中"
);
}
// 拉黑逻辑
black
(
currentClient
,
toClient
);
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
View file @
2e18c987
...
...
@@ -187,4 +187,9 @@ public class ResourcePathConstants {
public
static
final
String
ADD_OR_MODIFY_CONVERSATION_ATTRIBUTE_REQUEST
=
"/api/conversation/sdk"
+
"/addOrModifyAttribute"
;
/**
* 后台状态下未接到音视频判断
*/
public
static
final
String
GET_MISSED_RTCRECORD
=
"/api/rtcRecord/missedConversation"
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
View file @
2e18c987
package
com
.
wecloud
.
im
.
sdk
;
import
com.wecloud.im.sdk.model.*
;
import
java.util.List
;
import
java.util.Map
;
import
com.wecloud.im.sdk.model.Attributes
;
import
com.wecloud.im.sdk.model.Blacklist
;
import
com.wecloud.im.sdk.model.ChatRoomMember
;
import
com.wecloud.im.sdk.model.ClientRelation
;
import
com.wecloud.im.sdk.model.Conversation
;
import
com.wecloud.im.sdk.model.CreateConversation
;
import
com.wecloud.im.sdk.model.Friend
;
import
com.wecloud.im.sdk.model.GroupChatMessage
;
import
com.wecloud.im.sdk.model.GroupChatStatusMessage
;
import
com.wecloud.im.sdk.model.GroupSettingParam
;
import
com.wecloud.im.sdk.model.ImClient
;
import
com.wecloud.im.sdk.model.ImRtcRecord
;
import
com.wecloud.im.sdk.model.PageResult
;
import
com.wecloud.im.sdk.model.PrivateChatMessage
;
import
com.wecloud.im.sdk.model.PrivateChatStatusMessage
;
import
com.wecloud.im.sdk.model.RtcRecord
;
import
com.wecloud.im.sdk.model.SingleUserNotification
;
import
com.wecloud.im.sdk.model.Token
;
import
com.wecloud.im.sdk.model.UnsureFriend
;
/**
*
* @Author luozh
...
...
@@ -412,4 +395,13 @@ public interface WecloudIm {
* @Return
*/
Boolean
singleUserNotification
(
SingleUserNotification
singleUserNotification
);
/**
* 后台状态下未接到音视频判断
* @Author nanqianhao
* @Date 2022年05月25日 09:36:47
* @param
* @Return
*/
MissedRtcRecord
getMissedRtcRecord
(
String
UserId
);
}
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
View file @
2e18c987
package
com
.
wecloud
.
im
.
sdk
;
import
java.net.URL
;
import
java.util.List
;
import
java.util.Map
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.lang.Assert
;
import
com.wecloud.im.sdk.internal.WecloudImContactsOperation
;
import
com.wecloud.im.sdk.internal.WecloudImConversationOperation
;
import
com.wecloud.im.sdk.internal.WecloudImGroupOperation
;
import
com.wecloud.im.sdk.internal.WecloudImMessageOperation
;
import
com.wecloud.im.sdk.internal.WecloudImRtcRecordOperation
;
import
com.wecloud.im.sdk.internal.WecloudImSystemNotificationOperation
;
import
com.wecloud.im.sdk.internal.WecloudImUserOperation
;
import
com.wecloud.im.sdk.internal.*
;
import
com.wecloud.im.sdk.model.*
;
import
java.net.URL
;
import
java.util.List
;
import
java.util.Map
;
/**
*
* @Author luozh
...
...
@@ -365,6 +358,14 @@ public class WecloudImClient implements WecloudIm {
return
imSystemNotificationOperation
.
singleUserNotification
(
singleUserNotificationRequest
);
}
@Override
public
MissedRtcRecord
getMissedRtcRecord
(
String
UserId
)
{
MissedRtcRecordParam
missedRtcRecordParam
=
MissedRtcRecordParam
.
builder
().
userId
(
UserId
).
build
();
return
imRtcRecordOperation
.
getMissedRtcRecord
(
missedRtcRecordParam
);
}
private
void
initOperations
()
{
this
.
imUserOperation
=
new
WecloudImUserOperation
(
apiDomain
,
appKey
,
appSecret
);
this
.
imConversationOperation
=
new
WecloudImConversationOperation
(
apiDomain
,
appKey
,
appSecret
);
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImRtcRecordOperation.java
View file @
2e18c987
package
com
.
wecloud
.
im
.
sdk
.
internal
;
import
java.net.URL
;
import
java.util.HashMap
;
import
java.util.Map
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.wecloud.im.sdk.common.HttpMethod
;
import
com.wecloud.im.sdk.common.RequestMessage
;
import
com.wecloud.im.sdk.model.ImRtcRecord
;
import
com.wecloud.im.sdk.model.PageResult
;
import
com.wecloud.im.sdk.model.RtcRecordRequest
;
import
com.wecloud.im.sdk.model.*
;
import
java.net.URL
;
import
java.util.HashMap
;
import
java.util.Map
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
GET_MISSED_RTCRECORD
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
LIST_RTC_RECORDS_REQUEST
;
/**
...
...
@@ -58,4 +57,22 @@ public class WecloudImRtcRecordOperation extends WecloudImOperation {
PageResult
<
ImRtcRecord
>
rtcRecords
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
result
),
typeReference
);
return
rtcRecords
;
}
public
MissedRtcRecord
getMissedRtcRecord
(
MissedRtcRecordParam
missedRtcRecordParam
){
Map
<
String
,
Object
>
param
=
new
HashMap
<>();
param
.
put
(
"userId"
,
missedRtcRecordParam
.
getUserId
()+
""
);
// 发送请求
RequestMessage
request
=
new
WecloudRequestMessageBuilder
().
setEndpoint
(
GET_MISSED_RTCRECORD
)
.
setMethod
(
HttpMethod
.
GET
).
setParameters
(
param
)
.
setOriginalRequest
(
missedRtcRecordParam
).
build
();
Object
result
=
doOperation
(
request
);
TypeReference
<
MissedRtcRecord
>
typeReference
=
new
TypeReference
<
MissedRtcRecord
>()
{
};
MissedRtcRecord
rtcRecords
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
result
),
typeReference
);
return
rtcRecords
;
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/MissedRtcRecord.java
0 → 100644
View file @
2e18c987
package
com
.
wecloud
.
im
.
sdk
.
model
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @author nanqianhao
* @date 2022/6/16
* @apiNote
*/
@Data
public
class
MissedRtcRecord
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
4276311990569662993L
;
private
Long
channelId
;
private
String
fromClientId
;
private
Integer
callType
;
private
Integer
state
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/MissedRtcRecordParam.java
0 → 100644
View file @
2e18c987
package
com
.
wecloud
.
im
.
sdk
.
model
;
import
lombok.Builder
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* @author nanqianhao
* @date 2022/6/16
* @apiNote
*/
@Getter
@Setter
@Builder
public
class
MissedRtcRecordParam
extends
WebServiceRequest
{
/**
* 用户id
*/
private
String
userId
;
}
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