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
29ae6d69
Commit
29ae6d69
authored
May 17, 2022
by
罗长华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
joinGroup增加inviterUserId入参
parent
e1e0fa63
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
51 additions
and
8 deletions
+51
-8
core/src/main/java/com/wecloud/im/controller/ImGroupController.java
+3
-2
core/src/main/java/com/wecloud/im/param/group/JoinGroupParam.java
+10
-0
core/src/main/java/com/wecloud/im/service/ImGroupService.java
+1
-1
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
+0
-2
core/src/main/java/com/wecloud/im/service/impl/ImGroupServiceImpl.java
+28
-1
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
+1
-1
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
+1
-1
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImGroupOperation.java
+2
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/JoinGroupRequest.java
+5
-0
No files found.
core/src/main/java/com/wecloud/im/controller/ImGroupController.java
View file @
29ae6d69
...
...
@@ -7,6 +7,7 @@ import lombok.extern.slf4j.Slf4j;
import
java.util.Arrays
;
import
java.util.List
;
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.RequestMapping
;
...
...
@@ -68,10 +69,10 @@ public class ImGroupController {
* @Return
*/
@PostMapping
(
"/joinGroup"
)
public
ApiResult
<
Integer
>
joinGroup
(
@RequestBody
JoinGroupParam
param
)
{
public
ApiResult
<
Integer
>
joinGroup
(
@
Validated
@
RequestBody
JoinGroupParam
param
)
{
log
.
info
(
"加入群组请求 参数: {}"
,
JSON
.
toJSONString
(
param
));
List
<
String
>
memberIds
=
Arrays
.
asList
(
param
.
getUserIds
().
split
(
","
));
return
ApiResult
.
ok
(
groupService
.
joinGroup
(
param
.
getGroupId
(),
memberIds
));
return
ApiResult
.
ok
(
groupService
.
joinGroup
(
param
.
get
InviterUserId
(),
param
.
get
GroupId
(),
memberIds
));
}
/**
...
...
core/src/main/java/com/wecloud/im/param/group/JoinGroupParam.java
View file @
29ae6d69
...
...
@@ -3,6 +3,8 @@ package com.wecloud.im.param.group;
import
lombok.Getter
;
import
lombok.Setter
;
import
javax.validation.constraints.NotBlank
;
/**
* 加入群
* @Author luozh
...
...
@@ -14,13 +16,21 @@ import lombok.Setter;
public
class
JoinGroupParam
{
/**
* 邀请进群的用户id
*/
@NotBlank
(
message
=
"inviterUserId 不能为空"
)
private
String
inviterUserId
;
/**
* 要加入群的用户 ID
*/
@NotBlank
(
message
=
"userIds 不能为空"
)
private
String
userIds
;
/**
* 要加入的群的群组 ID
*/
@NotBlank
(
message
=
"groupId 不能为空"
)
private
String
groupId
;
}
core/src/main/java/com/wecloud/im/service/ImGroupService.java
View file @
29ae6d69
...
...
@@ -41,7 +41,7 @@ public interface ImGroupService {
* @param memberClientIds
* @Return
*/
Integer
joinGroup
(
String
groupId
,
List
<
String
>
memberClientIds
);
Integer
joinGroup
(
String
inviterUserId
,
String
groupId
,
List
<
String
>
memberClientIds
);
/**
* 离开群组
...
...
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
View file @
29ae6d69
...
...
@@ -504,10 +504,8 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
memberJoinTypeMsg
=
"由 <@>"
+
createClient
.
getClientId
()
+
"<@>邀请加入该会话"
;
}
else
if
(
ChatTypeEnum
.
NORMAL_GROUP
.
getCode
().
equals
(
imConversation
.
getChatType
())
||
ChatTypeEnum
.
THOUSAND_GROUP
.
getCode
().
equals
(
imConversation
.
getChatType
()))
{
memberJoinTypeMsg
=
DateUtil
.
format
(
now
,
CHINESE_DATE_PATTERN
)
+
" <@>"
+
createClient
.
getClientId
()
+
"<@>邀请进聊"
;
;
}
else
if
(
ChatTypeEnum
.
CHAT_ROOM
.
getCode
().
equals
(
imConversation
.
getChatType
()))
{
memberJoinTypeMsg
=
DateUtil
.
format
(
now
,
CHINESE_DATE_PATTERN
)
+
" <@>"
+
createClient
.
getClientId
()
+
"<@>邀请进入聊天室"
;
;
}
imConversationMembersService
.
save
(
imConversationMembers2
);
...
...
core/src/main/java/com/wecloud/im/service/impl/ImGroupServiceImpl.java
View file @
29ae6d69
...
...
@@ -26,6 +26,7 @@ import com.wecloud.im.mapper.ImConversationMapper;
import
com.wecloud.im.param.ListConversationMembersParam
;
import
com.wecloud.im.param.add.ServerImConversationCreate
;
import
com.wecloud.im.param.group.MutedMembersParam
;
import
com.wecloud.im.post.Couriers
;
import
com.wecloud.im.post.MessageBuilder
;
import
com.wecloud.im.sdk.enums.ChatTypeEnum
;
import
com.wecloud.im.sdk.enums.GroupRoleEnum
;
...
...
@@ -38,6 +39,7 @@ import com.wecloud.im.service.ImGroupService;
import
com.wecloud.im.service.ImMessageService
;
import
com.wecloud.im.vo.ConversationMemberVo
;
import
com.wecloud.im.ws.enums.MsgTypeEnum
;
import
com.wecloud.im.ws.enums.WsResponseCmdEnum
;
import
com.wecloud.imserver.client.model.enums.DeviceTypeEnum
;
import
com.wecloud.utils.JsonUtils
;
import
com.wecloud.utils.SnowflakeUtil
;
...
...
@@ -53,6 +55,11 @@ import com.wecloud.utils.SnowflakeUtil;
public
class
ImGroupServiceImpl
implements
ImGroupService
{
/**
* 投递员
*/
private
final
Couriers
couriers
;
/**
* 应用服务
*/
private
final
ImApplicationService
applicationService
;
...
...
@@ -161,8 +168,11 @@ public class ImGroupServiceImpl implements ImGroupService {
}
@Override
public
Integer
joinGroup
(
String
groupId
,
List
<
String
>
memberClientIds
)
{
public
Integer
joinGroup
(
String
inviterUserId
,
String
groupId
,
List
<
String
>
memberClientIds
)
{
Long
appId
=
SecurityUtils
.
getCurrentAppId
();
ImClient
inviter
=
clientService
.
getCacheImClient
(
appId
,
inviterUserId
);
ImApplication
imApplication
=
applicationService
.
getCacheById
(
appId
);
// 查询会话
ImConversation
conversation
=
...
...
@@ -209,6 +219,23 @@ public class ImGroupServiceImpl implements ImGroupService {
// 将群成员数量增加
imConversationMapper
.
addMemberCount
(
imApplication
.
getId
(),
conversation
.
getId
(),
clientList
.
size
());
for
(
ImClient
newMember
:
clientList
)
{
// ws邀请事件通知给群内其他人 ----------
// 生成消息id
Map
<
String
,
Object
>
content
=
new
HashMap
<>();
//操作的client ID
content
.
put
(
"operator"
,
inviter
.
getClientId
());
//被操作的client ID
content
.
put
(
"passivityOperator"
,
newMember
.
getClientId
());
ImMessage
imMessage
=
MessageBuilder
.
buildEventMessage
(
MsgTypeEnum
.
INVITE_CLIENT_JOIN_CONVERSATION
,
imApplication
,
inviter
,
conversation
,
JsonUtils
.
encodeJson
(
content
));
boolean
save
=
imMessageService
.
save
(
imMessage
);
// 发送给在群内的成员
conversationService
.
sendMsgToMembers
(
conversation
,
existMemberList
,
inviter
,
imMessage
,
content
);
// 发送给被邀请人
couriers
.
deliver
(
imMessage
,
content
,
inviter
,
newMember
,
WsResponseCmdEnum
.
CONVERSATION_EVENT_MSG
);
}
return
clientList
.
size
();
}
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
View file @
29ae6d69
...
...
@@ -239,7 +239,7 @@ public interface WecloudIm {
* @param userIds 要加入群的用户id
* @Return 加入结果 true/false
*/
Integer
joinGroup
(
String
groupId
,
String
userIds
);
Integer
joinGroup
(
String
inviterUserId
,
String
groupId
,
String
userIds
);
/**
* 离开群组
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
View file @
29ae6d69
...
...
@@ -254,7 +254,7 @@ public class WecloudImClient implements WecloudIm {
}
@Override
public
Integer
joinGroup
(
String
groupId
,
String
userIds
)
{
public
Integer
joinGroup
(
String
inviterUserId
,
String
groupId
,
String
userIds
)
{
JoinGroupRequest
joinGroupRequest
=
JoinGroupRequest
.
builder
().
userIds
(
userIds
).
groupId
(
groupId
).
build
();
return
imGroupOperation
.
joinGroup
(
joinGroupRequest
);
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImGroupOperation.java
View file @
29ae6d69
...
...
@@ -99,9 +99,11 @@ public class WecloudImGroupOperation extends WecloudImOperation {
* @Return
*/
public
Integer
joinGroup
(
JoinGroupRequest
joinGroupRequest
)
{
String
inviterUserId
=
joinGroupRequest
.
getInviterUserId
();
String
groupId
=
joinGroupRequest
.
getGroupId
();
String
userIds
=
joinGroupRequest
.
getUserIds
();
// 必填参数校验
assertParameterNotBlank
(
inviterUserId
,
"inviterUserId"
);
assertParameterNotBlank
(
groupId
,
"groupId"
);
assertParameterNotBlank
(
userIds
,
"userIds"
);
// 校验通过 构建参数
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/model/JoinGroupRequest.java
View file @
29ae6d69
...
...
@@ -16,6 +16,11 @@ import lombok.Setter;
public
class
JoinGroupRequest
extends
WebServiceRequest
{
/**
* 邀请人userId
*/
private
String
inviterUserId
;
/**
* 要加入群的用户 ID
*/
private
String
userIds
;
...
...
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