Commit 8a172b8f by 罗长华

SDK增加添加/删除管理员接口

parent a85f69c4
......@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.wecloud.im.param.GroupOwnerTransferParam;
import com.wecloud.im.param.ModifyGroupAdminParam;
import com.wecloud.im.param.group.CreateGroupParam;
import com.wecloud.im.param.group.DismissGroupParam;
import com.wecloud.im.param.group.JoinGroupParam;
......@@ -127,4 +128,30 @@ public class ImGroupController {
log.info("群主转移请求 参数: {}", JSON.toJSONString(param));
return ApiResult.ok(groupService.groupOwnerTransfer(param.getGroupId(), param.getNewGroupOwnerUserId()));
}
/**
* 添加群管理员
* @Author luozh
* @Date 2022年05月17日 06:24:26
* @param param
* @Return
*/
@PostMapping("/addGroupAdmin")
public ApiResult<Boolean> addGroupAdmin(@Validated @RequestBody ModifyGroupAdminParam param) {
log.info("添加群管理员请求 参数: {}", JSON.toJSONString(param));
return ApiResult.ok(groupService.addGroupAdmin(param.getGroupId(), param.getAdminUserIds()));
}
/**
* 移除群管理员
* @Author luozh
* @Date 2022年05月17日 06:24:40
* @param param
* @Return
*/
@PostMapping("/removeGroupAdmin")
public ApiResult<Boolean> removeGroupAdmin(@Validated @RequestBody ModifyGroupAdminParam param) {
log.info("移除群管理员请求 参数: {}", JSON.toJSONString(param));
return ApiResult.ok(groupService.removeGroupAdmin(param.getGroupId(), param.getAdminUserIds()));
}
}
package com.wecloud.im.param;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
*
* @Author luozh
* @Date 2022年05月17日 18:25
* @Version 1.0
*/
@Data
public class ModifyGroupAdminParam {
@NotBlank(message = "groupId 不能为空")
private String groupId;
@NotBlank(message = "adminUserIds 不能为空")
private String adminUserIds;
}
......@@ -80,4 +80,24 @@ public interface ImGroupService {
* @Return
*/
Boolean groupOwnerTransfer(String groupId, String newGroupOwnerUserId);
/**
* 添加管理员
* @Author luozh
* @Date 2022年05月17日 06:27:04
* @param groupId
* @param adminUserIds
* @Return
*/
Boolean addGroupAdmin(String groupId, String adminUserIds);
/**
* 移除管理员
* @Author luozh
* @Date 2022年05月17日 06:27:07
* @param groupId
* @param adminUserIds
* @Return
*/
Boolean removeGroupAdmin(String groupId, String adminUserIds);
}
......@@ -25,6 +25,7 @@ import com.wecloud.im.entity.ImConversationMembers;
import com.wecloud.im.entity.ImMessage;
import com.wecloud.im.mapper.ImConversationMapper;
import com.wecloud.im.param.ListConversationMembersParam;
import com.wecloud.im.param.SetAdminsParam;
import com.wecloud.im.param.add.ServerImConversationCreate;
import com.wecloud.im.param.group.MutedMembersParam;
import com.wecloud.im.post.Couriers;
......@@ -376,4 +377,42 @@ public class ImGroupServiceImpl implements ImGroupService {
}
return true;
}
@Override
public Boolean addGroupAdmin(String groupId, String adminUserIds) {
// 获取到群信息
ImConversation conversation = imConversationMapper.selectOne(Wrappers.<ImConversation>lambdaQuery().eq(ImConversation::getFkAppid,
SecurityUtils.getCurrentAppId()).eq(ImConversation::getId, groupId));
if (conversation == null) {
throw new BusinessException("群组不存在");
}
List<ImClient> clients = clientService.list(Wrappers.<ImClient>lambdaQuery().in(ImClient::getClientId,
Arrays.asList(adminUserIds.split(","))).eq(ImClient::getFkAppid, SecurityUtils.getCurrentAppId()));
SetAdminsParam param = new SetAdminsParam();
param.setConversationId(conversation.getId());
param.setOperateType(1);
conversationMembersService.setAdminsForConversation(param, clients.stream().map(ImClient::getId).collect(Collectors.toList()));
return true;
}
@Override
public Boolean removeGroupAdmin(String groupId, String adminUserIds) {
ImConversation conversation = imConversationMapper.selectOne(Wrappers.<ImConversation>lambdaQuery().eq(ImConversation::getFkAppid,
SecurityUtils.getCurrentAppId()).eq(ImConversation::getId, groupId));
if (conversation == null) {
throw new BusinessException("群组不存在");
}
List<ImClient> clients = clientService.list(Wrappers.<ImClient>lambdaQuery().in(ImClient::getClientId,
Arrays.asList(adminUserIds.split(","))).eq(ImClient::getFkAppid, SecurityUtils.getCurrentAppId()));
SetAdminsParam param = new SetAdminsParam();
param.setConversationId(conversation.getId());
param.setOperateType(2);
conversationMembersService.setAdminsForConversation(param, clients.stream().map(ImClient::getId).collect(Collectors.toList()));
return true;
}
}
......@@ -145,7 +145,16 @@ public class ResourcePathConstants {
* 更换群主 请求
*/
public static final String GROUP_OWNER_TRANSFER_REQUEST = "/api/group/groupOwnerTransfer";
;
/**
* 添加群管理员 请求
*/
public static final String ADD_GROUP_ADMIN_REQUEST = "/api/group/addGroupAdmin";
/**
* 移除群管理员 请求
*/
public static final String REMOVE_GROUP_ADMIN_REQUEST = "/api/group/removeGroupAdmin";
}
......@@ -289,6 +289,24 @@ public interface WecloudIm {
Boolean groupOwnerTransfer(String groupId, String newGroupOwnerUserId);
/**
* 增加群管理员
* @Author luozh
* @Date 2022年05月17日 06:02:04
* @param groupId
* @param adminUserIds
* @Return
*/
Boolean addGroupAdmin(String groupId, String adminUserIds);
/**
* 移除群管理员
* @param groupId
* @param adminUserIds
* @return
*/
Boolean removeGroupAdmin(String groupId, String adminUserIds);
/**
* 删除好友
* @Author luozh
* @Date 2022年05月16日 10:14:07
......
......@@ -11,6 +11,7 @@ import com.wecloud.im.sdk.internal.WecloudImConversationOperation;
import com.wecloud.im.sdk.internal.WecloudImGroupOperation;
import com.wecloud.im.sdk.internal.WecloudImMessageOperation;
import com.wecloud.im.sdk.internal.WecloudImUserOperation;
import com.wecloud.im.sdk.model.AddGroupAdminRequest;
import com.wecloud.im.sdk.model.BannedUserRequest;
import com.wecloud.im.sdk.model.Blacklist;
import com.wecloud.im.sdk.model.ChatRoomMember;
......@@ -47,6 +48,7 @@ import com.wecloud.im.sdk.model.PublishPrivateChatMessageRequest;
import com.wecloud.im.sdk.model.PublishPrivateChatStatusMessageRequest;
import com.wecloud.im.sdk.model.RegisterClientRequest;
import com.wecloud.im.sdk.model.RemarkFriendRequest;
import com.wecloud.im.sdk.model.RemoveGroupAdminRequest;
import com.wecloud.im.sdk.model.SetConversationDoNotDisturbRequest;
import com.wecloud.im.sdk.model.SetConversationTopRequest;
import com.wecloud.im.sdk.model.Token;
......@@ -305,6 +307,20 @@ public class WecloudImClient implements WecloudIm {
}
@Override
public Boolean addGroupAdmin(String groupId, String adminUserIds) {
AddGroupAdminRequest addGroupAdminRequest =
AddGroupAdminRequest.builder().groupId(groupId).adminUserIds(adminUserIds).build();
return imGroupOperation.addGroupAdmin(addGroupAdminRequest);
}
@Override
public Boolean removeGroupAdmin(String groupId, String adminUserIds) {
RemoveGroupAdminRequest removeGroupAdminRequest =
RemoveGroupAdminRequest.builder().groupId(groupId).adminUserIds(adminUserIds).build();
return imGroupOperation.removeGroupAdmin(removeGroupAdminRequest);
}
@Override
public Boolean unfriend(String userId, String friendUserIds) {
UnfriendRequest unfriendRequest = UnfriendRequest.builder().userId(userId).friendUserIds(friendUserIds).build();
return imContactsOperation.unfriend(unfriendRequest);
......
......@@ -11,6 +11,7 @@ import com.alibaba.fastjson.TypeReference;
import com.wecloud.im.sdk.common.HttpMethod;
import com.wecloud.im.sdk.common.RequestMessage;
import com.wecloud.im.sdk.enums.GroupChatSettingTypeEnum;
import com.wecloud.im.sdk.model.AddGroupAdminRequest;
import com.wecloud.im.sdk.model.CreateGroupRequest;
import com.wecloud.im.sdk.model.DismissGroupRequest;
import com.wecloud.im.sdk.model.GroupOwnerTransferRequest;
......@@ -19,14 +20,18 @@ import com.wecloud.im.sdk.model.JoinGroupRequest;
import com.wecloud.im.sdk.model.LeaveGroupRequest;
import com.wecloud.im.sdk.model.ListGroupMembersRequest;
import com.wecloud.im.sdk.model.MutedGroupMemberRequest;
import com.wecloud.im.sdk.model.RemoveGroupAdminRequest;
import static com.wecloud.im.sdk.ResourcePathConstants.ADD_GROUP_ADMIN_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.GROUP_OWNER_TRANSFER_REQUEST;
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.LEAVE_GROUP_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.ResourcePathConstants.REMOVE_GROUP_ADMIN_REQUEST;
import static com.wecloud.im.sdk.utils.CodingUtils.assertParameterNotBlank;
import static com.wecloud.im.sdk.utils.CodingUtils.assertParameterNotNull;
......@@ -271,11 +276,47 @@ public class WecloudImGroupOperation extends WecloudImOperation {
param.put("groupId", groupId);
param.put("newGroupOwnerUserId", newGroupOwnerUserId);
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(MUTED_GROUP_MEMBER_REQUEST)
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(GROUP_OWNER_TRANSFER_REQUEST)
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(groupOwnerTransferRequest).build();
Object result = doOperation(request);
return JSON.parseObject(JSON.toJSONString(result), Boolean.class);
}
public Boolean addGroupAdmin(AddGroupAdminRequest addGroupAdminRequest) {
String groupId = addGroupAdminRequest.getGroupId();
String adminUserIds = addGroupAdminRequest.getAdminUserIds();
// 必填参数校验
assertParameterNotBlank(groupId, "groupId");
assertParameterNotNull(adminUserIds, "adminUserIds");
// 校验通过 构建参数
Map<String, String> param = new HashMap<>();
param.put("groupId", groupId);
param.put("adminUserIds", adminUserIds);
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(ADD_GROUP_ADMIN_REQUEST)
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(addGroupAdminRequest).build();
Object result = doOperation(request);
return JSON.parseObject(JSON.toJSONString(result), Boolean.class);
}
public Boolean removeGroupAdmin(RemoveGroupAdminRequest removeGroupAdminRequest) {
String groupId = removeGroupAdminRequest.getGroupId();
String adminUserIds = removeGroupAdminRequest.getAdminUserIds();
// 必填参数校验
assertParameterNotBlank(groupId, "groupId");
assertParameterNotNull(adminUserIds, "adminUserIds");
// 校验通过 构建参数
Map<String, String> param = new HashMap<>();
param.put("groupId", groupId);
param.put("adminUserIds", adminUserIds);
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(REMOVE_GROUP_ADMIN_REQUEST)
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(removeGroupAdminRequest).build();
Object result = doOperation(request);
return JSON.parseObject(JSON.toJSONString(result), Boolean.class);
}
}
package com.wecloud.im.sdk.model;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
* @Author luozh
* @Date 2022年05月17日 18:06
* @Version 1.0
*/
@Builder
@EqualsAndHashCode(callSuper = true)
@Data
public class AddGroupAdminRequest extends WebServiceRequest {
/**
* 群id
*/
private String groupId;
/**
* 管理员用户id
*/
private String adminUserIds;
}
package com.wecloud.im.sdk.model;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
* @Author luozh
* @Date 2022年05月17日 18:06
* @Version 1.0
*/
@Builder
@EqualsAndHashCode(callSuper = true)
@Data
public class RemoveGroupAdminRequest extends WebServiceRequest {
/**
* 群id
*/
private String groupId;
/**
* 管理员用户id
*/
private String adminUserIds;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment