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
04045995
Commit
04045995
authored
Mar 10, 2022
by
Future
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
事件消息重复获取问题处理
parent
bcc9cbeb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
38 additions
and
39 deletions
+38
-39
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
+38
-39
No files found.
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
View file @
04045995
...
...
@@ -535,27 +535,26 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
}
// 删除所有成员
imConversationMembersService
.
deleteByConversationId
(
param
.
getConversationId
());
// 保存事件消息
ImMessage
imMessage
=
new
ImMessage
();
Map
<
String
,
Object
>
content
=
new
HashMap
<>();
content
.
put
(
"operator"
,
currentClient
.
getClientId
());
imMessage
.
setContent
(
JsonUtils
.
encodeJson
(
content
));
// 保存消息至消息表
imMessage
.
setId
(
SnowflakeUtil
.
getId
());
imMessage
.
setMsgType
(
MsgTypeEnum
.
CONVERSATION_DISBAND
.
getUriCode
());
imMessage
.
setCreateTime
(
new
Date
());
imMessage
.
setFkAppid
(
currentClient
.
getFkAppid
());
imMessage
.
setSender
(
currentClient
.
getId
());
imMessage
.
setWithdraw
(
false
);
imMessage
.
setEvent
(
true
);
imMessage
.
setSystemFlag
(
false
);
imMessage
.
setSendStatus
(
2
);
imMessage
.
setFkConversationId
(
param
.
getConversationId
());
imMessageService
.
save
(
imMessage
);
for
(
ImConversationMembers
member
:
membersList
)
{
// 不关心事件是否发送成功
try
{
// 保存事件消息
ImMessage
imMessage
=
new
ImMessage
();
Map
<
String
,
Object
>
content
=
new
HashMap
<>();
content
.
put
(
"operator"
,
currentClient
.
getClientId
());
content
.
put
(
"passivityOperator"
,
member
.
getClientId
());
imMessage
.
setContent
(
JsonUtils
.
encodeJson
(
content
));
// 保存消息至消息表
imMessage
.
setId
(
SnowflakeUtil
.
getId
());
imMessage
.
setMsgType
(
MsgTypeEnum
.
CONVERSATION_DISBAND
.
getUriCode
());
imMessage
.
setCreateTime
(
new
Date
());
imMessage
.
setFkAppid
(
currentClient
.
getFkAppid
());
imMessage
.
setSender
(
currentClient
.
getId
());
imMessage
.
setWithdraw
(
false
);
imMessage
.
setEvent
(
true
);
imMessage
.
setSystemFlag
(
false
);
imMessage
.
setSendStatus
(
2
);
imMessage
.
setFkConversationId
(
param
.
getConversationId
());
imMessageService
.
save
(
imMessage
);
// 给所有成员下发事件消息
ImClient
imClientReceiver
=
imClientService
.
getOne
(
new
QueryWrapper
<
ImClient
>().
lambda
()
.
eq
(
ImClient:
:
getFkAppid
,
currentClient
.
getFkAppid
())
...
...
@@ -795,30 +794,30 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
if
(
membersList
.
isEmpty
())
{
throw
new
BusinessException
(
"群聊成员列表为空"
);
}
// 保存事件消息
ImMessage
imMessage
=
new
ImMessage
();
Map
<
String
,
Object
>
content
=
new
HashMap
<>();
content
.
put
(
"operator"
,
currentClient
.
getClientId
());
imMessage
.
setContent
(
JsonUtils
.
encodeJson
(
content
));
// 保存消息至消息表
imMessage
.
setId
(
SnowflakeUtil
.
getId
());
Integer
msgType
=
MutedEnum
.
NO
.
getCode
().
equals
(
param
.
getMutedType
())
?
MsgTypeEnum
.
CONVERSATION_MUTED_CANCEL
.
getUriCode
()
:
MsgTypeEnum
.
CONVERSATION_MUTED
.
getUriCode
();
imMessage
.
setMsgType
(
msgType
);
imMessage
.
setCreateTime
(
new
Date
());
imMessage
.
setFkAppid
(
currentClient
.
getFkAppid
());
imMessage
.
setSender
(
currentClient
.
getId
());
imMessage
.
setWithdraw
(
false
);
imMessage
.
setEvent
(
true
);
imMessage
.
setSystemFlag
(
false
);
imMessage
.
setSendStatus
(
2
);
imMessage
.
setFkConversationId
(
param
.
getConversationId
());
imMessageService
.
save
(
imMessage
);
for
(
ImConversationMembers
member
:
membersList
)
{
// 不关心事件是否发送成功
try
{
// 保存事件消息
ImMessage
imMessage
=
new
ImMessage
();
Map
<
String
,
Object
>
content
=
new
HashMap
<>();
content
.
put
(
"operator"
,
currentClient
.
getClientId
());
content
.
put
(
"passivityOperator"
,
member
.
getClientId
());
imMessage
.
setContent
(
JsonUtils
.
encodeJson
(
content
));
// 保存消息至消息表
imMessage
.
setId
(
SnowflakeUtil
.
getId
());
Integer
msgType
=
MutedEnum
.
NO
.
getCode
().
equals
(
param
.
getMutedType
())
?
MsgTypeEnum
.
CONVERSATION_MUTED_CANCEL
.
getUriCode
()
:
MsgTypeEnum
.
CONVERSATION_MUTED
.
getUriCode
();
imMessage
.
setMsgType
(
msgType
);
imMessage
.
setCreateTime
(
new
Date
());
imMessage
.
setFkAppid
(
currentClient
.
getFkAppid
());
imMessage
.
setSender
(
currentClient
.
getId
());
imMessage
.
setWithdraw
(
false
);
imMessage
.
setEvent
(
true
);
imMessage
.
setSystemFlag
(
false
);
imMessage
.
setSendStatus
(
2
);
imMessage
.
setFkConversationId
(
param
.
getConversationId
());
imMessageService
.
save
(
imMessage
);
// 给所有成员下发事件消息
ImClient
imClientReceiver
=
imClientService
.
getOne
(
new
QueryWrapper
<
ImClient
>().
lambda
()
.
eq
(
ImClient:
:
getFkAppid
,
currentClient
.
getFkAppid
())
...
...
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