Commit 261096e8 by 罗长华

sdk增加群主转移接口

parent c1a717b3
...@@ -416,7 +416,7 @@ public class NormalChatAction { ...@@ -416,7 +416,7 @@ public class NormalChatAction {
ApiResult<Boolean> apiResult = ApiResult.result(ApiCode.IS_BE_FORBID_SEND_PIC); ApiResult<Boolean> apiResult = ApiResult.result(ApiCode.IS_BE_FORBID_SEND_PIC);
responseModel.setCmd(WsResponseCmdEnum.RES.getCmdCode()); responseModel.setCmd(WsResponseCmdEnum.RES.getCmdCode());
responseModel.setCode(apiResult.getCode()); responseModel.setCode(apiResult.getCode());
responseModel.setMsg("本群已被群主禁止发送图片"); responseModel.setMsg(apiResult.getMessage());
responseModel.setReqId(reqId); responseModel.setReqId(reqId);
channelSender.sendMsgLocal((NioSocketChannel) channel, responseModel); channelSender.sendMsgLocal((NioSocketChannel) channel, responseModel);
return false; return false;
......
...@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.wecloud.im.param.GroupOwnerTransferParam;
import com.wecloud.im.param.group.CreateGroupParam; import com.wecloud.im.param.group.CreateGroupParam;
import com.wecloud.im.param.group.DismissGroupParam; import com.wecloud.im.param.group.DismissGroupParam;
import com.wecloud.im.param.group.JoinGroupParam; import com.wecloud.im.param.group.JoinGroupParam;
...@@ -113,4 +114,17 @@ public class ImGroupController { ...@@ -113,4 +114,17 @@ public class ImGroupController {
log.info("禁言群成员请求 参数: {}", JSON.toJSONString(param)); log.info("禁言群成员请求 参数: {}", JSON.toJSONString(param));
return ApiResult.ok(groupService.mutedMembers(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 { ...@@ -70,4 +70,14 @@ public interface ImGroupService {
* @Return * @Return
*/ */
Boolean mutedMembers(MutedMembersParam param); 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 { ...@@ -340,4 +340,40 @@ public class ImGroupServiceImpl implements ImGroupService {
conversationMembersService.updateBatchById(mutedMemberList); conversationMembersService.updateBatchById(mutedMemberList);
return true; 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 { ...@@ -141,5 +141,11 @@ public class ResourcePathConstants {
*/ */
public static final String MUTED_GROUP_MEMBER_REQUEST = "/api/group/mutedMembers"; 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 { ...@@ -279,6 +279,16 @@ public interface WecloudIm {
Boolean mutedGroupMember(String groupId, Boolean muted, String userIds); 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 * @Author luozh
* @Date 2022年05月16日 10:14:07 * @Date 2022年05月16日 10:14:07
......
...@@ -26,6 +26,7 @@ import com.wecloud.im.sdk.model.GetUnsureFriendsRequest; ...@@ -26,6 +26,7 @@ import com.wecloud.im.sdk.model.GetUnsureFriendsRequest;
import com.wecloud.im.sdk.model.GroupChatMessage; import com.wecloud.im.sdk.model.GroupChatMessage;
import com.wecloud.im.sdk.model.GroupChatStatusMessage; import com.wecloud.im.sdk.model.GroupChatStatusMessage;
import com.wecloud.im.sdk.model.GroupMembersFriendRequestRequest; 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.GroupSettingParam;
import com.wecloud.im.sdk.model.GroupSettingRequest; import com.wecloud.im.sdk.model.GroupSettingRequest;
import com.wecloud.im.sdk.model.ImClient; import com.wecloud.im.sdk.model.ImClient;
...@@ -296,6 +297,14 @@ public class WecloudImClient implements WecloudIm { ...@@ -296,6 +297,14 @@ public class WecloudImClient implements WecloudIm {
} }
@Override @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) { 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);
......
...@@ -13,6 +13,7 @@ import com.wecloud.im.sdk.common.RequestMessage; ...@@ -13,6 +13,7 @@ import com.wecloud.im.sdk.common.RequestMessage;
import com.wecloud.im.sdk.enums.GroupChatSettingTypeEnum; import com.wecloud.im.sdk.enums.GroupChatSettingTypeEnum;
import com.wecloud.im.sdk.model.CreateGroupRequest; import com.wecloud.im.sdk.model.CreateGroupRequest;
import com.wecloud.im.sdk.model.DismissGroupRequest; 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.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;
...@@ -257,4 +258,24 @@ public class WecloudImGroupOperation extends WecloudImOperation { ...@@ -257,4 +258,24 @@ 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 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