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
091707e7
Commit
091707e7
authored
May 01, 2022
by
Future
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
批量获取会话信息
parent
ccd7e805
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
137 additions
and
30 deletions
+137
-30
core/src/main/java/com/wecloud/im/action/ConversationAction.java
+27
-0
core/src/main/java/com/wecloud/im/controller/ImConversationController.java
+30
-21
core/src/main/java/com/wecloud/im/param/ListConversationParam.java
+33
-0
core/src/main/java/com/wecloud/im/service/ImConversationService.java
+9
-1
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
+38
-8
No files found.
core/src/main/java/com/wecloud/im/action/ConversationAction.java
View file @
091707e7
...
@@ -2,11 +2,13 @@ package com.wecloud.im.action;
...
@@ -2,11 +2,13 @@ package com.wecloud.im.action;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.wecloud.dispatch.annotation.ActionMapping
;
import
com.wecloud.dispatch.annotation.ActionMapping
;
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.ExitChatRoomParam
;
import
com.wecloud.im.param.GroupChatSettingParam
;
import
com.wecloud.im.param.GroupChatSettingParam
;
import
com.wecloud.im.param.ImConversationQueryParam
;
import
com.wecloud.im.param.ImConversationQueryParam
;
import
com.wecloud.im.param.IntoChatRoomParam
;
import
com.wecloud.im.param.IntoChatRoomParam
;
import
com.wecloud.im.param.ListConversationParam
;
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
;
...
@@ -18,10 +20,12 @@ import com.wecloud.im.param.add.ImConversationCreate;
...
@@ -18,10 +20,12 @@ 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.service.ImConversationService
;
import
com.wecloud.im.service.ImConversationService
;
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
com.wecloud.im.ws.model.WsResponse
;
import
com.wecloud.im.ws.model.WsResponse
;
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.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
;
...
@@ -29,6 +33,7 @@ import org.apache.commons.collections4.CollectionUtils;
...
@@ -29,6 +33,7 @@ import org.apache.commons.collections4.CollectionUtils;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
java.util.HashMap
;
import
java.util.HashMap
;
...
@@ -272,4 +277,26 @@ public class ConversationAction {
...
@@ -272,4 +277,26 @@ public class ConversationAction {
}
}
/**
* 全量获取聊天室成员
*/
@PostMapping
(
"/listChatRoomMember"
)
@ApiOperation
(
value
=
"全量获取聊天室成员"
,
notes
=
"全量获取聊天室成员"
)
public
WsResponse
<
List
<
ChatRoomMemberVo
>>
listChatRoomMember
(
ChatRoomMemberPageParam
data
)
{
log
.
info
(
"全量获取聊天室成员入参 {}"
,
JSON
.
toJSONString
(
data
));
List
<
ChatRoomMemberVo
>
r
=
imConversationService
.
listChatRoomMember
(
data
);
return
WsResponse
.
ok
(
r
);
}
/**
* 查找会话信息
* @return
*/
@ActionMapping
(
"/listConversation"
)
@ApiOperation
(
value
=
"查找会话信息"
,
notes
=
"会话"
)
public
WsResponse
<
List
<
ConversationVo
>>
listConversation
(
ListConversationParam
data
)
{
List
<
ConversationVo
>
conversationList
=
imConversationService
.
listConversation
(
data
);
return
WsResponse
.
ok
(
conversationList
);
}
}
}
core/src/main/java/com/wecloud/im/controller/ImConversationController.java
View file @
091707e7
package
com
.
wecloud
.
im
.
controller
;
package
com
.
wecloud
.
im
.
controller
;
import
com.alibaba.fastjson.JSON
;
import
com.wecloud.dispatch.annotation.ActionMapping
;
import
com.wecloud.im.param.ChatRoomMemberPageParam
;
import
com.wecloud.im.param.ChatRoomMemberPageParam
;
import
com.wecloud.im.param.DisbandConversationParam
;
import
com.wecloud.im.param.ExitChatRoomParam
;
import
com.wecloud.im.param.ExitChatRoomParam
;
import
com.wecloud.im.param.GroupChatSettingParam
;
import
com.wecloud.im.param.ImConversationQueryParam
;
import
com.wecloud.im.param.IntoChatRoomParam
;
import
com.wecloud.im.param.IntoChatRoomParam
;
import
com.wecloud.im.param.ListConversationParam
;
import
com.wecloud.im.param.MutedGroupMemberParam
;
import
com.wecloud.im.param.MutedGroupParam
;
import
com.wecloud.im.param.SetAdminsParam
;
import
com.wecloud.im.param.TransferOwnerParam
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImConversationAttrUpdate
;
import
com.wecloud.im.param.add.ImConversationCreate
;
import
com.wecloud.im.param.add.ImConversationDisplayUpdate
;
import
com.wecloud.im.param.add.ImConversationNameUpdate
;
import
com.wecloud.im.service.ImConversationService
;
import
com.wecloud.im.vo.ChatRoomMemberVo
;
import
com.wecloud.im.vo.ChatRoomMemberVo
;
import
com.wecloud.im.vo.ConversationVo
;
import
com.wecloud.im.vo.ImConversationCreateVo
;
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
;
import
java.util.List
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
...
@@ -22,23 +37,7 @@ import org.springframework.web.bind.annotation.RequestBody;
...
@@ -22,23 +37,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.alibaba.fastjson.JSON
;
import
java.util.List
;
import
com.wecloud.im.param.DisbandConversationParam
;
import
com.wecloud.im.param.GroupChatSettingParam
;
import
com.wecloud.im.param.ImConversationQueryParam
;
import
com.wecloud.im.param.MutedGroupMemberParam
;
import
com.wecloud.im.param.MutedGroupParam
;
import
com.wecloud.im.param.SetAdminsParam
;
import
com.wecloud.im.param.TransferOwnerParam
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImConversationAttrUpdate
;
import
com.wecloud.im.param.add.ImConversationCreate
;
import
com.wecloud.im.param.add.ImConversationDisplayUpdate
;
import
com.wecloud.im.param.add.ImConversationNameUpdate
;
import
com.wecloud.im.service.ImConversationService
;
import
com.wecloud.im.vo.ConversationVo
;
import
com.wecloud.im.vo.ImConversationCreateVo
;
/**
/**
* 会话表 控制器
* 会话表 控制器
...
@@ -255,6 +254,16 @@ public class ImConversationController extends BaseController {
...
@@ -255,6 +254,16 @@ public class ImConversationController extends BaseController {
return
ApiResult
.
ok
(
imConversationService
.
listChatRoomMember
(
param
));
return
ApiResult
.
ok
(
imConversationService
.
listChatRoomMember
(
param
));
}
}
/**
* 查找会话信息
* @return
*/
@ActionMapping
(
"/listConversation"
)
@ApiOperation
(
value
=
"查找会话信息"
,
notes
=
"会话"
)
public
ApiResult
<
List
<
ConversationVo
>>
listConversation
(
ListConversationParam
param
)
{
List
<
ConversationVo
>
conversationList
=
imConversationService
.
listConversation
(
param
);
return
ApiResult
.
ok
(
conversationList
);
}
}
}
core/src/main/java/com/wecloud/im/param/ListConversationParam.java
0 → 100644
View file @
091707e7
package
com
.
wecloud
.
im
.
param
;
import
io.geekidea.springbootplus.framework.common.entity.BaseEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.util.List
;
/**
* @Author wenzhida
* @Date 2022/5/1 9:35
* @Description 查找聊天室入参
*/
@Data
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"查找聊天室入参"
)
public
class
ListConversationParam
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
-
3602523207000275557L
;
@ApiModelProperty
(
"会话属性,1:单聊,2:普通群,3:万人群"
)
private
Integer
chatType
;
@ApiModelProperty
(
"会话id列表"
)
private
List
<
Long
>
conversationIds
;
}
core/src/main/java/com/wecloud/im/service/ImConversationService.java
View file @
091707e7
...
@@ -10,6 +10,7 @@ import com.wecloud.im.param.ImConversationPageParam;
...
@@ -10,6 +10,7 @@ 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.IntoChatRoomParam
;
import
com.wecloud.im.param.ListConversationParam
;
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
;
...
@@ -231,11 +232,18 @@ public interface ImConversationService extends BaseService<ImConversation> {
...
@@ -231,11 +232,18 @@ public interface ImConversationService extends BaseService<ImConversation> {
Boolean
exitChatRoom
(
ExitChatRoomParam
param
);
Boolean
exitChatRoom
(
ExitChatRoomParam
param
);
/**
/**
*
分页
获取聊天室成员入参
* 获取聊天室成员入参
* @param param
* @param param
* @return
* @return
*/
*/
List
<
ChatRoomMemberVo
>
listChatRoomMember
(
ChatRoomMemberPageParam
param
);
List
<
ChatRoomMemberVo
>
listChatRoomMember
(
ChatRoomMemberPageParam
param
);
/**
* 获取会话信息
* @param param
* @return
*/
List
<
ConversationVo
>
listConversation
(
ListConversationParam
param
);
}
}
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
View file @
091707e7
...
@@ -26,6 +26,7 @@ import com.wecloud.im.param.ImConversationQueryParam;
...
@@ -26,6 +26,7 @@ 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.IntoChatRoomParam
;
import
com.wecloud.im.param.ListConversationMembersParam
;
import
com.wecloud.im.param.ListConversationMembersParam
;
import
com.wecloud.im.param.ListConversationParam
;
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
;
...
@@ -66,6 +67,7 @@ import io.geekidea.springbootplus.framework.core.pagination.PageInfo;
...
@@ -66,6 +67,7 @@ import io.geekidea.springbootplus.framework.core.pagination.PageInfo;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.annotation.CacheConfig
;
import
org.springframework.cache.annotation.CacheConfig
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.CacheEvict
;
...
@@ -1038,11 +1040,12 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
...
@@ -1038,11 +1040,12 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
/**
/**
* 发送会话配置变更事件
* 发送会话配置变更事件
* @Author luozh
*
* @Date 2022年04月27日 01:52:54
* @param currentClient 当前client信息
* @param currentClient 当前client信息
* @param conversationId 会话id
* @param conversationId 会话id
* @param msgType 消息类型
* @param msgType 消息类型
* @Author luozh
* @Date 2022年04月27日 01:52:54
* @Return
* @Return
*/
*/
private
void
sendConversationSettingChangeMsg
(
ImClient
currentClient
,
Long
conversationId
,
Integer
msgType
)
{
private
void
sendConversationSettingChangeMsg
(
ImClient
currentClient
,
Long
conversationId
,
Integer
msgType
)
{
...
@@ -1080,13 +1083,14 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
...
@@ -1080,13 +1083,14 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
/**
/**
* 发送会话事件消息至群成员列表
* 发送会话事件消息至群成员列表
* @Author luozh
*
* @Date 2022年04月27日 02:11:19
* @param conversationId 会话id
* @param conversationId 会话id
* @param membersList 成员列表
* @param membersList 成员列表
* @param appId appId
* @param appId appId
* @param sender 发送者
* @param sender 发送者
* @param content 消息内容
* @param content 消息内容
* @Author luozh
* @Date 2022年04月27日 02:11:19
*/
*/
private
void
sendMsgToMembers
(
Long
conversationId
,
List
<
ImConversationMembers
>
membersList
,
Long
appId
,
private
void
sendMsgToMembers
(
Long
conversationId
,
List
<
ImConversationMembers
>
membersList
,
Long
appId
,
String
sender
,
Map
content
,
ImMessage
message
)
{
String
sender
,
Map
content
,
ImMessage
message
)
{
...
@@ -1110,13 +1114,14 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
...
@@ -1110,13 +1114,14 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
/**
/**
* 发送会话事件消息至指定成员
* 发送会话事件消息至指定成员
* @Author luozh
*
* @Date 2022年04月27日 03:11:00
* @param conversationId 会话id
* @param conversationId 会话id
* @param appId appId
* @param appId appId
* @param sender 发送者
* @param sender 发送者
* @param receiverClientId 接收者client id
* @param receiverClientId 接收者client id
* @param message
* @param message
* @Author luozh
* @Date 2022年04月27日 03:11:00
*/
*/
private
void
sendEventMsgToMember
(
Long
conversationId
,
Long
appId
,
String
sender
,
private
void
sendEventMsgToMember
(
Long
conversationId
,
Long
appId
,
String
sender
,
Long
receiverClientId
,
Map
<
String
,
Object
>
content
,
ImMessage
message
)
{
Long
receiverClientId
,
Map
<
String
,
Object
>
content
,
ImMessage
message
)
{
...
@@ -1133,12 +1138,13 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
...
@@ -1133,12 +1138,13 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
/**
/**
* 发送会话事件消息
* 发送会话事件消息
* @Author luozh
*
* @Date 2022年04月27日 03:11:34
* @param conversationId 会话id
* @param conversationId 会话id
* @param sender 发送者
* @param sender 发送者
* @param receiverClientId 接收者client id
* @param receiverClientId 接收者client id
* @param content 消息内容
* @param content 消息内容
* @Author luozh
* @Date 2022年04月27日 03:11:34
*/
*/
private
void
sendConversationEventMsg
(
Long
conversationId
,
String
sender
,
private
void
sendConversationEventMsg
(
Long
conversationId
,
String
sender
,
Long
receiverClientId
,
Map
<
String
,
Object
>
content
,
ImMessage
message
)
{
Long
receiverClientId
,
Map
<
String
,
Object
>
content
,
ImMessage
message
)
{
...
@@ -1164,6 +1170,7 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
...
@@ -1164,6 +1170,7 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
responseModel
.
setReqId
(
null
);
responseModel
.
setReqId
(
null
);
channelSender
.
sendMsg
(
responseModel
,
receiverClientId
);
channelSender
.
sendMsg
(
responseModel
,
receiverClientId
);
}
}
@Override
@Override
public
Boolean
intoChatRoom
(
IntoChatRoomParam
param
)
{
public
Boolean
intoChatRoom
(
IntoChatRoomParam
param
)
{
// 获取当前client
// 获取当前client
...
@@ -1289,6 +1296,29 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
...
@@ -1289,6 +1296,29 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
return
result
;
return
result
;
}
}
@Override
public
List
<
ConversationVo
>
listConversation
(
ListConversationParam
param
)
{
if
(
CollectionUtils
.
isEmpty
(
param
.
getConversationIds
()))
{
throw
new
BusinessException
(
"会话id列表不可为空"
);
}
List
<
ConversationVo
>
conversationVoList
=
Lists
.
newArrayList
();
List
<
ImConversation
>
conversations
=
imConversationMapper
.
selectList
(
new
QueryWrapper
<
ImConversation
>().
lambda
()
.
eq
(
ImConversation:
:
getChatType
,
param
.
getChatType
())
.
in
(
ImConversation:
:
getId
,
param
.
getConversationIds
())
.
orderByDesc
(
ImConversation:
:
getId
)
);
if
(
CollectionUtils
.
isEmpty
(
conversations
))
{
return
conversationVoList
;
}
for
(
ImConversation
conversation
:
conversations
)
{
ConversationVo
conversationVo
=
new
ConversationVo
();
BeanUtils
.
copyProperties
(
conversation
,
conversationVo
);
conversationVoList
.
add
(
conversationVo
);
}
return
conversationVoList
;
}
private
ImConversationCreateVo
createChatRoom
(
ImConversationCreate
imConversationCreate
,
ImClient
createClient
)
{
private
ImConversationCreateVo
createChatRoom
(
ImConversationCreate
imConversationCreate
,
ImClient
createClient
)
{
// 会话id
// 会话id
Long
chatRoomId
=
SnowflakeUtil
.
getId
();
Long
chatRoomId
=
SnowflakeUtil
.
getId
();
...
...
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