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
261096e8
Commit
261096e8
authored
May 17, 2022
by
罗长华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sdk增加群主转移接口
parent
c1a717b3
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
157 additions
and
1 deletions
+157
-1
core/src/main/java/com/wecloud/im/action/NormalChatAction.java
+1
-1
core/src/main/java/com/wecloud/im/controller/ImGroupController.java
+14
-0
core/src/main/java/com/wecloud/im/param/GroupOwnerTransferParam.java
+23
-0
core/src/main/java/com/wecloud/im/service/ImGroupService.java
+10
-0
core/src/main/java/com/wecloud/im/service/impl/ImGroupServiceImpl.java
+36
-0
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
+6
-0
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
+10
-0
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
+9
-0
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImGroupOperation.java
+21
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/GroupOwnerTransferRequest.java
+27
-0
No files found.
core/src/main/java/com/wecloud/im/action/NormalChatAction.java
View file @
261096e8
...
...
@@ -416,7 +416,7 @@ public class NormalChatAction {
ApiResult
<
Boolean
>
apiResult
=
ApiResult
.
result
(
ApiCode
.
IS_BE_FORBID_SEND_PIC
);
responseModel
.
setCmd
(
WsResponseCmdEnum
.
RES
.
getCmdCode
());
responseModel
.
setCode
(
apiResult
.
getCode
());
responseModel
.
setMsg
(
"本群已被群主禁止发送图片"
);
responseModel
.
setMsg
(
apiResult
.
getMessage
()
);
responseModel
.
setReqId
(
reqId
);
channelSender
.
sendMsgLocal
((
NioSocketChannel
)
channel
,
responseModel
);
return
false
;
...
...
core/src/main/java/com/wecloud/im/controller/ImGroupController.java
View file @
261096e8
...
...
@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RestController
;
import
com.alibaba.fastjson.JSON
;
import
com.wecloud.im.param.GroupOwnerTransferParam
;
import
com.wecloud.im.param.group.CreateGroupParam
;
import
com.wecloud.im.param.group.DismissGroupParam
;
import
com.wecloud.im.param.group.JoinGroupParam
;
...
...
@@ -113,4 +114,17 @@ public class ImGroupController {
log
.
info
(
"禁言群成员请求 参数: {}"
,
JSON
.
toJSONString
(
param
));
return
ApiResult
.
ok
(
groupService
.
mutedMembers
(
param
));
}
/**
* 群主转移
* @Author luozh
* @Date 2022年05月17日 04:20:26
* @param param
* @Return
*/
@PostMapping
(
"/groupOwnerTransfer"
)
public
ApiResult
<
Boolean
>
groupOwnerTransfer
(
@RequestBody
GroupOwnerTransferParam
param
)
{
log
.
info
(
"群主转移请求 参数: {}"
,
JSON
.
toJSONString
(
param
));
return
ApiResult
.
ok
(
groupService
.
groupOwnerTransfer
(
param
.
getGroupId
(),
param
.
getNewGroupOwnerUserId
()));
}
}
core/src/main/java/com/wecloud/im/param/GroupOwnerTransferParam.java
0 → 100644
View file @
261096e8
package
com
.
wecloud
.
im
.
param
;
import
lombok.Data
;
/**
*
* @Author luozh
* @Date 2022年05月17日 16:20
* @Version 1.0
*/
@Data
public
class
GroupOwnerTransferParam
{
/**
* 群id
*/
private
String
groupId
;
/**
* 新群主用户id
*/
private
String
newGroupOwnerUserId
;
}
core/src/main/java/com/wecloud/im/service/ImGroupService.java
View file @
261096e8
...
...
@@ -70,4 +70,14 @@ public interface ImGroupService {
* @Return
*/
Boolean
mutedMembers
(
MutedMembersParam
param
);
/**
* 转移群成员
* @Author luozh
* @Date 2022年05月17日 04:20:56
* @param groupId
* @param newGroupOwnerUserId
* @Return
*/
Boolean
groupOwnerTransfer
(
String
groupId
,
String
newGroupOwnerUserId
);
}
core/src/main/java/com/wecloud/im/service/impl/ImGroupServiceImpl.java
View file @
261096e8
...
...
@@ -340,4 +340,40 @@ public class ImGroupServiceImpl implements ImGroupService {
conversationMembersService
.
updateBatchById
(
mutedMemberList
);
return
true
;
}
@Override
public
Boolean
groupOwnerTransfer
(
String
groupId
,
String
newGroupOwnerUserId
)
{
ImConversation
conversation
=
imConversationMapper
.
selectOne
(
Wrappers
.<
ImConversation
>
lambdaQuery
().
eq
(
ImConversation:
:
getFkAppid
,
SecurityUtils
.
getCurrentAppId
()).
eq
(
ImConversation:
:
getId
,
groupId
));
if
(
conversation
==
null
)
{
throw
new
BusinessException
(
"群组不存在"
);
}
// 获取旧群主
ImConversationMembers
oldGroupOwner
=
conversationMembersService
.
getOne
(
Wrappers
.<
ImConversationMembers
>
lambdaQuery
().
eq
(
ImConversationMembers:
:
getFkConversationId
,
conversation
.
getId
()).
eq
(
ImConversationMembers:
:
getRole
,
GroupRoleEnum
.
OWNER
.
getCode
()));
// 获取新群主
ImConversationMembers
newGroupOwner
=
conversationMembersService
.
getOne
(
Wrappers
.<
ImConversationMembers
>
lambdaQuery
().
eq
(
ImConversationMembers:
:
getFkConversationId
,
conversation
.
getId
()).
eq
(
ImConversationMembers:
:
getFkClientId
,
newGroupOwnerUserId
));
if
(
newGroupOwner
==
null
)
{
throw
new
BusinessException
(
"新群主不在该群中"
);
}
if
(
oldGroupOwner
!=
null
)
{
if
(
oldGroupOwner
.
getClientId
().
equals
(
newGroupOwner
.
getClientId
()))
{
// 新旧群主一致
return
true
;
}
oldGroupOwner
.
setRole
(
GroupRoleEnum
.
NORMAL
.
getCode
());
newGroupOwner
.
setRole
(
GroupRoleEnum
.
OWNER
.
getCode
());
conversationMembersService
.
updateById
(
oldGroupOwner
);
conversationMembersService
.
updateById
(
newGroupOwner
);
}
else
{
newGroupOwner
.
setRole
(
GroupRoleEnum
.
OWNER
.
getCode
());
conversationMembersService
.
updateById
(
newGroupOwner
);
}
return
true
;
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
View file @
261096e8
...
...
@@ -141,5 +141,11 @@ public class ResourcePathConstants {
*/
public
static
final
String
MUTED_GROUP_MEMBER_REQUEST
=
"/api/group/mutedMembers"
;
/**
* 更换群主 请求
*/
public
static
final
String
GROUP_OWNER_TRANSFER_REQUEST
=
"/api/group/groupOwnerTransfer"
;
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
View file @
261096e8
...
...
@@ -279,6 +279,16 @@ public interface WecloudIm {
Boolean
mutedGroupMember
(
String
groupId
,
Boolean
muted
,
String
userIds
);
/**
* 更换群主
* @Author luozh
* @Date 2022年05月17日 04:12:33
* @param groupId 群组id
* @param newGroupOwnerUserId 新群主用户id
* @Return
*/
Boolean
groupOwnerTransfer
(
String
groupId
,
String
newGroupOwnerUserId
);
/**
* 删除好友
* @Author luozh
* @Date 2022年05月16日 10:14:07
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
View file @
261096e8
...
...
@@ -26,6 +26,7 @@ import com.wecloud.im.sdk.model.GetUnsureFriendsRequest;
import
com.wecloud.im.sdk.model.GroupChatMessage
;
import
com.wecloud.im.sdk.model.GroupChatStatusMessage
;
import
com.wecloud.im.sdk.model.GroupMembersFriendRequestRequest
;
import
com.wecloud.im.sdk.model.GroupOwnerTransferRequest
;
import
com.wecloud.im.sdk.model.GroupSettingParam
;
import
com.wecloud.im.sdk.model.GroupSettingRequest
;
import
com.wecloud.im.sdk.model.ImClient
;
...
...
@@ -296,6 +297,14 @@ public class WecloudImClient implements WecloudIm {
}
@Override
public
Boolean
groupOwnerTransfer
(
String
groupId
,
String
newGroupOwnerUserId
)
{
GroupOwnerTransferRequest
groupOwnerTransferRequest
=
GroupOwnerTransferRequest
.
builder
().
groupId
(
groupId
).
newGroupOwnerUserId
(
newGroupOwnerUserId
).
build
();
return
imGroupOperation
.
groupOwnerTransfer
(
groupOwnerTransferRequest
);
}
@Override
public
Boolean
unfriend
(
String
userId
,
String
friendUserIds
)
{
UnfriendRequest
unfriendRequest
=
UnfriendRequest
.
builder
().
userId
(
userId
).
friendUserIds
(
friendUserIds
).
build
();
return
imContactsOperation
.
unfriend
(
unfriendRequest
);
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImGroupOperation.java
View file @
261096e8
...
...
@@ -13,6 +13,7 @@ import com.wecloud.im.sdk.common.RequestMessage;
import
com.wecloud.im.sdk.enums.GroupChatSettingTypeEnum
;
import
com.wecloud.im.sdk.model.CreateGroupRequest
;
import
com.wecloud.im.sdk.model.DismissGroupRequest
;
import
com.wecloud.im.sdk.model.GroupOwnerTransferRequest
;
import
com.wecloud.im.sdk.model.GroupSettingRequest
;
import
com.wecloud.im.sdk.model.JoinGroupRequest
;
import
com.wecloud.im.sdk.model.LeaveGroupRequest
;
...
...
@@ -257,4 +258,24 @@ public class WecloudImGroupOperation extends WecloudImOperation {
Object
result
=
doOperation
(
request
);
return
JSON
.
parseObject
(
JSON
.
toJSONString
(
result
),
Boolean
.
class
);
}
public
Boolean
groupOwnerTransfer
(
GroupOwnerTransferRequest
groupOwnerTransferRequest
)
{
String
groupId
=
groupOwnerTransferRequest
.
getGroupId
();
String
newGroupOwnerUserId
=
groupOwnerTransferRequest
.
getNewGroupOwnerUserId
();
// 必填参数校验
assertParameterNotBlank
(
groupId
,
"groupId"
);
assertParameterNotNull
(
newGroupOwnerUserId
,
"newGroupOwnerUserId"
);
// 校验通过 构建参数
Map
<
String
,
String
>
param
=
new
HashMap
<>();
param
.
put
(
"groupId"
,
groupId
);
param
.
put
(
"newGroupOwnerUserId"
,
newGroupOwnerUserId
);
// 发送请求
RequestMessage
request
=
new
WecloudRequestMessageBuilder
().
setEndpoint
(
MUTED_GROUP_MEMBER_REQUEST
)
.
setMethod
(
HttpMethod
.
POST
).
setParameters
(
param
)
.
setOriginalRequest
(
groupOwnerTransferRequest
).
build
();
Object
result
=
doOperation
(
request
);
return
JSON
.
parseObject
(
JSON
.
toJSONString
(
result
),
Boolean
.
class
);
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/GroupOwnerTransferRequest.java
0 → 100644
View file @
261096e8
package
com
.
wecloud
.
im
.
sdk
.
model
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
*
* @Author luozh
* @Date 2022年05月17日 16:15
* @Version 1.0
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@Builder
public
class
GroupOwnerTransferRequest
extends
WebServiceRequest
{
/**
* 群id
*/
private
String
groupId
;
/**
* 新群主用户id
*/
private
String
newGroupOwnerUserId
;
}
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