Commit e5b6633f by 罗长华

sdk增加unfriend接口

sdk增加WecloudImContactsOperation 负责通讯录相关操作
parent c36bd527
......@@ -4,6 +4,7 @@ import io.geekidea.springbootplus.framework.common.api.ApiCode;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.controller.BaseController;
import io.geekidea.springbootplus.framework.common.enums.BaseEnum;
import io.geekidea.springbootplus.framework.common.exception.BusinessException;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import io.geekidea.springbootplus.framework.log.annotation.OperationLog;
import io.geekidea.springbootplus.framework.log.enums.OperationLogType;
......@@ -15,6 +16,7 @@ import lombok.extern.slf4j.Slf4j;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -35,6 +37,7 @@ import com.wecloud.im.friend.param.ImFriendBaseDto;
import com.wecloud.im.friend.param.ImFriendBaseParam;
import com.wecloud.im.friend.param.ImFriendPageParam;
import com.wecloud.im.friend.param.ImFriendRecommendDto;
import com.wecloud.im.friend.param.UnfriendParam;
import com.wecloud.im.friend.service.ImFriendService;
import com.wecloud.im.sdk.enums.FriendStateEnum;
import com.wecloud.im.service.ImClientService;
......@@ -220,7 +223,7 @@ public class ImFriendController extends BaseController {
public ApiResult<Boolean> batchDeleteFriend(@RequestBody ImDeleteFriendParam param) {
log.info("删除好友入参 {}", JSON.toJSONString(param));
ImClient currentClient = imClientService.getCurrentClient();
if(currentClient == null) {
if (currentClient == null) {
return ApiResult.fail(ApiCode.CLIENT_NOT_FOUNT, null);
}
......@@ -229,6 +232,25 @@ public class ImFriendController extends BaseController {
}
/**
* 批量删除好友 sdk用
*/
@PostMapping("/unfriends")
@ApiOperation(value = "删除好友")
public ApiResult<Boolean> unfriends(@RequestBody UnfriendParam param) {
log.info("删除好友入参 {}", JSON.toJSONString(param));
if (StringUtils.isBlank(param.getUserId())) {
throw new BusinessException("参数userId不能为空");
}
if (StringUtils.isBlank(param.getFriendIds())) {
throw new BusinessException("参数friends不能为空");
}
imFriendService.unfriends(param);
return ApiResult.ok();
}
/**
* 好友分页列表
*/
@PostMapping("/getPageList")
......
package com.wecloud.im.friend.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
*
* @Author luozh
* @Date 2022年05月16日 10:34
* @Version 1.0
*/
@Data
public class UnfriendParam {
/**
* 用户id
*/
@ApiModelProperty("用户id")
private String userId;
/**
* 朋友id 多个用,隔开
*/
@ApiModelProperty("朋友id 多个用,隔开")
private String friendIds;
}
......@@ -4,8 +4,10 @@ import io.geekidea.springbootplus.framework.common.exception.BusinessException;
import io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl;
import io.geekidea.springbootplus.framework.core.pagination.PageInfo;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import io.geekidea.springbootplus.framework.shiro.util.SecurityUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.List;
......@@ -31,6 +33,7 @@ import com.wecloud.im.friend.param.ImFriendApplyDto;
import com.wecloud.im.friend.param.ImFriendBaseDto;
import com.wecloud.im.friend.param.ImFriendPageParam;
import com.wecloud.im.friend.param.ImFriendRecommendDto;
import com.wecloud.im.friend.param.UnfriendParam;
import com.wecloud.im.param.ImClientSimpleDto;
import com.wecloud.im.sdk.enums.FriendStateEnum;
import com.wecloud.im.service.ImClientService;
......@@ -295,10 +298,20 @@ public class ImFriendService extends BaseServiceImpl<ImFriendMapper, ImFriend> {
recommend.setDelFlag(false);
list.add(recommend);
}
if(CollectionUtils.isEmpty(list)) {
if (CollectionUtils.isEmpty(list)) {
return;
}
// 如果数据重复,只会更新updateTime
imFriendRecommendMapper.batchCreateRecommend(list);
}
public void unfriends(UnfriendParam param) {
Long appId = SecurityUtils.getCurrentAppId();
ImClient client = imClientService.getCacheImClient(appId, param.getUserId());
List<String> friendClientIds = Arrays.asList(param.getFriendIds().split(","));
if (CollectionUtils.isEmpty(friendClientIds)) {
return;
}
imFriendMapper.batchDeleteFriend(client.getClientId(), appId, friendClientIds);
}
}
......@@ -47,7 +47,7 @@ public class ResourcePathConstants {
public static final String FRIEND_REQUEST = "/api/friend/sdk/apply";
/**
* 好友请求
* 分页获取黑名单列表请求
*/
public static final String PAGE_BLACKLIST_REQUEST = "/api/ClientBlacklist/sdk/pageBlacklist";
......@@ -121,5 +121,10 @@ public class ResourcePathConstants {
*/
public static final String USER_RELATION_REQUEST = "/api/imClient/getClientRelation";
/**
* 删除好友请求
*/
public static final String UNFRIEND_REQUEST = "/api/friend/unfriends";
}
......@@ -257,5 +257,15 @@ public interface WecloudIm {
*/
Boolean groupSetting(GroupSettingParam param);
/**
* 删除好友
* @Author luozh
* @Date 2022年05月16日 10:14:07
* @param userId
* @param friendIds
* @Return
*/
Boolean unfriend(String userId, String friendIds);
}
......@@ -7,6 +7,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Assert;
import com.wecloud.im.sdk.internal.WecloudImClientOperation;
import com.wecloud.im.sdk.internal.WecloudImContactsOperation;
import com.wecloud.im.sdk.internal.WecloudImConversationOperation;
import com.wecloud.im.sdk.internal.WecloudImGroupOperation;
import com.wecloud.im.sdk.internal.WecloudImMessageOperation;
......@@ -45,6 +46,7 @@ import com.wecloud.im.sdk.model.RegisterClientRequest;
import com.wecloud.im.sdk.model.SetConversationDoNotDisturbRequest;
import com.wecloud.im.sdk.model.SetConversationTopRequest;
import com.wecloud.im.sdk.model.Token;
import com.wecloud.im.sdk.model.UnfriendRequest;
import com.wecloud.im.sdk.model.UnsureFriend;
import com.wecloud.im.sdk.model.UserRelationRequest;
import com.wecloud.im.sdk.model.UsersRelationRequest;
......@@ -77,9 +79,11 @@ public class WecloudImClient implements WecloudIm {
private WecloudImConversationOperation imConversationOperation;
private WecloudImMessageOperation wecloudImMessageOperation;
private WecloudImMessageOperation imMessageOperation;
private WecloudImGroupOperation wecloudImGroupOperation;
private WecloudImGroupOperation imGroupOperation;
private WecloudImContactsOperation imContactsOperation;
public WecloudImClient(URL apiDomain, String appKey, String appSecret) {
this.apiDomain = apiDomain;
......@@ -117,14 +121,14 @@ public class WecloudImClient implements WecloudIm {
public List<UnsureFriend> getUnsureFriends(String userId) {
GetUnsureFriendsRequest getUnsureFriendsRequest = GetUnsureFriendsRequest.builder().userId(userId).build();
return imClientOperation.getUnsureFriends(getUnsureFriendsRequest);
return imContactsOperation.getUnsureFriends(getUnsureFriendsRequest);
}
@Override
public List<Friend> getFriends(String userId) {
GetFriendsRequest getFriendsRequest = GetFriendsRequest.builder().userId(userId).build();
return imClientOperation.getFriends(getFriendsRequest);
return imContactsOperation.getFriends(getFriendsRequest);
}
@Override
......@@ -145,14 +149,14 @@ public class WecloudImClient implements WecloudIm {
public PageResult<Blacklist> pageBlacklist(Integer pageIndex, Integer pageSize, String userId) {
PageBlacklistRequest pageBlacklistRequest =
PageBlacklistRequest.builder().pageSize(pageSize).pageIndex(pageIndex).userId(userId).build();
return imClientOperation.pageBlacklist(pageBlacklistRequest);
return imContactsOperation.pageBlacklist(pageBlacklistRequest);
}
@Override
public Boolean friendRequest(String userId, String friendId, String friendName, String requestRemark) {
FriendRequestRequest friendRequestRequest =
FriendRequestRequest.builder().userId(userId).friendId(friendId).friendName(friendName).requestRemark(requestRemark).build();
return imClientOperation.friendRequest(friendRequestRequest);
return imContactsOperation.friendRequest(friendRequestRequest);
}
@Override
......@@ -163,7 +167,7 @@ public class WecloudImClient implements WecloudIm {
.friendName(friendName)
.requestRemark(requestRemark)
.build();
return imConversationOperation.groupMembersFriendRequest(groupMembersFriendRequestRequest);
return imContactsOperation.groupMembersFriendRequest(groupMembersFriendRequestRequest);
}
@Override
......@@ -176,7 +180,7 @@ public class WecloudImClient implements WecloudIm {
public List<Conversation> listConversation(Integer chatType, List<Long> conversationIds) {
ListConversationRequest request = ListConversationRequest.builder().chatType(chatType)
.conversationIds(conversationIds).build();
return imClientOperation.listConversation(request);
return imConversationOperation.listConversation(request);
}
@Override
......@@ -198,7 +202,7 @@ public class WecloudImClient implements WecloudIm {
Assert.notNull(groupChatMessage);
PublishGroupChatMessageRequest request = BeanUtil.toBean(groupChatMessage,
PublishGroupChatMessageRequest.class);
return wecloudImMessageOperation.publishGroupChatMessage(request);
return imMessageOperation.publishGroupChatMessage(request);
}
@Override
......@@ -206,7 +210,7 @@ public class WecloudImClient implements WecloudIm {
Assert.notNull(groupChatstatusMessage);
PublishGroupChatStatusMessageRequest request = BeanUtil.toBean(groupChatstatusMessage,
PublishGroupChatStatusMessageRequest.class);
return wecloudImMessageOperation.publishGroupChatStatusMessage(request);
return imMessageOperation.publishGroupChatStatusMessage(request);
}
@Override
......@@ -214,7 +218,7 @@ public class WecloudImClient implements WecloudIm {
Assert.notNull(privateChatMessage);
PublishPrivateChatMessageRequest request = BeanUtil.toBean(privateChatMessage,
PublishPrivateChatMessageRequest.class);
return wecloudImMessageOperation.publishPrivateMessage(request);
return imMessageOperation.publishPrivateMessage(request);
}
@Override
......@@ -222,7 +226,7 @@ public class WecloudImClient implements WecloudIm {
Assert.notNull(privateChatStatusMessage);
PublishPrivateChatStatusMessageRequest request = BeanUtil.toBean(privateChatStatusMessage,
PublishPrivateChatStatusMessageRequest.class);
return wecloudImMessageOperation.publishPrivateStatusMessage(request);
return imMessageOperation.publishPrivateStatusMessage(request);
}
@Override
......@@ -230,35 +234,35 @@ public class WecloudImClient implements WecloudIm {
CreateGroupRequest createGroupRequest =
CreateGroupRequest.builder().userId(groupOwnerUserId).groupName(groupName).memberIds(memberIds).build();
return wecloudImGroupOperation.createGroup(createGroupRequest);
return imGroupOperation.createGroup(createGroupRequest);
}
@Override
public Boolean dismissGroup(String userId, String groupId) {
DismissGroupRequest dismissGroupRequest =
DismissGroupRequest.builder().userId(userId).groupId(groupId).build();
return wecloudImGroupOperation.dismissGroup(dismissGroupRequest);
return imGroupOperation.dismissGroup(dismissGroupRequest);
}
@Override
public Integer joinGroup(String groupId, String userIds) {
JoinGroupRequest joinGroupRequest =
JoinGroupRequest.builder().userIds(userIds).groupId(groupId).build();
return wecloudImGroupOperation.joinGroup(joinGroupRequest);
return imGroupOperation.joinGroup(joinGroupRequest);
}
@Override
public Integer leaveGroup(String groupId, String userIds) {
LeaveGroupRequest leaveGroupRequest =
LeaveGroupRequest.builder().userIds(userIds).groupId(groupId).build();
return wecloudImGroupOperation.leaveGroup(leaveGroupRequest);
return imGroupOperation.leaveGroup(leaveGroupRequest);
}
@Override
public List<String> listGroupMembers(String groupId) {
ListGroupMembersRequest listGroupMembersRequest =
ListGroupMembersRequest.builder().groupId(groupId).build();
return wecloudImGroupOperation.listGroupMembers(listGroupMembersRequest);
return imGroupOperation.listGroupMembers(listGroupMembersRequest);
}
@Override
......@@ -272,13 +276,20 @@ public class WecloudImClient implements WecloudIm {
.name(param.getName())
.headPortrait(param.getHeadPortrait())
.build();
return wecloudImGroupOperation.groupSetting(groupSettingRequest);
return imGroupOperation.groupSetting(groupSettingRequest);
}
@Override
public Boolean unfriend(String userId, String friendIds) {
UnfriendRequest unfriendRequest = UnfriendRequest.builder().userId(userId).friendIds(friendIds).build();
return imContactsOperation.unfriend(unfriendRequest);
}
private void initOperations() {
this.imClientOperation = new WecloudImClientOperation(apiDomain, appKey, appSecret);
this.imConversationOperation = new WecloudImConversationOperation(apiDomain, appKey, appSecret);
this.wecloudImMessageOperation = new WecloudImMessageOperation(apiDomain, appKey, appSecret);
this.wecloudImGroupOperation = new WecloudImGroupOperation(apiDomain, appKey, appSecret);
this.imMessageOperation = new WecloudImMessageOperation(apiDomain, appKey, appSecret);
this.imGroupOperation = new WecloudImGroupOperation(apiDomain, appKey, appSecret);
this.imContactsOperation = new WecloudImContactsOperation(apiDomain, appKey, appSecret);
}
}
......@@ -10,35 +10,20 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.wecloud.im.sdk.common.HttpMethod;
import com.wecloud.im.sdk.common.RequestMessage;
import com.wecloud.im.sdk.model.Blacklist;
import com.wecloud.im.sdk.model.ChatRoomMember;
import com.wecloud.im.sdk.model.ClientLoginRequest;
import com.wecloud.im.sdk.model.ClientRelation;
import com.wecloud.im.sdk.model.Conversation;
import com.wecloud.im.sdk.model.Friend;
import com.wecloud.im.sdk.model.FriendRequestRequest;
import com.wecloud.im.sdk.model.GetFriendsRequest;
import com.wecloud.im.sdk.model.GetUnsureFriendsRequest;
import com.wecloud.im.sdk.model.ImClient;
import com.wecloud.im.sdk.model.ListChatRoomMemberRequest;
import com.wecloud.im.sdk.model.ListConversationRequest;
import com.wecloud.im.sdk.model.ModifyUserRequest;
import com.wecloud.im.sdk.model.PageBlacklistRequest;
import com.wecloud.im.sdk.model.PageResult;
import com.wecloud.im.sdk.model.RegisterClientRequest;
import com.wecloud.im.sdk.model.Token;
import com.wecloud.im.sdk.model.UnsureFriend;
import com.wecloud.im.sdk.model.UserRelationRequest;
import com.wecloud.im.sdk.model.UsersRelationRequest;
import static com.wecloud.im.sdk.ResourcePathConstants.FRIEND_REQUEST;
import static com.wecloud.im.sdk.ResourcePathConstants.GET_FRIENDS;
import static com.wecloud.im.sdk.ResourcePathConstants.GET_TOKEN_URL;
import static com.wecloud.im.sdk.ResourcePathConstants.GET_UNSURE_FRIENDS;
import static com.wecloud.im.sdk.ResourcePathConstants.LIST_CHAT_ROOM_MEMBER_REQUEST;
import static com.wecloud.im.sdk.ResourcePathConstants.LIST_CONVERSATION_REQUEST;
import static com.wecloud.im.sdk.ResourcePathConstants.MODIFY_USER_URL;
import static com.wecloud.im.sdk.ResourcePathConstants.PAGE_BLACKLIST_REQUEST;
import static com.wecloud.im.sdk.ResourcePathConstants.REGISTER_CLIENT_URL;
import static com.wecloud.im.sdk.ResourcePathConstants.USER_RELATION_REQUEST;
import static com.wecloud.im.sdk.utils.CodingUtils.assertParameterNotBlank;
......@@ -141,85 +126,12 @@ public class WecloudImClientOperation extends WecloudImOperation {
}
/**
* 待接受的好友请求列表
* 聊天室成员列表
* @Author luozh
* @Date 2022年04月21日 05:08:13
* @param getUnsureFriendsRequest
* @Date 2022年05月16日 09:45:03
* @param listChatRoomMemberRequest
* @Return
*/
public List<UnsureFriend> getUnsureFriends(GetUnsureFriendsRequest getUnsureFriendsRequest) {
String userId = getUnsureFriendsRequest.getUserId();
// 参数校验
assertParameterNotNull(userId, "userId");
// 校验通过 构建参数
Map<String, String> param = new HashMap<>();
param.put("clientId", userId + "");
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(GET_UNSURE_FRIENDS)
.setMethod(HttpMethod.GET).setParameters(param)
.setOriginalRequest(getUnsureFriendsRequest).build();
Object result = doOperation(request);
TypeReference<List<UnsureFriend>> typeReference = new TypeReference<List<UnsureFriend>>() {
};
List<UnsureFriend> unsureFriends = JSON.parseObject(JSON.toJSONString(result), typeReference);
return unsureFriends;
}
/**
* 获取好友列表(全量)
* @Author luozh
* @Date 2022年04月28日 03:01:21
* @param getFriendsRequest
* @Return
*/
public List<Friend> getFriends(GetFriendsRequest getFriendsRequest) {
String userId = getFriendsRequest.getUserId();
// 参数校验
assertParameterNotNull(userId, "userId");
// 校验通过 构建参数
Map<String, String> param = new HashMap<>();
param.put("clientId", userId + "");
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(GET_FRIENDS)
.setMethod(HttpMethod.GET).setParameters(param)
.setOriginalRequest(getFriendsRequest).build();
Object result = doOperation(request);
TypeReference<List<Friend>> typeReference = new TypeReference<List<Friend>>() {
};
List<Friend> unsureFriends = JSON.parseObject(JSON.toJSONString(result), typeReference);
return unsureFriends;
}
/**
* 好友请求
* @Author luozh
* @Date 2022年04月28日 03:01:47
* @param friendRequestRequest
*/
public Boolean friendRequest(FriendRequestRequest friendRequestRequest) {
String userId = friendRequestRequest.getUserId();
String friendId = friendRequestRequest.getFriendId();
// 参数校验
assertParameterNotNull(userId, "userId");
assertParameterNotNull(friendId, "friendId");
// 校验通过 构建参数
Map<String, String> param = new HashMap<>();
param.put("clientId", userId + "");
param.put("friendClientId", friendId + "");
param.put("friendName", Optional.ofNullable(friendRequestRequest.getFriendName()).orElse(""));
param.put("requestRemark", Optional.ofNullable(friendRequestRequest.getRequestRemark()).orElse(""));
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(FRIEND_REQUEST)
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(friendRequestRequest).build();
Object result = doOperation(request);
Boolean flag = JSON.parseObject(JSON.toJSONString(result), Boolean.class);
return flag;
}
public List<ChatRoomMember> listChatRoomMember(ListChatRoomMemberRequest listChatRoomMemberRequest) {
// 参数校验
assertParameterNotNull(listChatRoomMemberRequest.getChatRoomId(), "chatRoomId");
......@@ -238,53 +150,13 @@ public class WecloudImClientOperation extends WecloudImOperation {
return chatRoomMembers;
}
public List<Conversation> listConversation(ListConversationRequest listConversationRequest) {
// 参数校验
assertParameterNotNull(listConversationRequest.getConversationIds(), "conversationIds");
// 校验通过 构建参数
Map<String, String> param = new HashMap<>();
param.put("chatType", listConversationRequest.getChatType() + "");
param.put("conversationIds", JSON.toJSONString(listConversationRequest.getConversationIds()));
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(LIST_CONVERSATION_REQUEST)
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(listConversationRequest).build();
Object result = doOperation(request);
TypeReference<List<Conversation>> typeReference = new TypeReference<List<Conversation>>() {
};
List<Conversation> conversations = JSON.parseObject(JSON.toJSONString(result), typeReference);
return conversations;
}
public PageResult<Blacklist> pageBlacklist(PageBlacklistRequest pageBlacklistRequest) {
// 参数校验
assertParameterNotNull(pageBlacklistRequest.getUserId(), "userId");
// 校验通过 构建参数
if (pageBlacklistRequest.getPageIndex() == null) {
pageBlacklistRequest.setPageIndex(1);
}
if (pageBlacklistRequest.getPageSize() == null) {
pageBlacklistRequest.setPageSize(10);
}
Map<String, String> param = new HashMap<>();
param.put("clientId", pageBlacklistRequest.getUserId());
param.put("pageIndex", pageBlacklistRequest.getPageIndex() + "");
param.put("pageSize", pageBlacklistRequest.getPageSize() + "");
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(PAGE_BLACKLIST_REQUEST)
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(pageBlacklistRequest).build();
Object result = doOperation(request);
TypeReference<PageResult<Blacklist>> typeReference = new TypeReference<PageResult<Blacklist>>() {
};
PageResult<Blacklist> blacklistPage = JSON.parseObject(JSON.toJSONString(result), typeReference);
return blacklistPage;
}
/**
* 用户关系
* @Author luozh
* @Date 2022年05月16日 09:43:29
* @param userRelationRequest
* @Return
*/
public ClientRelation userRelation(UserRelationRequest userRelationRequest) {
String clientId = userRelationRequest.getClientId();
String friendClientId = userRelationRequest.getFriendClientId();
......
package com.wecloud.im.sdk.internal;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.wecloud.im.sdk.common.HttpMethod;
import com.wecloud.im.sdk.common.RequestMessage;
import com.wecloud.im.sdk.model.Blacklist;
import com.wecloud.im.sdk.model.Friend;
import com.wecloud.im.sdk.model.FriendRequestRequest;
import com.wecloud.im.sdk.model.GetFriendsRequest;
import com.wecloud.im.sdk.model.GetUnsureFriendsRequest;
import com.wecloud.im.sdk.model.GroupMembersFriendRequestRequest;
import com.wecloud.im.sdk.model.PageBlacklistRequest;
import com.wecloud.im.sdk.model.PageResult;
import com.wecloud.im.sdk.model.UnfriendRequest;
import com.wecloud.im.sdk.model.UnsureFriend;
import static com.wecloud.im.sdk.ResourcePathConstants.FRIEND_REQUEST;
import static com.wecloud.im.sdk.ResourcePathConstants.GET_FRIENDS;
import static com.wecloud.im.sdk.ResourcePathConstants.GET_UNSURE_FRIENDS;
import static com.wecloud.im.sdk.ResourcePathConstants.GROUP_MEMBERS_FRIEND_REQUEST;
import static com.wecloud.im.sdk.ResourcePathConstants.PAGE_BLACKLIST_REQUEST;
import static com.wecloud.im.sdk.ResourcePathConstants.UNFRIEND_REQUEST;
import static com.wecloud.im.sdk.utils.CodingUtils.assertParameterNotBlank;
import static com.wecloud.im.sdk.utils.CodingUtils.assertParameterNotNull;
/**
* 通讯录Operation
* @Author luozh
* @Date 2022年05月16日 09:35
* @Version 1.0
*/
public class WecloudImContactsOperation extends WecloudImOperation {
public WecloudImContactsOperation(URL apiDomain, String appKey, String appSecret) {
super(apiDomain, appKey, appSecret);
}
/**
* 待接受的好友请求列表
* @Author luozh
* @Date 2022年04月21日 05:08:13
* @param getUnsureFriendsRequest
* @Return
*/
public List<UnsureFriend> getUnsureFriends(GetUnsureFriendsRequest getUnsureFriendsRequest) {
String userId = getUnsureFriendsRequest.getUserId();
// 参数校验
assertParameterNotNull(userId, "userId");
// 校验通过 构建参数
Map<String, String> param = new HashMap<>();
param.put("clientId", userId + "");
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(GET_UNSURE_FRIENDS)
.setMethod(HttpMethod.GET).setParameters(param)
.setOriginalRequest(getUnsureFriendsRequest).build();
Object result = doOperation(request);
TypeReference<List<UnsureFriend>> typeReference = new TypeReference<List<UnsureFriend>>() {
};
List<UnsureFriend> unsureFriends = JSON.parseObject(JSON.toJSONString(result), typeReference);
return unsureFriends;
}
/**
* 获取好友列表(全量)
* @Author luozh
* @Date 2022年04月28日 03:01:21
* @param getFriendsRequest
* @Return
*/
public List<Friend> getFriends(GetFriendsRequest getFriendsRequest) {
String userId = getFriendsRequest.getUserId();
// 参数校验
assertParameterNotNull(userId, "userId");
// 校验通过 构建参数
Map<String, String> param = new HashMap<>();
param.put("clientId", userId + "");
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(GET_FRIENDS)
.setMethod(HttpMethod.GET).setParameters(param)
.setOriginalRequest(getFriendsRequest).build();
Object result = doOperation(request);
TypeReference<List<Friend>> typeReference = new TypeReference<List<Friend>>() {
};
List<Friend> unsureFriends = JSON.parseObject(JSON.toJSONString(result), typeReference);
return unsureFriends;
}
/**
* 好友请求
* @Author luozh
* @Date 2022年04月28日 03:01:47
* @param friendRequestRequest
*/
public Boolean friendRequest(FriendRequestRequest friendRequestRequest) {
String userId = friendRequestRequest.getUserId();
String friendId = friendRequestRequest.getFriendId();
// 参数校验
assertParameterNotNull(userId, "userId");
assertParameterNotNull(friendId, "friendId");
// 校验通过 构建参数
Map<String, String> param = new HashMap<>();
param.put("clientId", userId + "");
param.put("friendClientId", friendId + "");
param.put("friendName", Optional.ofNullable(friendRequestRequest.getFriendName()).orElse(""));
param.put("requestRemark", Optional.ofNullable(friendRequestRequest.getRequestRemark()).orElse(""));
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(FRIEND_REQUEST)
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(friendRequestRequest).build();
Object result = doOperation(request);
Boolean flag = JSON.parseObject(JSON.toJSONString(result), Boolean.class);
return flag;
}
/**
* 群成员好友请求
* @Author luozh
* @Date 2022年05月16日 09:44:19
* @param groupMembersFriendRequestRequest
* @Return
*/
public Boolean groupMembersFriendRequest(GroupMembersFriendRequestRequest groupMembersFriendRequestRequest) {
Long conversationId = groupMembersFriendRequestRequest.getConversationId();
String userId = groupMembersFriendRequestRequest.getUserId();
String friendId = groupMembersFriendRequestRequest.getFriendId();
// 参数校验
assertParameterNotNull(conversationId, "conversationId");
assertParameterNotNull(userId, "userId");
assertParameterNotNull(friendId, "friendId");
// 校验通过 构建参数
Map<String, String> param = new HashMap<>();
param.put("conversationId", conversationId + "");
param.put("clientId", userId + "");
param.put("friendClientId", friendId + "");
param.put("friendName", Optional.ofNullable(groupMembersFriendRequestRequest.getFriendName()).orElse(""));
param.put("requestRemark", Optional.ofNullable(groupMembersFriendRequestRequest.getRequestRemark()).orElse(""));
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(GROUP_MEMBERS_FRIEND_REQUEST)
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(groupMembersFriendRequestRequest).build();
Object result = doOperation(request);
Boolean flag = JSON.parseObject(JSON.toJSONString(result), Boolean.class);
return flag;
}
/**
* 分页获取黑名单
* @Author luozh
* @Date 2022年05月16日 09:43:16
* @param pageBlacklistRequest
* @Return
*/
public PageResult<Blacklist> pageBlacklist(PageBlacklistRequest pageBlacklistRequest) {
// 参数校验
assertParameterNotNull(pageBlacklistRequest.getUserId(), "userId");
// 校验通过 构建参数
if (pageBlacklistRequest.getPageIndex() == null) {
pageBlacklistRequest.setPageIndex(1);
}
if (pageBlacklistRequest.getPageSize() == null) {
pageBlacklistRequest.setPageSize(10);
}
Map<String, String> param = new HashMap<>();
param.put("clientId", pageBlacklistRequest.getUserId());
param.put("pageIndex", pageBlacklistRequest.getPageIndex() + "");
param.put("pageSize", pageBlacklistRequest.getPageSize() + "");
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(PAGE_BLACKLIST_REQUEST)
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(pageBlacklistRequest).build();
Object result = doOperation(request);
TypeReference<PageResult<Blacklist>> typeReference = new TypeReference<PageResult<Blacklist>>() {
};
PageResult<Blacklist> blacklistPage = JSON.parseObject(JSON.toJSONString(result), typeReference);
return blacklistPage;
}
public Boolean unfriend(UnfriendRequest unfriendRequest) {
String userId = unfriendRequest.getUserId();
String friendIds = unfriendRequest.getFriendIds();
// 参数校验
assertParameterNotBlank(userId, "userId");
assertParameterNotBlank(friendIds, "friendIds");
// 校验通过 构建参数
Map<String, String> param = new HashMap<>();
param.put("userId", userId);
param.put("friendIds", friendIds);
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(UNFRIEND_REQUEST)
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(unfriendRequest).build();
Object result = doOperation(request);
Boolean flag = JSON.parseObject(JSON.toJSONString(result), Boolean.class);
return flag;
}
}
......@@ -2,18 +2,20 @@ package com.wecloud.im.sdk.internal;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.wecloud.im.sdk.common.HttpMethod;
import com.wecloud.im.sdk.common.RequestMessage;
import com.wecloud.im.sdk.model.GroupMembersFriendRequestRequest;
import com.wecloud.im.sdk.model.Conversation;
import com.wecloud.im.sdk.model.ListConversationRequest;
import com.wecloud.im.sdk.model.SetConversationDoNotDisturbRequest;
import com.wecloud.im.sdk.model.SetConversationTopRequest;
import static com.wecloud.im.sdk.ResourcePathConstants.CHAT_SETTING;
import static com.wecloud.im.sdk.ResourcePathConstants.GROUP_MEMBERS_FRIEND_REQUEST;
import static com.wecloud.im.sdk.ResourcePathConstants.LIST_CONVERSATION_REQUEST;
import static com.wecloud.im.sdk.utils.CodingUtils.assertParameterNotNull;
/**
......@@ -88,27 +90,29 @@ public class WecloudImConversationOperation extends WecloudImOperation {
return true;
}
public Boolean groupMembersFriendRequest(GroupMembersFriendRequestRequest groupMembersFriendRequestRequest) {
Long conversationId = groupMembersFriendRequestRequest.getConversationId();
String userId = groupMembersFriendRequestRequest.getUserId();
String friendId = groupMembersFriendRequestRequest.getFriendId();
/**
* 会话列表
* @Author luozh
* @Date 2022年05月16日 09:43:38
* @param listConversationRequest
* @Return
*/
public List<Conversation> listConversation(ListConversationRequest listConversationRequest) {
// 参数校验
assertParameterNotNull(conversationId, "conversationId");
assertParameterNotNull(userId, "userId");
assertParameterNotNull(friendId, "friendId");
assertParameterNotNull(listConversationRequest.getConversationIds(), "conversationIds");
// 校验通过 构建参数
Map<String, String> param = new HashMap<>();
param.put("conversationId", conversationId + "");
param.put("clientId", userId + "");
param.put("friendClientId", friendId + "");
param.put("friendName", Optional.ofNullable(groupMembersFriendRequestRequest.getFriendName()).orElse(""));
param.put("requestRemark", Optional.ofNullable(groupMembersFriendRequestRequest.getRequestRemark()).orElse(""));
param.put("chatType", listConversationRequest.getChatType() + "");
param.put("conversationIds", JSON.toJSONString(listConversationRequest.getConversationIds()));
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(GROUP_MEMBERS_FRIEND_REQUEST)
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(LIST_CONVERSATION_REQUEST)
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(groupMembersFriendRequestRequest).build();
.setOriginalRequest(listConversationRequest).build();
Object result = doOperation(request);
Boolean flag = JSON.parseObject(JSON.toJSONString(result), Boolean.class);
return flag;
TypeReference<List<Conversation>> typeReference = new TypeReference<List<Conversation>>() {
};
List<Conversation> conversations = JSON.parseObject(JSON.toJSONString(result), typeReference);
return conversations;
}
}
package com.wecloud.im.sdk.model;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
* @Author luozh
* @Date 2022年05月16日 10:15
* @Version 1.0
*/
@EqualsAndHashCode(callSuper = true)
@Builder
@Data
public class UnfriendRequest extends WebServiceRequest {
/**
* 用户id
*/
private String userId;
/**
* 朋友id
*/
private String friendIds;
}
package com.wecloud.im.sdk.sample;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil;
......@@ -10,6 +8,7 @@ import cn.hutool.json.JSONUtil;
import com.wecloud.im.sdk.WecloudIm;
import com.wecloud.im.sdk.WecloudImClientBuilder;
import com.wecloud.im.sdk.model.PrivateChatMessage;
import com.wecloud.im.sdk.model.message.TextMessage;
/**
* 发布单聊消息
......@@ -20,40 +19,30 @@ import com.wecloud.im.sdk.model.PrivateChatMessage;
public class PublishPrivateChatMessageSample {
public static void main(String[] args) {
WecloudIm im = new WecloudImClientBuilder().build("http://139.159.136.86:8082",
"QizKVHcILRWp6Td2",
"287d04828099fb7de871e9dda845fa8b6b2302faf2ab3737");
// WecloudIm im = new WecloudImClientBuilder().build("http://127.0.0.1:8082",
// WecloudIm im = new WecloudImClientBuilder().build("http://139.159.136.86:8082",
// "QizKVHcILRWp6Td2",
// "287d04828099fb7de871e9dda845fa8b6b2302faf2ab3737");
WecloudIm im = new WecloudImClientBuilder().build("http://127.0.0.1:8082",
"QizKVHcILRWp6Td2",
"287d04828099fb7de871e9dda845fa8b6b2302faf2ab3737");
String senderId = "1519984635566845952";
String senderId = "1512322637488148480";
String toGroupIds = "1513691265777217536";
String messageType = "-1";
Map<String, Object> content = new HashMap<>();
content.put("toConversation", "1519985463165931520");
content.put("type", -1);
content.put("text", "这是测试消息: " + DateUtil.formatDateTime(new Date()));
content.put("attrs", new HashMap<String, String>() {
{
put("test1", "");
}
});
TextMessage textMessage = new TextMessage();
textMessage.setText("这是text消息测试: " + DateUtil.formatDateTime(new Date()));
boolean silent = true;
PrivateChatMessage privateChatMessage = new PrivateChatMessage();
privateChatMessage.setFromUserId(senderId);
privateChatMessage.setToUserIds(toGroupIds);
privateChatMessage.setMessageType(messageType);
privateChatMessage.setContent(JSONUtil.toJsonStr(content));
privateChatMessage.setContent(JSONUtil.toJsonStr(textMessage));
privateChatMessage.setPushContent("");
privateChatMessage.setIncludeSender(false);
privateChatMessage.setPersisted(true);
privateChatMessage.setSilent(silent);
// groupChatMessage.setPushExt(new PushExtParam());
Boolean result = im.publishPrivateMessage(privateChatMessage);
}
......
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