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
e1e0fa63
Commit
e1e0fa63
authored
May 16, 2022
by
罗长华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sdk增加群禁言方法
parent
26287cf0
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
163 additions
and
0 deletions
+163
-0
core/src/main/java/com/wecloud/im/controller/ImGroupController.java
+14
-0
core/src/main/java/com/wecloud/im/param/group/MutedMembersParam.java
+23
-0
core/src/main/java/com/wecloud/im/service/ImGroupService.java
+11
-0
core/src/main/java/com/wecloud/im/service/impl/ImGroupServiceImpl.java
+34
-0
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
+5
-0
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
+11
-0
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
+8
-0
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImGroupOperation.java
+24
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/MutedGroupMemberRequest.java
+33
-0
No files found.
core/src/main/java/com/wecloud/im/controller/ImGroupController.java
View file @
e1e0fa63
...
@@ -18,6 +18,7 @@ import com.wecloud.im.param.group.DismissGroupParam;
...
@@ -18,6 +18,7 @@ import com.wecloud.im.param.group.DismissGroupParam;
import
com.wecloud.im.param.group.JoinGroupParam
;
import
com.wecloud.im.param.group.JoinGroupParam
;
import
com.wecloud.im.param.group.LeaveGroupParam
;
import
com.wecloud.im.param.group.LeaveGroupParam
;
import
com.wecloud.im.param.group.ListGroupMembersParam
;
import
com.wecloud.im.param.group.ListGroupMembersParam
;
import
com.wecloud.im.param.group.MutedMembersParam
;
import
com.wecloud.im.service.ImGroupService
;
import
com.wecloud.im.service.ImGroupService
;
/**
/**
...
@@ -98,4 +99,17 @@ public class ImGroupController {
...
@@ -98,4 +99,17 @@ public class ImGroupController {
log
.
info
(
"获取群组成员请求 参数: {}"
,
JSON
.
toJSONString
(
param
));
log
.
info
(
"获取群组成员请求 参数: {}"
,
JSON
.
toJSONString
(
param
));
return
ApiResult
.
ok
(
groupService
.
listGroupMembers
(
param
.
getGroupId
()));
return
ApiResult
.
ok
(
groupService
.
listGroupMembers
(
param
.
getGroupId
()));
}
}
/**
* 禁言群成员
* @Author luozh
* @Date 2022年05月10日 02:16:19
* @Return
* @return
*/
@PostMapping
(
"/mutedMembers"
)
public
ApiResult
<
Boolean
>
mutedMembers
(
@RequestBody
MutedMembersParam
param
)
{
log
.
info
(
"禁言群成员请求 参数: {}"
,
JSON
.
toJSONString
(
param
));
return
ApiResult
.
ok
(
groupService
.
mutedMembers
(
param
));
}
}
}
core/src/main/java/com/wecloud/im/param/group/MutedMembersParam.java
0 → 100644
View file @
e1e0fa63
package
com
.
wecloud
.
im
.
param
.
group
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* 禁言群成员入参
* @Author luozh
* @Date 2022年05月16日 19:42
* @Version 1.0
*/
@Data
public
class
MutedMembersParam
{
@ApiModelProperty
(
"群id"
)
private
String
groupId
;
@ApiModelProperty
(
"是否禁言"
)
private
Boolean
muted
;
@ApiModelProperty
(
"用户id多个用,隔开"
)
private
String
userIds
;
}
core/src/main/java/com/wecloud/im/service/ImGroupService.java
View file @
e1e0fa63
...
@@ -2,6 +2,8 @@ package com.wecloud.im.service;
...
@@ -2,6 +2,8 @@ package com.wecloud.im.service;
import
java.util.List
;
import
java.util.List
;
import
com.wecloud.im.param.group.MutedMembersParam
;
/**
/**
* 群服务
* 群服务
* @Author luozh
* @Author luozh
...
@@ -59,4 +61,13 @@ public interface ImGroupService {
...
@@ -59,4 +61,13 @@ public interface ImGroupService {
* @Return
* @Return
*/
*/
List
<
String
>
listGroupMembers
(
String
groupId
);
List
<
String
>
listGroupMembers
(
String
groupId
);
/**
* 禁言群成员
* @Author luozh
* @Date 2022年05月16日 07:43:41
* @param param
* @Return
*/
Boolean
mutedMembers
(
MutedMembersParam
param
);
}
}
core/src/main/java/com/wecloud/im/service/impl/ImGroupServiceImpl.java
View file @
e1e0fa63
...
@@ -5,6 +5,7 @@ import io.geekidea.springbootplus.framework.shiro.util.SecurityUtils;
...
@@ -5,6 +5,7 @@ import io.geekidea.springbootplus.framework.shiro.util.SecurityUtils;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
...
@@ -15,13 +16,16 @@ import org.springframework.stereotype.Service;
...
@@ -15,13 +16,16 @@ import org.springframework.stereotype.Service;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.google.common.collect.Lists
;
import
com.wecloud.im.entity.ImApplication
;
import
com.wecloud.im.entity.ImApplication
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImConversation
;
import
com.wecloud.im.entity.ImConversation
;
import
com.wecloud.im.entity.ImConversationMembers
;
import
com.wecloud.im.entity.ImConversationMembers
;
import
com.wecloud.im.entity.ImMessage
;
import
com.wecloud.im.entity.ImMessage
;
import
com.wecloud.im.mapper.ImConversationMapper
;
import
com.wecloud.im.mapper.ImConversationMapper
;
import
com.wecloud.im.param.ListConversationMembersParam
;
import
com.wecloud.im.param.add.ServerImConversationCreate
;
import
com.wecloud.im.param.add.ServerImConversationCreate
;
import
com.wecloud.im.param.group.MutedMembersParam
;
import
com.wecloud.im.post.MessageBuilder
;
import
com.wecloud.im.post.MessageBuilder
;
import
com.wecloud.im.sdk.enums.ChatTypeEnum
;
import
com.wecloud.im.sdk.enums.ChatTypeEnum
;
import
com.wecloud.im.sdk.enums.GroupRoleEnum
;
import
com.wecloud.im.sdk.enums.GroupRoleEnum
;
...
@@ -32,6 +36,7 @@ import com.wecloud.im.service.ImConversationMembersService;
...
@@ -32,6 +36,7 @@ import com.wecloud.im.service.ImConversationMembersService;
import
com.wecloud.im.service.ImConversationService
;
import
com.wecloud.im.service.ImConversationService
;
import
com.wecloud.im.service.ImGroupService
;
import
com.wecloud.im.service.ImGroupService
;
import
com.wecloud.im.service.ImMessageService
;
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.MsgTypeEnum
;
import
com.wecloud.imserver.client.model.enums.DeviceTypeEnum
;
import
com.wecloud.imserver.client.model.enums.DeviceTypeEnum
;
import
com.wecloud.utils.JsonUtils
;
import
com.wecloud.utils.JsonUtils
;
...
@@ -251,4 +256,33 @@ public class ImGroupServiceImpl implements ImGroupService {
...
@@ -251,4 +256,33 @@ public class ImGroupServiceImpl implements ImGroupService {
return
membersList
.
stream
().
map
(
ImConversationMembers:
:
getClientId
).
collect
(
Collectors
.
toList
());
return
membersList
.
stream
().
map
(
ImConversationMembers:
:
getClientId
).
collect
(
Collectors
.
toList
());
}
}
@Override
public
Boolean
mutedMembers
(
MutedMembersParam
param
)
{
Long
appId
=
SecurityUtils
.
getCurrentAppId
();
ImConversation
conversation
=
imConversationMapper
.
selectOne
(
Wrappers
.<
ImConversation
>
lambdaQuery
().
eq
(
ImConversation:
:
getFkAppid
,
appId
).
eq
(
ImConversation:
:
getId
,
param
.
getGroupId
()));
if
(
conversation
==
null
)
{
throw
new
BusinessException
(
"群组不存在"
);
}
ListConversationMembersParam
getMutedMemberParam
=
new
ListConversationMembersParam
();
getMutedMemberParam
.
setConversationId
(
conversation
.
getId
());
getMutedMemberParam
.
setClientIds
(
Arrays
.
asList
(
param
.
getUserIds
().
split
(
","
)));
List
<
ConversationMemberVo
>
mutedMembers
=
conversationMembersService
.
getImConversationMembersList
(
getMutedMemberParam
);
List
<
ImConversationMembers
>
mutedMemberList
=
Lists
.
newArrayList
();
for
(
ConversationMemberVo
mutedMember
:
mutedMembers
)
{
ImConversationMembers
saveMutedMember
=
new
ImConversationMembers
();
saveMutedMember
.
setId
(
mutedMember
.
getId
());
saveMutedMember
.
setUpdateTime
(
new
Date
());
Integer
mutedType
=
1
;
if
(
param
.
getMuted
())
{
mutedType
=
2
;
}
saveMutedMember
.
setMuted
(
mutedType
);
mutedMemberList
.
add
(
saveMutedMember
);
}
conversationMembersService
.
updateBatchById
(
mutedMemberList
);
return
true
;
}
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
View file @
e1e0fa63
...
@@ -136,5 +136,10 @@ public class ResourcePathConstants {
...
@@ -136,5 +136,10 @@ public class ResourcePathConstants {
*/
*/
public
static
final
String
REMARK_FRIEND_REQUEST
=
"/api/friend/sdk/remark"
;
public
static
final
String
REMARK_FRIEND_REQUEST
=
"/api/friend/sdk/remark"
;
/**
* 禁言群成员
*/
public
static
final
String
MUTED_GROUP_MEMBER_REQUEST
=
"/api/group/mutedMembers"
;
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
View file @
e1e0fa63
...
@@ -268,6 +268,17 @@ public interface WecloudIm {
...
@@ -268,6 +268,17 @@ public interface WecloudIm {
Boolean
groupSetting
(
GroupSettingParam
param
);
Boolean
groupSetting
(
GroupSettingParam
param
);
/**
/**
* 禁言群成员
* @Author luozh
* @Date 2022年05月16日 07:27:52
* @param groupId 群组id
* @param muted 禁言/解禁对应true/false
* @param userIds 用户id列表
* @Return
*/
Boolean
mutedGroupMember
(
String
groupId
,
Boolean
muted
,
String
userIds
);
/**
* 删除好友
* 删除好友
* @Author luozh
* @Author luozh
* @Date 2022年05月16日 10:14:07
* @Date 2022年05月16日 10:14:07
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
View file @
e1e0fa63
...
@@ -35,6 +35,7 @@ import com.wecloud.im.sdk.model.ListChatRoomMemberRequest;
...
@@ -35,6 +35,7 @@ import com.wecloud.im.sdk.model.ListChatRoomMemberRequest;
import
com.wecloud.im.sdk.model.ListConversationRequest
;
import
com.wecloud.im.sdk.model.ListConversationRequest
;
import
com.wecloud.im.sdk.model.ListGroupMembersRequest
;
import
com.wecloud.im.sdk.model.ListGroupMembersRequest
;
import
com.wecloud.im.sdk.model.ModifyUserRequest
;
import
com.wecloud.im.sdk.model.ModifyUserRequest
;
import
com.wecloud.im.sdk.model.MutedGroupMemberRequest
;
import
com.wecloud.im.sdk.model.PageBlacklistRequest
;
import
com.wecloud.im.sdk.model.PageBlacklistRequest
;
import
com.wecloud.im.sdk.model.PageResult
;
import
com.wecloud.im.sdk.model.PageResult
;
import
com.wecloud.im.sdk.model.PrivateChatMessage
;
import
com.wecloud.im.sdk.model.PrivateChatMessage
;
...
@@ -288,6 +289,13 @@ public class WecloudImClient implements WecloudIm {
...
@@ -288,6 +289,13 @@ public class WecloudImClient implements WecloudIm {
}
}
@Override
@Override
public
Boolean
mutedGroupMember
(
String
groupId
,
Boolean
muted
,
String
userIds
)
{
MutedGroupMemberRequest
mutedGroupMemberRequest
=
MutedGroupMemberRequest
.
builder
().
groupId
(
groupId
).
muted
(
muted
).
userIds
(
userIds
).
build
();
return
imGroupOperation
.
mutedGroupMember
(
mutedGroupMemberRequest
);
}
@Override
public
Boolean
unfriend
(
String
userId
,
String
friendUserIds
)
{
public
Boolean
unfriend
(
String
userId
,
String
friendUserIds
)
{
UnfriendRequest
unfriendRequest
=
UnfriendRequest
.
builder
().
userId
(
userId
).
friendUserIds
(
friendUserIds
).
build
();
UnfriendRequest
unfriendRequest
=
UnfriendRequest
.
builder
().
userId
(
userId
).
friendUserIds
(
friendUserIds
).
build
();
return
imContactsOperation
.
unfriend
(
unfriendRequest
);
return
imContactsOperation
.
unfriend
(
unfriendRequest
);
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImGroupOperation.java
View file @
e1e0fa63
...
@@ -17,6 +17,7 @@ import com.wecloud.im.sdk.model.GroupSettingRequest;
...
@@ -17,6 +17,7 @@ import com.wecloud.im.sdk.model.GroupSettingRequest;
import
com.wecloud.im.sdk.model.JoinGroupRequest
;
import
com.wecloud.im.sdk.model.JoinGroupRequest
;
import
com.wecloud.im.sdk.model.LeaveGroupRequest
;
import
com.wecloud.im.sdk.model.LeaveGroupRequest
;
import
com.wecloud.im.sdk.model.ListGroupMembersRequest
;
import
com.wecloud.im.sdk.model.ListGroupMembersRequest
;
import
com.wecloud.im.sdk.model.MutedGroupMemberRequest
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
CREATE_GROUP_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
CREATE_GROUP_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
DISMISS_GROUP_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
DISMISS_GROUP_REQUEST
;
...
@@ -24,6 +25,7 @@ import static com.wecloud.im.sdk.ResourcePathConstants.GROUP_SETTING_REQUEST;
...
@@ -24,6 +25,7 @@ import static com.wecloud.im.sdk.ResourcePathConstants.GROUP_SETTING_REQUEST;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
JOIN_GROUP_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
JOIN_GROUP_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
LEAVE_GROUP_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
LEAVE_GROUP_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
LIST_GROUP_MEMBERS_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
LIST_GROUP_MEMBERS_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
MUTED_GROUP_MEMBER_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
utils
.
CodingUtils
.
assertParameterNotBlank
;
import
static
com
.
wecloud
.
im
.
sdk
.
utils
.
CodingUtils
.
assertParameterNotBlank
;
import
static
com
.
wecloud
.
im
.
sdk
.
utils
.
CodingUtils
.
assertParameterNotNull
;
import
static
com
.
wecloud
.
im
.
sdk
.
utils
.
CodingUtils
.
assertParameterNotNull
;
...
@@ -229,4 +231,26 @@ public class WecloudImGroupOperation extends WecloudImOperation {
...
@@ -229,4 +231,26 @@ public class WecloudImGroupOperation extends WecloudImOperation {
Object
result
=
doOperation
(
request
);
Object
result
=
doOperation
(
request
);
return
JSON
.
parseObject
(
JSON
.
toJSONString
(
result
),
Boolean
.
class
);
return
JSON
.
parseObject
(
JSON
.
toJSONString
(
result
),
Boolean
.
class
);
}
}
public
Boolean
mutedGroupMember
(
MutedGroupMemberRequest
mutedGroupMemberRequest
)
{
String
groupId
=
mutedGroupMemberRequest
.
getGroupId
();
Boolean
muted
=
mutedGroupMemberRequest
.
getMuted
();
String
userIds
=
mutedGroupMemberRequest
.
getUserIds
();
// 必填参数校验
assertParameterNotBlank
(
groupId
,
"groupId"
);
assertParameterNotNull
(
muted
,
"muted"
);
assertParameterNotBlank
(
userIds
,
"userIds"
);
// 校验通过 构建参数
Map
<
String
,
String
>
param
=
new
HashMap
<>();
param
.
put
(
"groupId"
,
groupId
);
param
.
put
(
"muted"
,
muted
.
toString
());
param
.
put
(
"userIds"
,
userIds
);
// 发送请求
RequestMessage
request
=
new
WecloudRequestMessageBuilder
().
setEndpoint
(
MUTED_GROUP_MEMBER_REQUEST
)
.
setMethod
(
HttpMethod
.
POST
).
setParameters
(
param
)
.
setOriginalRequest
(
mutedGroupMemberRequest
).
build
();
Object
result
=
doOperation
(
request
);
return
JSON
.
parseObject
(
JSON
.
toJSONString
(
result
),
Boolean
.
class
);
}
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/MutedGroupMemberRequest.java
0 → 100644
View file @
e1e0fa63
package
com
.
wecloud
.
im
.
sdk
.
model
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
*
* @Author luozh
* @Date 2022年05月16日 19:34
* @Version 1.0
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@Builder
public
class
MutedGroupMemberRequest
extends
WebServiceRequest
{
/**
* 群组id
*/
private
String
groupId
;
/**
* 是否禁言
*/
private
Boolean
muted
;
/**
* 用户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