Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wecloud_im_server
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hewei
wecloud_im_server
Commits
4070330b
Commit
4070330b
authored
Apr 28, 2022
by
罗长华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sdk增加好友申请,群成员互加好友接口
parent
ca10024b
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
226 additions
and
3 deletions
+226
-3
core/src/main/java/com/wecloud/im/controller/ImConversationMembersController.java
+1
-1
core/src/main/java/com/wecloud/im/friend/controller/ImFriendController.java
+28
-2
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
+10
-0
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
+22
-0
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
+20
-0
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImClientOperation.java
+36
-0
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImConversationOperation.java
+28
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/FriendRequestRequest.java
+38
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/GroupMembersFriendRequestRequest.java
+43
-0
No files found.
core/src/main/java/com/wecloud/im/controller/ImConversationMembersController.java
View file @
4070330b
...
...
@@ -93,7 +93,7 @@ public class ImConversationMembersController extends BaseController {
/**
* 群成员添加
haoyou
* 群成员添加
好友
* @Author luozh
* @Date 2022年04月28日 11:40:44
* @param
...
...
core/src/main/java/com/wecloud/im/friend/controller/ImFriendController.java
View file @
4070330b
...
...
@@ -92,10 +92,36 @@ public class ImFriendController extends BaseController {
return
ApiResult
.
fail
(
ApiCode
.
CLIENT_NOT_FOUNT
,
null
);
}
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
);
}
if
(
currentClient
.
getId
().
equals
(
friendClient
.
getId
()))
{
if
(
currentClient
.
getId
().
equals
(
friendClient
.
getId
()))
{
return
ApiResult
.
fail
(
ApiCode
.
PARAMETER_EXCEPTION
,
null
);
}
imFriendService
.
applyFriend
(
currentClient
,
friendClient
,
param
.
getFriendName
(),
param
.
getRequestRemark
());
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
View file @
4070330b
...
...
@@ -41,5 +41,15 @@ public class ResourcePathConstants {
*/
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"
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
View file @
4070330b
...
...
@@ -89,4 +89,26 @@ public interface WecloudIm {
* @Return
*/
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
);
}
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
View file @
4070330b
...
...
@@ -7,8 +7,10 @@ import com.wecloud.im.sdk.internal.WecloudImClientOperation;
import
com.wecloud.im.sdk.internal.WecloudImConversationOperation
;
import
com.wecloud.im.sdk.model.ClientLoginRequest
;
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.ImClient
;
import
com.wecloud.im.sdk.model.ModifyUserRequest
;
import
com.wecloud.im.sdk.model.RegisterClientRequest
;
...
...
@@ -92,6 +94,24 @@ public class WecloudImClient implements WecloudIm {
}
@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
)
{
SetConversationTopRequest
setConversationTopRequest
=
SetConversationTopRequest
.
builder
().
userId
(
userId
).
conversationId
(
conversationId
).
top
(
top
).
build
();
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImClientOperation.java
View file @
4070330b
...
...
@@ -12,6 +12,7 @@ import com.wecloud.im.sdk.common.HttpMethod;
import
com.wecloud.im.sdk.common.RequestMessage
;
import
com.wecloud.im.sdk.model.ClientLoginRequest
;
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
;
...
...
@@ -20,6 +21,7 @@ import com.wecloud.im.sdk.model.RegisterClientRequest;
import
com.wecloud.im.sdk.model.Token
;
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_TOKEN_URL
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
GET_UNSURE_FRIENDS
;
...
...
@@ -151,6 +153,13 @@ public class WecloudImClientOperation extends WecloudImOperation {
return
unsureFriends
;
}
/**
* 获取好友列表(全量)
* @Author luozh
* @Date 2022年04月28日 03:01:21
* @param getFriendsRequest
* @Return
*/
public
List
<
Friend
>
getFriends
(
GetFriendsRequest
getFriendsRequest
)
{
String
userId
=
getFriendsRequest
.
getUserId
();
// 参数校验
...
...
@@ -169,4 +178,31 @@ public class WecloudImClientOperation extends WecloudImOperation {
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
(
"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
;
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImConversationOperation.java
View file @
4070330b
...
...
@@ -3,13 +3,17 @@ package com.wecloud.im.sdk.internal;
import
java.net.URL
;
import
java.util.HashMap
;
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.RequestMessage
;
import
com.wecloud.im.sdk.model.GroupMembersFriendRequestRequest
;
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
.
utils
.
CodingUtils
.
assertParameterNotNull
;
/**
...
...
@@ -83,4 +87,28 @@ public class WecloudImConversationOperation extends WecloudImOperation {
doOperation
(
request
);
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
;
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/FriendRequestRequest.java
0 → 100644
View file @
4070330b
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
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/GroupMembersFriendRequestRequest.java
0 → 100644
View file @
4070330b
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
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment