Commit 261096e8 by 罗长华

sdk增加群主转移接口

parent c1a717b3
......@@ -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;
......
......@@ -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()));
}
}
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;
}
......@@ -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);
}
......@@ -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;
}
}
......@@ -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";
;
}
......@@ -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
......
......@@ -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);
......
......@@ -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);
}
}
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;
}
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