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
6087944f
Commit
6087944f
authored
Oct 08, 2022
by
Future
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
发消息优化
parent
61a88477
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
31 additions
and
5 deletions
+31
-5
core/src/main/java/com/wecloud/im/action/NormalChatAction.java
+4
-0
core/src/main/java/com/wecloud/im/service/impl/ImMessageServiceImpl.java
+27
-5
No files found.
core/src/main/java/com/wecloud/im/action/NormalChatAction.java
View file @
6087944f
...
@@ -175,6 +175,10 @@ public class NormalChatAction {
...
@@ -175,6 +175,10 @@ public class NormalChatAction {
final
Boolean
isPush
=
ehcacheService
.
getIsPush
(
"push"
+
conversation
.
getId
());
final
Boolean
isPush
=
ehcacheService
.
getIsPush
(
"push"
+
conversation
.
getId
());
// 多线程处理消息下发
// 多线程处理消息下发
for
(
ImConversationMembers
member
:
membersList
)
{
for
(
ImConversationMembers
member
:
membersList
)
{
if
(
member
.
getFkClientId
().
equals
(
imClientSender
.
getId
()))
{
// 不给自己发
continue
;
}
SendMsgThreadPool
.
SEND_MSG_THREAD_POOL_EXECUTOR
.
execute
(()
->
{
SendMsgThreadPool
.
SEND_MSG_THREAD_POOL_EXECUTOR
.
execute
(()
->
{
this
.
sendMsgToMember
(
imApplication
,
member
,
imMessageOnlineSend
,
data
.
getPush
(),
isPush
);
this
.
sendMsgToMember
(
imApplication
,
member
,
imMessageOnlineSend
,
data
.
getPush
(),
isPush
);
});
});
...
...
core/src/main/java/com/wecloud/im/service/impl/ImMessageServiceImpl.java
View file @
6087944f
package
com
.
wecloud
.
im
.
service
.
impl
;
package
com
.
wecloud
.
im
.
service
.
impl
;
import
com.wecloud.im.param.ImConversationQueryVo
;
import
com.wecloud.im.post.MessageBuilder
;
import
com.wecloud.im.post.MessageBuilder
;
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
;
...
@@ -667,17 +668,14 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
...
@@ -667,17 +668,14 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
this
.
save
(
message
);
this
.
save
(
message
);
// 拼装发送消息体
// 拼装发送消息体
ImMessageOnlineSend
imMessageOnlineSend
=
assembleImMessageOnlineSend
(
message
,
sender
,
appId
);
ImMessageOnlineSend
imMessageOnlineSend
=
assembleImMessageOnlineSend
(
message
,
sender
,
appId
);
// 入库 保存收件箱
batchSaveInbox
(
application
,
senderClientId
,
conversation
,
imMessageOnlineSend
.
getMsgId
(),
membersList
);
// 发送消息
// 发送消息
for
(
ImConversationMembers
members
:
membersList
)
{
for
(
ImConversationMembers
members
:
membersList
)
{
if
(
members
.
getClientId
().
equals
(
senderClientId
)
&&
!
param
.
getIncludeSender
())
{
if
(
members
.
getClientId
().
equals
(
senderClientId
)
&&
!
param
.
getIncludeSender
())
{
// 是否是发送者 且includeSender不为true
// 是否是发送者 且includeSender不为true
continue
;
continue
;
}
}
// 入库 保存收件箱
saveImInbox
(
application
,
conversation
.
getId
(),
imMessageOnlineSend
.
getMsgId
(),
members
,
SnowflakeUtil
.
getId
());
// 在线用户直接发消息
// 在线用户直接发消息
sendMsgForOnline
(
members
.
getFkClientId
(),
imMessageOnlineSend
);
sendMsgForOnline
(
members
.
getFkClientId
(),
imMessageOnlineSend
);
...
@@ -689,6 +687,30 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
...
@@ -689,6 +687,30 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
return
true
;
return
true
;
}
}
private
void
batchSaveInbox
(
ImApplication
imApplication
,
String
senderClientId
,
ImConversation
conversation
,
long
messageId
,
List
<
ImConversationMembers
>
membersList
)
{
List
<
ImInbox
>
inboxes
=
Lists
.
newArrayList
();
for
(
ImConversationMembers
member
:
membersList
)
{
if
(
senderClientId
.
equals
(
member
.
getClientId
()))
{
continue
;
}
ImInbox
imInbox
=
new
ImInbox
();
imInbox
.
setId
(
SnowflakeUtil
.
getId
());
imInbox
.
setCreateTime
(
new
Date
());
imInbox
.
setFkAppid
(
imApplication
.
getId
());
imInbox
.
setReceiver
(
member
.
getFkClientId
());
imInbox
.
setFkMsgId
(
messageId
);
imInbox
.
setReadMsgStatus
(
0
);
imInbox
.
setReceiverMsgStatus
(
0
);
imInbox
.
setFkConversationId
(
conversation
.
getId
());
inboxes
.
add
(
imInbox
);
}
if
(
CollectionUtils
.
isNotEmpty
(
inboxes
))
{
imInboxService
.
saveBatch
(
inboxes
);
}
}
@Override
@Override
public
Boolean
groupStatusMessagePublish
(
GroupChatStatusMessageParam
param
)
{
public
Boolean
groupStatusMessagePublish
(
GroupChatStatusMessageParam
param
)
{
Long
appId
=
SecurityUtils
.
getCurrentAppId
();
Long
appId
=
SecurityUtils
.
getCurrentAppId
();
...
...
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