Commit 4070330b by 罗长华

sdk增加好友申请,群成员互加好友接口

parent ca10024b
...@@ -93,7 +93,7 @@ public class ImConversationMembersController extends BaseController { ...@@ -93,7 +93,7 @@ public class ImConversationMembersController extends BaseController {
/** /**
* 群成员添加haoyou * 群成员添加好友
* @Author luozh * @Author luozh
* @Date 2022年04月28日 11:40:44 * @Date 2022年04月28日 11:40:44
* @param * @param
......
...@@ -92,10 +92,36 @@ public class ImFriendController extends BaseController { ...@@ -92,10 +92,36 @@ public class ImFriendController extends BaseController {
return ApiResult.fail(ApiCode.CLIENT_NOT_FOUNT, null); return ApiResult.fail(ApiCode.CLIENT_NOT_FOUNT, null);
} }
ImClient friendClient = imClientService.getCacheImClient(currentClient.getFkAppid(), param.getFriendClientId()); ImClient friendClient = imClientService.getCacheImClient(currentClient.getFkAppid(), param.getFriendClientId());
if(friendClient == null) { if (friendClient == null) {
return ApiResult.fail(ApiCode.CLIENT_NOT_FOUNT, null);
}
if (currentClient.getId().equals(friendClient.getId())) {
return ApiResult.fail(ApiCode.PARAMETER_EXCEPTION, null);
}
imFriendService.applyFriend(currentClient, friendClient, param.getFriendName(), param.getRequestRemark());
log.info("申请添加好友逻辑完成");
return ApiResult.ok();
}
/**
* 申请添加好友
*/
@PostMapping("/sdk/apply")
@ApiOperation(value = "申请添加好友 sdk用")
public ApiResult<Boolean> applyFriendSdk(@RequestBody ImFriendApplyParam param) {
log.info("申请添加好友入参 {}", JSON.toJSONString(param));
if (param == null) {
return ApiResult.fail(ApiCode.PARAMETER_EXCEPTION, null);
}
ImClient currentClient = imClientService.getCacheImClient(SecurityUtils.getCurrentAppId(), param.getClientId());
if (currentClient == null) {
return ApiResult.fail(ApiCode.CLIENT_NOT_FOUNT, null);
}
ImClient friendClient = imClientService.getCacheImClient(SecurityUtils.getCurrentAppId(), param.getFriendClientId());
if (friendClient == null) {
return ApiResult.fail(ApiCode.CLIENT_NOT_FOUNT, null); return ApiResult.fail(ApiCode.CLIENT_NOT_FOUNT, null);
} }
if(currentClient.getId().equals(friendClient.getId())) { if (currentClient.getId().equals(friendClient.getId())) {
return ApiResult.fail(ApiCode.PARAMETER_EXCEPTION, null); return ApiResult.fail(ApiCode.PARAMETER_EXCEPTION, null);
} }
imFriendService.applyFriend(currentClient, friendClient, param.getFriendName(), param.getRequestRemark()); imFriendService.applyFriend(currentClient, friendClient, param.getFriendName(), param.getRequestRemark());
......
...@@ -41,5 +41,15 @@ public class ResourcePathConstants { ...@@ -41,5 +41,15 @@ public class ResourcePathConstants {
*/ */
public static final String CHAT_SETTING = "/api/imConversationMembers/chatSetting"; public static final String CHAT_SETTING = "/api/imConversationMembers/chatSetting";
/**
* 好友请求
*/
public static final String FRIEND_REQUEST = "/api/friend/sdk/apply";
/**
* 群成员互加好友
*/
public static final String GROUP_MEMBERS_FRIEND_REQUEST = "/api/imConversationMembers/addUser";
} }
...@@ -89,4 +89,26 @@ public interface WecloudIm { ...@@ -89,4 +89,26 @@ public interface WecloudIm {
* @Return * @Return
*/ */
Boolean setConversationDoNotDisturb(String userId, Long conversationId, Boolean doNotDisturb); Boolean setConversationDoNotDisturb(String userId, Long conversationId, Boolean doNotDisturb);
/**
* 好友申请
* @Author luozh
* @Date 2022年04月28日 02:05:11
* @param userId 用户id
* @param friendId 好友id
* @param friendName 备注好友名称
* @param requestRemark 请求备注
* @Return
*/
Boolean friendRequest(String userId, String friendId, String friendName, String requestRemark);
/**
* 群成员好友申请
* @Author luozh
* @Date 2022年04月28日 02:06:01
* @param
* @Return
*/
Boolean groupMembersFriendRequest(Long conversationId, String userId, String friendId, String friendName,
String requestRemark);
} }
...@@ -7,8 +7,10 @@ import com.wecloud.im.sdk.internal.WecloudImClientOperation; ...@@ -7,8 +7,10 @@ import com.wecloud.im.sdk.internal.WecloudImClientOperation;
import com.wecloud.im.sdk.internal.WecloudImConversationOperation; import com.wecloud.im.sdk.internal.WecloudImConversationOperation;
import com.wecloud.im.sdk.model.ClientLoginRequest; import com.wecloud.im.sdk.model.ClientLoginRequest;
import com.wecloud.im.sdk.model.Friend; 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.GetFriendsRequest;
import com.wecloud.im.sdk.model.GetUnsureFriendsRequest; import com.wecloud.im.sdk.model.GetUnsureFriendsRequest;
import com.wecloud.im.sdk.model.GroupMembersFriendRequestRequest;
import com.wecloud.im.sdk.model.ImClient; import com.wecloud.im.sdk.model.ImClient;
import com.wecloud.im.sdk.model.ModifyUserRequest; import com.wecloud.im.sdk.model.ModifyUserRequest;
import com.wecloud.im.sdk.model.RegisterClientRequest; import com.wecloud.im.sdk.model.RegisterClientRequest;
...@@ -92,6 +94,24 @@ public class WecloudImClient implements WecloudIm { ...@@ -92,6 +94,24 @@ public class WecloudImClient implements WecloudIm {
} }
@Override @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);
}
@Override
public Boolean groupMembersFriendRequest(Long conversationId, String userId, String friendId, String friendName, String requestRemark) {
GroupMembersFriendRequestRequest groupMembersFriendRequestRequest =
GroupMembersFriendRequestRequest.builder().conversationId(conversationId)
.userId(userId).friendId(friendId)
.friendName(friendName)
.requestRemark(requestRemark)
.build();
return imConversationOperation.groupMembersFriendRequest(groupMembersFriendRequestRequest);
}
@Override
public Boolean setConversationTop(String userId, Long conversationId, Boolean top) { public Boolean setConversationTop(String userId, Long conversationId, Boolean top) {
SetConversationTopRequest setConversationTopRequest = SetConversationTopRequest setConversationTopRequest =
SetConversationTopRequest.builder().userId(userId).conversationId(conversationId).top(top).build(); SetConversationTopRequest.builder().userId(userId).conversationId(conversationId).top(top).build();
......
...@@ -12,6 +12,7 @@ import com.wecloud.im.sdk.common.HttpMethod; ...@@ -12,6 +12,7 @@ import com.wecloud.im.sdk.common.HttpMethod;
import com.wecloud.im.sdk.common.RequestMessage; import com.wecloud.im.sdk.common.RequestMessage;
import com.wecloud.im.sdk.model.ClientLoginRequest; import com.wecloud.im.sdk.model.ClientLoginRequest;
import com.wecloud.im.sdk.model.Friend; 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.GetFriendsRequest;
import com.wecloud.im.sdk.model.GetUnsureFriendsRequest; import com.wecloud.im.sdk.model.GetUnsureFriendsRequest;
import com.wecloud.im.sdk.model.ImClient; import com.wecloud.im.sdk.model.ImClient;
...@@ -20,6 +21,7 @@ import com.wecloud.im.sdk.model.RegisterClientRequest; ...@@ -20,6 +21,7 @@ import com.wecloud.im.sdk.model.RegisterClientRequest;
import com.wecloud.im.sdk.model.Token; import com.wecloud.im.sdk.model.Token;
import com.wecloud.im.sdk.model.UnsureFriend; 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_FRIENDS;
import static com.wecloud.im.sdk.ResourcePathConstants.GET_TOKEN_URL; 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.GET_UNSURE_FRIENDS;
...@@ -151,6 +153,13 @@ public class WecloudImClientOperation extends WecloudImOperation { ...@@ -151,6 +153,13 @@ public class WecloudImClientOperation extends WecloudImOperation {
return unsureFriends; return unsureFriends;
} }
/**
* 获取好友列表(全量)
* @Author luozh
* @Date 2022年04月28日 03:01:21
* @param getFriendsRequest
* @Return
*/
public List<Friend> getFriends(GetFriendsRequest getFriendsRequest) { public List<Friend> getFriends(GetFriendsRequest getFriendsRequest) {
String userId = getFriendsRequest.getUserId(); String userId = getFriendsRequest.getUserId();
// 参数校验 // 参数校验
...@@ -169,4 +178,31 @@ public class WecloudImClientOperation extends WecloudImOperation { ...@@ -169,4 +178,31 @@ public class WecloudImClientOperation extends WecloudImOperation {
List<Friend> unsureFriends = JSON.parseObject(JSON.toJSONString(result), typeReference); List<Friend> unsureFriends = JSON.parseObject(JSON.toJSONString(result), typeReference);
return unsureFriends; 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("friendId", 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;
}
} }
...@@ -3,13 +3,17 @@ package com.wecloud.im.sdk.internal; ...@@ -3,13 +3,17 @@ package com.wecloud.im.sdk.internal;
import java.net.URL; import java.net.URL;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Optional;
import com.alibaba.fastjson.JSON;
import com.wecloud.im.sdk.common.HttpMethod; import com.wecloud.im.sdk.common.HttpMethod;
import com.wecloud.im.sdk.common.RequestMessage; import com.wecloud.im.sdk.common.RequestMessage;
import com.wecloud.im.sdk.model.GroupMembersFriendRequestRequest;
import com.wecloud.im.sdk.model.SetConversationDoNotDisturbRequest; import com.wecloud.im.sdk.model.SetConversationDoNotDisturbRequest;
import com.wecloud.im.sdk.model.SetConversationTopRequest; import com.wecloud.im.sdk.model.SetConversationTopRequest;
import static com.wecloud.im.sdk.ResourcePathConstants.CHAT_SETTING; 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.utils.CodingUtils.assertParameterNotNull; import static com.wecloud.im.sdk.utils.CodingUtils.assertParameterNotNull;
/** /**
...@@ -83,4 +87,28 @@ public class WecloudImConversationOperation extends WecloudImOperation { ...@@ -83,4 +87,28 @@ public class WecloudImConversationOperation extends WecloudImOperation {
doOperation(request); doOperation(request);
return true; return true;
} }
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("friendId", 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;
}
} }
package com.wecloud.im.sdk.model;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
* @Author luozh
* @Date 2022年04月28日 14:09
* @Version 1.0
*/
@Builder
@EqualsAndHashCode(callSuper = true)
@Data
public class FriendRequestRequest extends WebServiceRequest {
/**
* 用户id
*/
private String userId;
/**
* 好友id
*/
private String friendId;
/**
* 好友备注
*/
private String friendName;
/**
* 请求备注
*/
private String requestRemark;
}
package com.wecloud.im.sdk.model;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
* @Author luozh
* @Date 2022年04月28日 14:11
* @Version 1.0
*/
@Builder
@EqualsAndHashCode(callSuper = true)
@Data
public class GroupMembersFriendRequestRequest extends WebServiceRequest {
/**
* 会话id
*/
private Long conversationId;
/**
* 用户id
*/
private String userId;
/**
* 好友id
*/
private String friendId;
/**
* 好友备注
*/
private String friendName;
/**
* 请求备注
*/
private String requestRemark;
}
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