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
4e44f341
Commit
4e44f341
authored
Jun 16, 2022
by
南千昊
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
程序后台下未接到音视频通话记录返回
parent
f1954ef0
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
145 additions
and
50 deletions
+145
-50
core/src/main/java/com/wecloud/im/action/RtcAction.java
+18
-14
core/src/main/java/com/wecloud/im/controller/ImRtcRecordController.java
+14
-0
core/src/main/java/com/wecloud/im/service/ImRtcRecordService.java
+7
-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
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
+3
-20
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
+6
-12
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImRtcRecordOperation.java
+6
-4
im-sdk/src/main/java/com/wecloud/im/sdk/model/MissedRtcRecord.java
+26
-0
No files found.
core/src/main/java/com/wecloud/im/action/RtcAction.java
View file @
4e44f341
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
(){
MissedRtcRecordVO
missedRtcRecord
=
rtcRecordService
.
getMissedRtcRecord
();
return
WsResponse
.
ok
(
missedRtcRecord
);
}
}
core/src/main/java/com/wecloud/im/controller/ImRtcRecordController.java
View file @
4e44f341
...
...
@@ -5,6 +5,7 @@ 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
;
...
...
@@ -37,4 +38,17 @@ public class ImRtcRecordController extends BaseController {
return
ApiResult
.
ok
(
rtcRecordService
.
getPageImRtcRecords
(
singleRtcRecordParam
));
}
@ApiOperation
(
"未接音视频"
)
@PostMapping
(
"/missedConversation"
)
ApiResult
<
MissedRtcRecordVO
>
missedConversation
(){
MissedRtcRecordVO
missedRtcRecord
=
rtcRecordService
.
getMissedRtcRecord
();
// 如果没有记录 则状态为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 @
4e44f341
...
...
@@ -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
();
}
core/src/main/java/com/wecloud/im/service/impl/ImRtcRecordServiceImpl.java
View file @
4e44f341
...
...
@@ -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
()
{
ImClient
currentClient
=
imClientService
.
getCurrentClient
();
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 @
4e44f341
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
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
View file @
4e44f341
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
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
View file @
4e44f341
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,7 @@ public class WecloudImClient implements WecloudIm {
return
imSystemNotificationOperation
.
singleUserNotification
(
singleUserNotificationRequest
);
}
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 @
4e44f341
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
;
...
...
@@ -12,6 +8,10 @@ import com.wecloud.im.sdk.model.ImRtcRecord;
import
com.wecloud.im.sdk.model.PageResult
;
import
com.wecloud.im.sdk.model.RtcRecordRequest
;
import
java.net.URL
;
import
java.util.HashMap
;
import
java.util.Map
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
LIST_RTC_RECORDS_REQUEST
;
/**
...
...
@@ -58,4 +58,6 @@ public class WecloudImRtcRecordOperation extends WecloudImOperation {
PageResult
<
ImRtcRecord
>
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 @
4e44f341
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
;
}
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