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
7e5af2de
Commit
7e5af2de
authored
Apr 27, 2022
by
Future
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
聊天室成员列表获取
parent
87ef58df
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
109 additions
and
15 deletions
+109
-15
core/src/main/java/com/wecloud/im/action/ConversationAction.java
+3
-3
core/src/main/java/com/wecloud/im/controller/ImConversationController.java
+15
-2
core/src/main/java/com/wecloud/im/param/ChatRoomMemberPageParam.java
+25
-0
core/src/main/java/com/wecloud/im/service/ImConversationService.java
+17
-9
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
+17
-1
core/src/main/java/com/wecloud/im/vo/ChatRoomMemberVo.java
+32
-0
No files found.
core/src/main/java/com/wecloud/im/action/ConversationAction.java
View file @
7e5af2de
...
@@ -235,7 +235,7 @@ public class ConversationAction {
...
@@ -235,7 +235,7 @@ public class ConversationAction {
*/
*/
@ActionMapping
(
"/intoChatRoom"
)
@ActionMapping
(
"/intoChatRoom"
)
@ApiOperation
(
value
=
"用户进入聊天室"
,
notes
=
"用户进入聊天室"
)
@ApiOperation
(
value
=
"用户进入聊天室"
,
notes
=
"用户进入聊天室"
)
public
WsResponse
<
Map
<
String
,
Boolean
>>
intoChatRoom
(
@RequestBody
IntoChatRoomParam
data
)
{
public
WsResponse
<
Map
<
String
,
Boolean
>>
intoChatRoom
(
IntoChatRoomParam
data
)
{
log
.
info
(
"用户进入聊天室入参 {}"
,
JSON
.
toJSONString
(
data
));
log
.
info
(
"用户进入聊天室入参 {}"
,
JSON
.
toJSONString
(
data
));
Boolean
r
=
imConversationService
.
intoChatRoom
(
data
);
Boolean
r
=
imConversationService
.
intoChatRoom
(
data
);
Map
<
String
,
Boolean
>
result
=
new
HashMap
<>();
Map
<
String
,
Boolean
>
result
=
new
HashMap
<>();
...
@@ -249,9 +249,9 @@ public class ConversationAction {
...
@@ -249,9 +249,9 @@ public class ConversationAction {
*/
*/
@ActionMapping
(
"/exitRoom"
)
@ActionMapping
(
"/exitRoom"
)
@ApiOperation
(
value
=
"用户退出聊天室"
,
notes
=
"用户退出聊天室"
)
@ApiOperation
(
value
=
"用户退出聊天室"
,
notes
=
"用户退出聊天室"
)
public
WsResponse
<
Map
<
String
,
Boolean
>>
exitRoom
(
@RequestBody
ExitChatRoomParam
data
)
{
public
WsResponse
<
Map
<
String
,
Boolean
>>
exitRoom
(
ExitChatRoomParam
data
)
{
log
.
info
(
"用户退出聊天室入参 {}"
,
JSON
.
toJSONString
(
data
));
log
.
info
(
"用户退出聊天室入参 {}"
,
JSON
.
toJSONString
(
data
));
Boolean
r
=
imConversationService
.
exitRoom
(
data
);
Boolean
r
=
imConversationService
.
exit
Chat
Room
(
data
);
Map
<
String
,
Boolean
>
result
=
new
HashMap
<>();
Map
<
String
,
Boolean
>
result
=
new
HashMap
<>();
result
.
put
(
"result"
,
r
);
result
.
put
(
"result"
,
r
);
return
WsResponse
.
ok
(
result
);
return
WsResponse
.
ok
(
result
);
...
...
core/src/main/java/com/wecloud/im/controller/ImConversationController.java
View file @
7e5af2de
package
com
.
wecloud
.
im
.
controller
;
package
com
.
wecloud
.
im
.
controller
;
import
com.wecloud.im.param.ChatRoomMemberPageParam
;
import
com.wecloud.im.param.ExitChatRoomParam
;
import
com.wecloud.im.param.ExitChatRoomParam
;
import
com.wecloud.im.param.IntoChatRoomParam
;
import
com.wecloud.im.param.IntoChatRoomParam
;
import
com.wecloud.im.vo.ChatRoomMemberVo
;
import
io.geekidea.springbootplus.framework.common.api.ApiCode
;
import
io.geekidea.springbootplus.framework.common.api.ApiCode
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.controller.BaseController
;
import
io.geekidea.springbootplus.framework.common.controller.BaseController
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -225,9 +228,19 @@ public class ImConversationController extends BaseController {
...
@@ -225,9 +228,19 @@ public class ImConversationController extends BaseController {
*/
*/
@PostMapping
(
"/exitRoom"
)
@PostMapping
(
"/exitRoom"
)
@ApiOperation
(
value
=
"用户退出聊天室"
,
notes
=
"用户退出聊天室"
)
@ApiOperation
(
value
=
"用户退出聊天室"
,
notes
=
"用户退出聊天室"
)
public
ApiResult
<
Boolean
>
exitRoom
(
@RequestBody
ExitChatRoomParam
param
)
{
public
ApiResult
<
Boolean
>
exit
Chat
Room
(
@RequestBody
ExitChatRoomParam
param
)
{
log
.
info
(
"用户退出聊天室入参 {}"
,
JSON
.
toJSONString
(
param
));
log
.
info
(
"用户退出聊天室入参 {}"
,
JSON
.
toJSONString
(
param
));
return
ApiResult
.
ok
(
imConversationService
.
exitRoom
(
param
));
return
ApiResult
.
ok
(
imConversationService
.
exitChatRoom
(
param
));
}
/**
* 全量获取聊天室成员
*/
@PostMapping
(
"/listChatRoomMember"
)
@ApiOperation
(
value
=
"全量获取聊天室成员"
,
notes
=
"全量获取聊天室成员"
)
public
ApiResult
<
List
<
ChatRoomMemberVo
>>
listChatRoomMember
(
@RequestBody
ChatRoomMemberPageParam
param
)
{
log
.
info
(
"全量获取聊天室成员入参 {}"
,
JSON
.
toJSONString
(
param
));
return
ApiResult
.
ok
(
imConversationService
.
listChatRoomMember
(
param
));
}
}
...
...
core/src/main/java/com/wecloud/im/param/ChatRoomMemberPageParam.java
0 → 100644
View file @
7e5af2de
package
com
.
wecloud
.
im
.
param
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* @Author wenzhida
* @Date 2022/4/27 16:42
* @Description 聊天室成员分页入参
*/
@Data
@Accessors
(
chain
=
true
)
@ApiModel
(
value
=
"聊天室成员分页入参"
)
public
class
ChatRoomMemberPageParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
3284648263835691087L
;
@ApiModelProperty
(
"聊天室房间id"
)
private
Long
chatRoomId
;
}
core/src/main/java/com/wecloud/im/service/ImConversationService.java
View file @
7e5af2de
package
com
.
wecloud
.
im
.
service
;
package
com
.
wecloud
.
im
.
service
;
import
com.wecloud.im.param.ExitChatRoomParam
;
import
com.wecloud.im.param.IntoChatRoomParam
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.service.BaseService
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
java.util.List
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.wecloud.im.entity.ImConversation
;
import
com.wecloud.im.entity.ImConversation
;
import
com.wecloud.im.param.ChatRoomMemberPageParam
;
import
com.wecloud.im.param.DisbandConversationParam
;
import
com.wecloud.im.param.DisbandConversationParam
;
import
com.wecloud.im.param.ExitChatRoomParam
;
import
com.wecloud.im.param.ImConversationPageParam
;
import
com.wecloud.im.param.ImConversationPageParam
;
import
com.wecloud.im.param.ImConversationQueryParam
;
import
com.wecloud.im.param.ImConversationQueryParam
;
import
com.wecloud.im.param.ImConversationQueryVo
;
import
com.wecloud.im.param.ImConversationQueryVo
;
import
com.wecloud.im.param.IntoChatRoomParam
;
import
com.wecloud.im.param.MutedGroupMemberParam
;
import
com.wecloud.im.param.MutedGroupMemberParam
;
import
com.wecloud.im.param.MutedGroupParam
;
import
com.wecloud.im.param.MutedGroupParam
;
import
com.wecloud.im.param.SetAdminsParam
;
import
com.wecloud.im.param.SetAdminsParam
;
...
@@ -24,8 +19,14 @@ import com.wecloud.im.param.add.ImConversationAttrUpdate;
...
@@ -24,8 +19,14 @@ import com.wecloud.im.param.add.ImConversationAttrUpdate;
import
com.wecloud.im.param.add.ImConversationCreate
;
import
com.wecloud.im.param.add.ImConversationCreate
;
import
com.wecloud.im.param.add.ImConversationDisplayUpdate
;
import
com.wecloud.im.param.add.ImConversationDisplayUpdate
;
import
com.wecloud.im.param.add.ImConversationNameUpdate
;
import
com.wecloud.im.param.add.ImConversationNameUpdate
;
import
com.wecloud.im.vo.ChatRoomMemberVo
;
import
com.wecloud.im.vo.ConversationVo
;
import
com.wecloud.im.vo.ConversationVo
;
import
com.wecloud.im.vo.ImConversationCreateVo
;
import
com.wecloud.im.vo.ImConversationCreateVo
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.service.BaseService
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
java.util.List
;
/**
/**
* 会话表 服务类
* 会话表 服务类
...
@@ -219,7 +220,14 @@ public interface ImConversationService extends BaseService<ImConversation> {
...
@@ -219,7 +220,14 @@ public interface ImConversationService extends BaseService<ImConversation> {
* @param param
* @param param
* @return
* @return
*/
*/
Boolean
exitRoom
(
ExitChatRoomParam
param
);
Boolean
exitChatRoom
(
ExitChatRoomParam
param
);
/**
* 分页获取聊天室成员入参
* @param param
* @return
*/
List
<
ChatRoomMemberVo
>
listChatRoomMember
(
ChatRoomMemberPageParam
param
);
}
}
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
View file @
7e5af2de
package
com
.
wecloud
.
im
.
service
.
impl
;
package
com
.
wecloud
.
im
.
service
.
impl
;
import
com.wecloud.im.chatroom.cache.ChatRoomCacheManager
;
import
com.wecloud.im.chatroom.cache.ChatRoomCacheManager
;
import
com.wecloud.im.param.ChatRoomMemberPageParam
;
import
com.wecloud.im.param.ExitChatRoomParam
;
import
com.wecloud.im.param.ExitChatRoomParam
;
import
com.wecloud.im.param.IntoChatRoomParam
;
import
com.wecloud.im.param.IntoChatRoomParam
;
import
com.wecloud.im.vo.ChatRoomMemberVo
;
import
com.wecloud.im.ws.utils.RedisUtils
;
import
com.wecloud.im.ws.utils.RedisUtils
;
import
io.geekidea.springbootplus.framework.common.api.ApiCode
;
import
io.geekidea.springbootplus.framework.common.api.ApiCode
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
...
@@ -1219,7 +1221,7 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
...
@@ -1219,7 +1221,7 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
}
}
@Override
@Override
public
Boolean
exitRoom
(
ExitChatRoomParam
param
)
{
public
Boolean
exit
Chat
Room
(
ExitChatRoomParam
param
)
{
// 获取当前client
// 获取当前client
ImClient
currentClient
=
contextService
.
getImClientIfNotNullOrThrow
();
ImClient
currentClient
=
contextService
.
getImClientIfNotNullOrThrow
();
// 根据appId查询application
// 根据appId查询application
...
@@ -1272,4 +1274,18 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
...
@@ -1272,4 +1274,18 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
return
true
;
return
true
;
}
}
@Override
public
List
<
ChatRoomMemberVo
>
listChatRoomMember
(
ChatRoomMemberPageParam
param
)
{
Map
<
String
,
String
>
chatRoomMembers
=
chatRoomCacheManager
.
findOnlineClientsByChatRoomId
(
param
.
getChatRoomId
());
if
(
chatRoomMembers
.
isEmpty
())
{
return
Lists
.
newArrayList
();
}
List
<
ChatRoomMemberVo
>
result
=
Lists
.
newArrayList
();
for
(
String
key
:
chatRoomMembers
.
keySet
())
{
ImClient
client
=
imClientService
.
getCacheImClient
(
Long
.
valueOf
(
key
.
split
(
RedisUtils
.
SPLIT
)[
0
]));
result
.
add
(
new
ChatRoomMemberVo
(
param
.
getChatRoomId
(),
client
.
getClientId
()));
}
return
result
;
}
}
}
core/src/main/java/com/wecloud/im/vo/ChatRoomMemberVo.java
0 → 100644
View file @
7e5af2de
package
com
.
wecloud
.
im
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* @Author wenzhida
* @Date 2022/4/27 16:47
* @Description 聊天室成员VO
*/
@Data
@Accessors
(
chain
=
true
)
@ApiModel
(
value
=
"聊天室成员VO"
)
@AllArgsConstructor
@NoArgsConstructor
public
class
ChatRoomMemberVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
5417994988121322697L
;
@ApiModelProperty
(
"聊天室房间id"
)
private
Long
chatRoomId
;
@ApiModelProperty
(
"客户端id"
)
private
String
clientId
;
}
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