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
373df364
Commit
373df364
authored
May 23, 2022
by
Future
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/xiaohudou_20220427' into xiaohudou_20220427
parents
cc8701fb
229eeaf5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
58 additions
and
18 deletions
+58
-18
core/src/main/java/com/wecloud/im/param/GroupChatStatusMessageParam.java
+6
-0
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
+5
-4
core/src/main/java/com/wecloud/im/service/impl/ImMessageServiceImpl.java
+37
-14
im-sdk/src/main/java/com/wecloud/im/sdk/model/GroupChatStatusMessage.java
+5
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/PublishGroupChatStatusMessageRequest.java
+5
-0
No files found.
core/src/main/java/com/wecloud/im/param/GroupChatStatusMessageParam.java
View file @
373df364
...
...
@@ -29,6 +29,12 @@ public class GroupChatStatusMessageParam {
private
String
toGroupIds
;
/**
* 指定一个或多个用户
*/
@ApiModelProperty
(
"指定一个或多个用户"
)
private
String
toUserIds
;
/**
* 消息类型
*/
@NotEmpty
(
message
=
"消息类型不能为空"
)
...
...
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
View file @
373df364
...
...
@@ -164,10 +164,6 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
throw
new
BusinessException
(
ApiCode
.
PARAMETER_EXCEPTION
);
}
if
(
CollectionUtils
.
isEmpty
(
imConversationCreate
.
getClientIds
()))
{
log
.
info
(
"未找到群成员信息"
);
throw
new
BusinessException
(
ApiCode
.
PARAMETER_EXCEPTION
);
}
Integer
chatType
=
imConversationCreate
.
getChatType
();
String
name
=
imConversationCreate
.
getName
();
String
attributes
=
imConversationCreate
.
getAttributes
();
...
...
@@ -1304,6 +1300,11 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
List
<
String
>
memberUserIds
,
String
name
,
String
attributes
)
{
if
(
CollectionUtils
.
isEmpty
(
memberUserIds
))
{
log
.
info
(
"未找到群成员信息"
);
throw
new
BusinessException
(
ApiCode
.
PARAMETER_EXCEPTION
);
}
// 判断client是否都存在
List
<
ImClient
>
memberClients
=
imClientService
.
list
(
Wrappers
.<
ImClient
>
lambdaQuery
()
...
...
core/src/main/java/com/wecloud/im/service/impl/ImMessageServiceImpl.java
View file @
373df364
...
...
@@ -22,6 +22,7 @@ import java.util.function.Function;
import
java.util.stream.Collectors
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.ApplicationEventPublisher
;
...
...
@@ -604,17 +605,25 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
if
(
conversationList
.
size
()
<=
0
)
{
throw
new
BusinessException
(
"群聊ids为 "
+
conversationIdsStr
+
" 的群聊列表不存在"
);
}
conversationList
.
forEach
(
conversation
->
{
// 是否指定用户
List
<
String
>
toUserIds
=
Collections
.
emptyList
();
boolean
isToUser
=
false
;
if
(
StringUtils
.
isNotBlank
(
param
.
getToUserIds
()))
{
isToUser
=
true
;
toUserIds
=
Arrays
.
asList
(
param
.
getToUserIds
().
split
(
","
));
}
for
(
ImConversation
conversation
:
conversationList
)
{
// 获取群成员
List
<
ImConversationMembers
>
membersList
=
imConversationMembersService
.
list
(
List
<
ImConversationMembers
>
membersList
=
Collections
.
emptyList
();
if
(
isToUser
)
{
// 指定群成员
membersList
=
imConversationMembersService
.
list
(
new
QueryWrapper
<
ImConversationMembers
>().
lambda
()
.
eq
(
ImConversationMembers:
:
getFkConversationId
,
conversation
.
getId
()).
in
(
ImConversationMembers:
:
getClientId
,
toUserIds
));
}
else
{
membersList
=
imConversationMembersService
.
list
(
new
QueryWrapper
<
ImConversationMembers
>().
lambda
()
.
eq
(
ImConversationMembers:
:
getFkConversationId
,
conversation
.
getId
()));
if
(
param
.
getToUserIds
()
!=
null
&&
!
param
.
getToUserIds
().
isEmpty
())
{
// 定向发送
membersList
=
membersList
.
stream
().
filter
(
members
->
param
.
getToUserIds
().
contains
(
members
.
getClientId
())).
collect
(
Collectors
.
toList
());
}
// 组装消息
...
...
@@ -640,8 +649,8 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
// 离线消息推送
pushMsgToOfflineMembers
(
application
,
members
,
param
.
getPushContent
(),
param
.
getPushExt
());
}
}
});
return
true
;
}
...
...
@@ -663,12 +672,27 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
if
(
conversationList
.
size
()
<=
0
)
{
throw
new
BusinessException
(
"群聊ids为 "
+
conversationIdsStr
+
" 的群聊列表不存在"
);
}
conversationList
.
forEach
(
conversation
->
{
// 是否指定用户
List
<
String
>
toUserIds
=
Collections
.
emptyList
();
boolean
isToUser
=
false
;
if
(
StringUtils
.
isNotBlank
(
param
.
getToUserIds
()))
{
isToUser
=
true
;
toUserIds
=
Arrays
.
asList
(
param
.
getToUserIds
().
split
(
","
));
}
// 开始发送
for
(
ImConversation
conversation
:
conversationList
)
{
// 获取群成员
List
<
ImConversationMembers
>
membersList
=
imConversationMembersService
.
list
(
List
<
ImConversationMembers
>
membersList
=
Collections
.
emptyList
();
if
(
isToUser
)
{
// 指定群成员
membersList
=
imConversationMembersService
.
list
(
new
QueryWrapper
<
ImConversationMembers
>().
lambda
()
.
eq
(
ImConversationMembers:
:
getFkConversationId
,
conversation
.
getId
()).
in
(
ImConversationMembers:
:
getClientId
,
toUserIds
));
}
else
{
membersList
=
imConversationMembersService
.
list
(
new
QueryWrapper
<
ImConversationMembers
>().
lambda
()
.
eq
(
ImConversationMembers:
:
getFkConversationId
,
conversation
.
getId
()));
}
// 组装消息
ImMessage
message
=
assembleImMessage
(
appId
,
sender
,
conversation
.
getId
(),
param
.
getMessageType
(),
true
,
...
...
@@ -687,8 +711,7 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
// 在线用户直接发消息
sendMsgForOnline
(
members
.
getFkClientId
(),
imMessageOnlineSend
);
}
});
}
return
true
;
}
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/model/GroupChatStatusMessage.java
View file @
373df364
...
...
@@ -22,6 +22,11 @@ public class GroupChatStatusMessage {
private
String
toGroupIds
;
/**
* 指定一个或多个用户
*/
private
String
toUserIds
;
/**
* 消息类型
*/
private
String
messageType
;
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/model/PublishGroupChatStatusMessageRequest.java
View file @
373df364
...
...
@@ -24,6 +24,11 @@ public class PublishGroupChatStatusMessageRequest extends WebServiceRequest {
private
String
toGroupIds
;
/**
* 指定一个或多个用户
*/
private
String
toUserIds
;
/**
* 消息类型
*/
private
String
messageType
;
...
...
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