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
2bbf102e
Commit
2bbf102e
authored
Mar 16, 2022
by
Future
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
代码结构调整
parent
1792ed2e
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
93 additions
and
24 deletions
+93
-24
core/src/main/java/com/wecloud/im/entity/ImMultiRtcRoomMember.java
+3
-0
core/src/main/java/com/wecloud/im/service/ImMultiRtcRoomMemberService.java
+9
-0
core/src/main/java/com/wecloud/im/service/ImMultiRtcRoomService.java
+22
-0
core/src/main/java/com/wecloud/im/service/impl/ImMultiRtcRoomMemberServiceImpl.java
+13
-0
core/src/main/java/com/wecloud/im/service/impl/ImMultiRtcRoomServiceImpl.java
+29
-0
core/src/main/java/com/wecloud/multimeet/service/impl/MultiMeetServiceImpl.java
+13
-21
docs/db/feature-cluster增量.sql
+4
-3
No files found.
core/src/main/java/com/wecloud/im/entity/ImMultiRtcRoomMember.java
View file @
2bbf102e
...
...
@@ -49,6 +49,9 @@ public class ImMultiRtcRoomMember extends BaseEntity {
@ApiModelProperty
(
"房间成员状态,1:呼叫中,2:已接听,3:已拒绝,4:未接听,5:已断开"
)
private
Integer
state
;
@ApiModelProperty
(
"呼叫时间"
)
private
Date
callTime
;
@ApiModelProperty
(
"创建时间"
)
private
Date
createTime
;
...
...
core/src/main/java/com/wecloud/im/service/ImMultiRtcRoomMemberService.java
View file @
2bbf102e
package
com
.
wecloud
.
im
.
service
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImMultiRtcRoomMember
;
import
io.geekidea.springbootplus.framework.common.service.BaseService
;
...
...
@@ -10,4 +11,12 @@ import io.geekidea.springbootplus.framework.common.service.BaseService;
*/
public
interface
ImMultiRtcRoomMemberService
extends
BaseService
<
ImMultiRtcRoomMember
>
{
/**
* 改变会议成员状态
* @param currentClient
* @param roomId
* @param state
*/
void
changeRoomMemberState
(
ImClient
currentClient
,
String
roomId
,
Integer
state
);
}
core/src/main/java/com/wecloud/im/service/ImMultiRtcRoomService.java
View file @
2bbf102e
...
...
@@ -10,4 +10,26 @@ import io.geekidea.springbootplus.framework.common.service.BaseService;
*/
public
interface
ImMultiRtcRoomService
extends
BaseService
<
ImMultiRtcRoom
>
{
/**
* 获取多人音视频房间
* @param fkAppid
* @param roomId
* @return
*/
ImMultiRtcRoom
getCachedMultiRtcRoom
(
Long
fkAppid
,
String
roomId
);
/**
* 清房间缓存
* @param fkAppid
* @param roomId
*/
void
deleteMultiRtcRoomCache
(
Long
fkAppid
,
String
roomId
);
/**
* 更新多人音视频房间状态
* @param roomId
* @param state
*/
void
updateMultiRtcRoomState
(
String
roomId
,
Integer
state
);
}
core/src/main/java/com/wecloud/im/service/impl/ImMultiRtcRoomMemberServiceImpl.java
View file @
2bbf102e
package
com
.
wecloud
.
im
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImMultiRtcRoomMember
;
import
com.wecloud.im.mapper.ImMultiRtcRoomMemberMapper
;
import
com.wecloud.im.service.ImMultiRtcRoomMemberService
;
import
io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
...
...
@@ -16,4 +19,14 @@ import org.springframework.stereotype.Service;
@Service
public
class
ImMultiRtcRoomMemberServiceImpl
extends
BaseServiceImpl
<
ImMultiRtcRoomMemberMapper
,
ImMultiRtcRoomMember
>
implements
ImMultiRtcRoomMemberService
{
@Autowired
private
ImMultiRtcRoomMemberMapper
imMultiRtcRoomMemberMapper
;
@Override
public
void
changeRoomMemberState
(
ImClient
currentClient
,
String
roomId
,
Integer
state
)
{
this
.
update
(
new
UpdateWrapper
<
ImMultiRtcRoomMember
>().
lambda
()
.
eq
(
ImMultiRtcRoomMember:
:
getRoomId
,
roomId
)
.
eq
(
ImMultiRtcRoomMember:
:
getFkClientId
,
currentClient
.
getId
())
.
set
(
ImMultiRtcRoomMember:
:
getState
,
state
));
}
}
core/src/main/java/com/wecloud/im/service/impl/ImMultiRtcRoomServiceImpl.java
View file @
2bbf102e
package
com
.
wecloud
.
im
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.wecloud.im.entity.ImMultiRtcRoom
;
import
com.wecloud.im.enums.MultiRtcRoomStateEnum
;
import
com.wecloud.im.mapper.ImMultiRtcRoomMapper
;
import
com.wecloud.im.service.ImMultiRtcRoomService
;
import
io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.stereotype.Service
;
/**
...
...
@@ -16,4 +22,27 @@ import org.springframework.stereotype.Service;
@Service
public
class
ImMultiRtcRoomServiceImpl
extends
BaseServiceImpl
<
ImMultiRtcRoomMapper
,
ImMultiRtcRoom
>
implements
ImMultiRtcRoomService
{
@Autowired
private
ImMultiRtcRoomService
imMultiRtcRoomService
;
@Override
@Cacheable
(
key
=
"'rtcRoomKey_' + #p0+#p1"
)
public
ImMultiRtcRoom
getCachedMultiRtcRoom
(
Long
fkAppid
,
String
roomId
)
{
ImMultiRtcRoom
rtcRoom
=
imMultiRtcRoomService
.
getOne
(
new
QueryWrapper
<
ImMultiRtcRoom
>().
lambda
()
.
eq
(
ImMultiRtcRoom:
:
getFkAppid
,
fkAppid
)
.
eq
(
ImMultiRtcRoom:
:
getRoomId
,
roomId
));
return
rtcRoom
;
}
@Override
@CacheEvict
(
key
=
"'rtcRoomKey_' + #p0+#p1"
)
public
void
deleteMultiRtcRoomCache
(
Long
fkAppid
,
String
roomId
)
{
}
@Override
public
void
updateMultiRtcRoomState
(
String
roomId
,
Integer
state
)
{
imMultiRtcRoomService
.
update
(
new
UpdateWrapper
<
ImMultiRtcRoom
>().
lambda
()
.
eq
(
ImMultiRtcRoom:
:
getRoomId
,
roomId
)
.
set
(
ImMultiRtcRoom:
:
getState
,
state
));
}
}
core/src/main/java/com/wecloud/multimeet/service/impl/MultiMeetServiceImpl.java
View file @
2bbf102e
package
com
.
wecloud
.
multimeet
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.google.common.collect.Lists
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImMultiRtcRoom
;
...
...
@@ -69,9 +68,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
throw
new
BusinessException
(
"发起方必须在线"
);
}
List
<
RoomMemberDto
>
members
=
Lists
.
newArrayList
();
ImMultiRtcRoom
rtcRoom
=
imMultiRtcRoomService
.
getOne
(
new
QueryWrapper
<
ImMultiRtcRoom
>().
lambda
()
.
eq
(
ImMultiRtcRoom:
:
getFkAppid
,
currentClient
.
getFkAppid
())
.
eq
(
ImMultiRtcRoom:
:
getRoomId
,
param
.
getRoomId
()));
ImMultiRtcRoom
rtcRoom
=
imMultiRtcRoomService
.
getCachedMultiRtcRoom
(
currentClient
.
getFkAppid
(),
param
.
getRoomId
());
if
(
rtcRoom
==
null
)
{
rtcRoom
=
new
ImMultiRtcRoom
();
rtcRoom
.
setId
(
SnowflakeUtil
.
getId
());
...
...
@@ -151,7 +148,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
@Override
public
void
reject
(
RejectToMultiMeetParam
param
)
{
ImClient
currentClient
=
imClientService
.
getCurrentClient
();
this
.
changeRoomMemberState
(
currentClient
,
param
.
getRoomId
(),
MultiRtcMemberStateEnum
.
REJECTED
.
getCode
());
imMultiRtcRoomMemberService
.
changeRoomMemberState
(
currentClient
,
param
.
getRoomId
(),
MultiRtcMemberStateEnum
.
REJECTED
.
getCode
());
List
<
ImMultiRtcRoomMember
>
rtcRoomMemberList
=
imMultiRtcRoomMemberService
.
list
(
new
QueryWrapper
<
ImMultiRtcRoomMember
>().
lambda
()
.
eq
(
ImMultiRtcRoomMember:
:
getRoomId
,
param
.
getRoomId
())
...
...
@@ -176,9 +173,18 @@ public class MultiMeetServiceImpl implements MultiMeetService {
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
agree
(
AgreeToMultiMeetParam
param
)
{
ImClient
currentClient
=
imClientService
.
getCurrentClient
();
this
.
changeRoomMemberState
(
currentClient
,
param
.
getRoomId
(),
MultiRtcMemberStateEnum
.
ANSWERED
.
getCode
());
ImMultiRtcRoom
rtcRoom
=
imMultiRtcRoomService
.
getCachedMultiRtcRoom
(
currentClient
.
getFkAppid
(),
param
.
getRoomId
());
if
(
rtcRoom
==
null
)
{
throw
new
BusinessException
(
"查无多人音视频房间"
);
}
if
(
MultiRtcRoomStateEnum
.
CREATED
.
getCode
().
equals
(
rtcRoom
.
getState
()))
{
imMultiRtcRoomService
.
deleteMultiRtcRoomCache
(
currentClient
.
getFkAppid
(),
param
.
getRoomId
());
imMultiRtcRoomService
.
updateMultiRtcRoomState
(
param
.
getRoomId
(),
MultiRtcRoomStateEnum
.
MEETING
.
getCode
());
}
imMultiRtcRoomMemberService
.
changeRoomMemberState
(
currentClient
,
param
.
getRoomId
(),
MultiRtcMemberStateEnum
.
ANSWERED
.
getCode
());
List
<
ImMultiRtcRoomMember
>
rtcRoomMemberList
=
imMultiRtcRoomMemberService
.
list
(
new
QueryWrapper
<
ImMultiRtcRoomMember
>().
lambda
()
.
eq
(
ImMultiRtcRoomMember:
:
getRoomId
,
param
.
getRoomId
())
...
...
@@ -205,7 +211,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
@Override
public
void
leave
(
LeaveFromMultiMeetParam
param
)
{
ImClient
currentClient
=
imClientService
.
getCurrentClient
();
this
.
changeRoomMemberState
(
currentClient
,
param
.
getRoomId
(),
MultiRtcMemberStateEnum
.
LEAVE
.
getCode
());
imMultiRtcRoomMemberService
.
changeRoomMemberState
(
currentClient
,
param
.
getRoomId
(),
MultiRtcMemberStateEnum
.
LEAVE
.
getCode
());
List
<
ImMultiRtcRoomMember
>
rtcRoomMemberList
=
imMultiRtcRoomMemberService
.
list
(
new
QueryWrapper
<
ImMultiRtcRoomMember
>().
lambda
()
.
eq
(
ImMultiRtcRoomMember:
:
getRoomId
,
param
.
getRoomId
())
...
...
@@ -228,18 +234,4 @@ public class MultiMeetServiceImpl implements MultiMeetService {
}
}
/**
* 改变会议成员状态
*
* @param currentClient
* @param roomId
* @param state
*/
private
void
changeRoomMemberState
(
ImClient
currentClient
,
String
roomId
,
Integer
state
)
{
imMultiRtcRoomMemberService
.
update
(
new
UpdateWrapper
<
ImMultiRtcRoomMember
>().
lambda
()
.
eq
(
ImMultiRtcRoomMember:
:
getRoomId
,
roomId
)
.
eq
(
ImMultiRtcRoomMember:
:
getFkClientId
,
currentClient
.
getId
())
.
set
(
ImMultiRtcRoomMember:
:
getState
,
state
));
}
}
docs/db/feature-cluster增量.sql
View file @
2bbf102e
-- 在f
eature-cluster 2021年12月22日之后,需要执行的的sql增量脚本
-- 在f
eature-cluster 2021年12月22日之后,需要执行的的sql增量脚本
...
...
@@ -123,7 +123,7 @@ CREATE TABLE `im_multi_rtc_room`
(
`id`
bigint
NOT
NULL
COMMENT
'主键id'
,
`fk_appid`
bigint
DEFAULT
NULL
COMMENT
'应用appid'
,
`room_id`
varchar
(
64
)
DEFAULT
NULL
COMMENT
'房间id'
,
`room_id`
varchar
(
64
)
DEFAULT
NULL
COMMENT
'房间id
(live kit提供)
'
,
`state`
tinyint
NOT
NULL
DEFAULT
'1'
COMMENT
'房间状态,1:已创建,2:会议中,3:会议结束'
,
`create_time`
timestamp
NULL
DEFAULT
NULL
COMMENT
'创建时间'
,
`update_time`
timestamp
NULL
DEFAULT
NULL
ON
UPDATE
CURRENT_TIMESTAMP
COMMENT
'修改时间'
,
...
...
@@ -136,10 +136,11 @@ CREATE TABLE `im_multi_rtc_room_member`
(
`id`
bigint
NOT
NULL
COMMENT
'主键id'
,
`fk_rtc_room_id`
bigint
NOT
NULL
COMMENT
'im房间id'
,
`room_id`
varchar
(
64
)
DEFAULT
NULL
COMMENT
'房间id'
,
`room_id`
varchar
(
64
)
DEFAULT
NULL
COMMENT
'房间id
(live kit提供)
'
,
`fk_client_id`
bigint
NOT
NULL
COMMENT
'client主键id'
,
`client_id`
varchar
(
200
)
DEFAULT
NULL
COMMENT
'客户方提供的唯一id'
,
`state`
tinyint
NOT
NULL
DEFAULT
'1'
COMMENT
'房间成员状态,1:呼叫中,2:已接听,3:已拒绝,4:未接听,5:已断开'
,
`call_time`
timestamp
NULL
DEFAULT
NULL
COMMENT
'呼叫时间'
,
`create_time`
timestamp
NULL
DEFAULT
NULL
COMMENT
'创建时间'
,
`update_time`
timestamp
NULL
DEFAULT
NULL
ON
UPDATE
CURRENT_TIMESTAMP
COMMENT
'修改时间'
,
PRIMARY
KEY
(
`id`
)
USING
BTREE
,
...
...
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