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
9e886eab
Commit
9e886eab
authored
May 19, 2022
by
罗长华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、sdk增加查找/修改用户拓展参数接口
2、陌生人条数判断逻辑修改 3、增加条数限制返回编码
parent
ba59ec94
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
350 additions
and
4 deletions
+350
-4
core/src/main/java/com/wecloud/im/action/NormalChatAction.java
+3
-3
core/src/main/java/com/wecloud/im/controller/ImClientController.java
+20
-0
core/src/main/java/com/wecloud/im/param/ModifyUserAttributesParam.java
+22
-0
core/src/main/java/com/wecloud/im/service/ImClientService.java
+5
-0
core/src/main/java/com/wecloud/im/service/impl/ImClientServiceImpl.java
+32
-0
core/src/main/java/com/wecloud/im/ws/sender/ChannelSender.java
+4
-0
framework/src/main/java/io/geekidea/springbootplus/framework/common/api/ApiCode.java
+10
-0
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
+10
-1
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
+20
-0
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
+17
-0
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImUserOperation.java
+42
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/GetUserAttributesRequest.java
+22
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/ModifyUserAttributesRequest.java
+28
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/UserAttributes.java
+115
-0
No files found.
core/src/main/java/com/wecloud/im/action/NormalChatAction.java
View file @
9e886eab
...
@@ -379,13 +379,13 @@ public class NormalChatAction {
...
@@ -379,13 +379,13 @@ public class NormalChatAction {
}
}
int
sendCount
=
int
sendCount
=
imMessageService
.
count
(
Wrappers
.<
ImMessage
>
lambdaQuery
().
eq
(
ImMessage:
:
getFkConversationId
,
imMessageService
.
count
(
Wrappers
.<
ImMessage
>
lambdaQuery
().
eq
(
ImMessage:
:
getFkConversationId
,
conversationId
));
conversationId
)
.
eq
(
ImMessage:
:
getSender
,
imClientSender
.
getId
())
);
if
(!
isVip
)
{
if
(!
isVip
)
{
// 判断消息发送数量
// 判断消息发送数量
if
(
sendCount
>=
3
)
{
if
(
sendCount
>=
3
)
{
WsResponse
<
HashMap
<
String
,
Long
>>
responseModel
=
new
WsResponse
<>();
WsResponse
<
HashMap
<
String
,
Long
>>
responseModel
=
new
WsResponse
<>();
responseModel
.
setCmd
(
WsResponseCmdEnum
.
RES
.
getCmdCode
());
responseModel
.
setCmd
(
WsResponseCmdEnum
.
RES
.
getCmdCode
());
responseModel
.
setCode
(
500
);
responseModel
.
setCode
(
ApiCode
.
MSG_EXCEED_QUANTITY_LIMIT
.
getCode
()
);
responseModel
.
setMsg
(
"和对方还不是好友,只能发送三条消息"
);
responseModel
.
setMsg
(
"和对方还不是好友,只能发送三条消息"
);
responseModel
.
setReqId
(
reqId
);
responseModel
.
setReqId
(
reqId
);
channelSender
.
sendMsgLocal
((
NioSocketChannel
)
channel
,
responseModel
);
channelSender
.
sendMsgLocal
((
NioSocketChannel
)
channel
,
responseModel
);
...
@@ -396,7 +396,7 @@ public class NormalChatAction {
...
@@ -396,7 +396,7 @@ public class NormalChatAction {
if
(
sendCount
>=
30
)
{
if
(
sendCount
>=
30
)
{
WsResponse
<
HashMap
<
String
,
Long
>>
responseModel
=
new
WsResponse
<>();
WsResponse
<
HashMap
<
String
,
Long
>>
responseModel
=
new
WsResponse
<>();
responseModel
.
setCmd
(
WsResponseCmdEnum
.
RES
.
getCmdCode
());
responseModel
.
setCmd
(
WsResponseCmdEnum
.
RES
.
getCmdCode
());
responseModel
.
setCode
(
500
);
responseModel
.
setCode
(
ApiCode
.
EXCEED_VIP_QUANTITY_LIMIT
.
getCode
()
);
responseModel
.
setMsg
(
"和对方还不是好友,只能发送三十条消息"
);
responseModel
.
setMsg
(
"和对方还不是好友,只能发送三十条消息"
);
responseModel
.
setReqId
(
reqId
);
responseModel
.
setReqId
(
reqId
);
channelSender
.
sendMsgLocal
((
NioSocketChannel
)
channel
,
responseModel
);
channelSender
.
sendMsgLocal
((
NioSocketChannel
)
channel
,
responseModel
);
...
...
core/src/main/java/com/wecloud/im/controller/ImClientController.java
View file @
9e886eab
...
@@ -12,15 +12,19 @@ import lombok.extern.slf4j.Slf4j;
...
@@ -12,15 +12,19 @@ import lombok.extern.slf4j.Slf4j;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
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.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
import
com.wecloud.im.entity.ImApplication
;
import
com.wecloud.im.entity.ImApplication
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.param.ClientInfoParam
;
import
com.wecloud.im.param.ClientInfoParam
;
...
@@ -29,6 +33,7 @@ import com.wecloud.im.param.GetClientInfoParam;
...
@@ -29,6 +33,7 @@ import com.wecloud.im.param.GetClientInfoParam;
import
com.wecloud.im.param.GetClientRelationParam
;
import
com.wecloud.im.param.GetClientRelationParam
;
import
com.wecloud.im.param.GetOnlineStatusParam
;
import
com.wecloud.im.param.GetOnlineStatusParam
;
import
com.wecloud.im.param.LogoutParam
;
import
com.wecloud.im.param.LogoutParam
;
import
com.wecloud.im.param.ModifyUserAttributesParam
;
import
com.wecloud.im.param.RegisterClientParam
;
import
com.wecloud.im.param.RegisterClientParam
;
import
com.wecloud.im.param.add.ClientDeviceUpdateParam
;
import
com.wecloud.im.param.add.ClientDeviceUpdateParam
;
import
com.wecloud.im.param.add.ImClientHeadPortraitAdd
;
import
com.wecloud.im.param.add.ImClientHeadPortraitAdd
;
...
@@ -195,5 +200,20 @@ public class ImClientController extends BaseController {
...
@@ -195,5 +200,20 @@ public class ImClientController extends BaseController {
return
ApiResult
.
ok
(
imClientService
.
getClientRelation
(
param
));
return
ApiResult
.
ok
(
imClientService
.
getClientRelation
(
param
));
}
}
@PostMapping
(
"/getUserAttributes"
)
@ApiOperation
(
value
=
"查询两个客户端之间的关系"
)
public
ApiResult
<
Map
<
String
,
String
>>
getUserAttributes
(
@RequestParam
(
"userId"
)
String
userId
)
{
return
ApiResult
.
ok
(
imClientService
.
getUserAttributes
(
userId
));
}
@PostMapping
(
"/modifyUserAttributes"
)
@ApiOperation
(
value
=
"查询两个客户端之间的关系"
)
public
ApiResult
<
Boolean
>
modifyUserAttributes
(
@Validated
@RequestBody
ModifyUserAttributesParam
param
)
{
TypeReference
<
Map
<
String
,
Object
>>
typeReference
=
new
TypeReference
<
Map
<
String
,
Object
>>()
{
};
Map
<
String
,
Object
>
attributes
=
JSONObject
.
parseObject
(
param
.
getAttributes
(),
typeReference
);
return
ApiResult
.
ok
(
imClientService
.
modifyUserAttributes
(
param
.
getUserId
(),
attributes
));
}
}
}
core/src/main/java/com/wecloud/im/param/ModifyUserAttributesParam.java
0 → 100644
View file @
9e886eab
package
com
.
wecloud
.
im
.
param
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
/**
*
* @Author luozh
* @Date 2022年05月19日 17:09
* @Version 1.0
*/
@Data
public
class
ModifyUserAttributesParam
{
@NotBlank
(
message
=
"userId 不能为空"
)
private
String
userId
;
@NotNull
(
message
=
"attributes 不能为空"
)
private
String
attributes
;
}
core/src/main/java/com/wecloud/im/service/ImClientService.java
View file @
9e886eab
...
@@ -4,6 +4,7 @@ import io.geekidea.springbootplus.framework.common.service.BaseService;
...
@@ -4,6 +4,7 @@ import io.geekidea.springbootplus.framework.common.service.BaseService;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.param.ClientInfoParam
;
import
com.wecloud.im.param.ClientInfoParam
;
...
@@ -181,4 +182,8 @@ public interface ImClientService extends BaseService<ImClient> {
...
@@ -181,4 +182,8 @@ public interface ImClientService extends BaseService<ImClient> {
* @Return
* @Return
*/
*/
ClientRelationVo
getClientRelation
(
GetClientRelationParam
param
);
ClientRelationVo
getClientRelation
(
GetClientRelationParam
param
);
Map
<
String
,
String
>
getUserAttributes
(
String
userId
);
Boolean
modifyUserAttributes
(
String
userId
,
Map
<
String
,
Object
>
attributes
);
}
}
core/src/main/java/com/wecloud/im/service/impl/ImClientServiceImpl.java
View file @
9e886eab
...
@@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
...
@@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
...
@@ -21,6 +22,8 @@ import org.springframework.cache.annotation.Cacheable;
...
@@ -21,6 +22,8 @@ import org.springframework.cache.annotation.Cacheable;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
...
@@ -366,4 +369,33 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien
...
@@ -366,4 +369,33 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien
return
relationVo
;
return
relationVo
;
}
}
@Override
public
Map
<
String
,
String
>
getUserAttributes
(
String
userId
)
{
Long
appId
=
SecurityUtils
.
getCurrentAppId
();
ImClient
targetClient
=
getOne
(
Wrappers
.<
ImClient
>
lambdaQuery
().
eq
(
ImClient:
:
getClientId
,
userId
).
eq
(
ImClient:
:
getFkAppid
,
appId
));
if
(
targetClient
==
null
)
{
throw
new
BusinessException
(
"用户不存在"
);
}
TypeReference
<
Map
<
String
,
String
>>
typeReference
=
new
TypeReference
<
Map
<
String
,
String
>>()
{
};
return
JSONObject
.
parseObject
(
targetClient
.
getAttributes
(),
typeReference
);
}
@Override
public
Boolean
modifyUserAttributes
(
String
userId
,
Map
<
String
,
Object
>
attributes
)
{
Long
appId
=
SecurityUtils
.
getCurrentAppId
();
ImClient
targetClient
=
getOne
(
Wrappers
.<
ImClient
>
lambdaQuery
().
eq
(
ImClient:
:
getClientId
,
userId
).
eq
(
ImClient:
:
getFkAppid
,
appId
));
if
(
targetClient
==
null
)
{
throw
new
BusinessException
(
"用户不存在"
);
}
targetClient
.
setAttributes
(
JSONObject
.
toJSONString
(
attributes
));
return
this
.
updateById
(
targetClient
);
}
}
}
core/src/main/java/com/wecloud/im/ws/sender/ChannelSender.java
View file @
9e886eab
...
@@ -16,6 +16,7 @@ import org.apache.dubbo.rpc.RpcContext;
...
@@ -16,6 +16,7 @@ import org.apache.dubbo.rpc.RpcContext;
import
org.apache.dubbo.rpc.RpcException
;
import
org.apache.dubbo.rpc.RpcException
;
import
org.apache.dubbo.rpc.cluster.router.address.Address
;
import
org.apache.dubbo.rpc.cluster.router.address.Address
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cloud.client.discovery.DiscoveryClient
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
...
@@ -42,6 +43,9 @@ public class ChannelSender {
...
@@ -42,6 +43,9 @@ public class ChannelSender {
@Autowired
@Autowired
private
UserStateCacheManager
userStateCacheManager
;
private
UserStateCacheManager
userStateCacheManager
;
@Autowired
private
DiscoveryClient
discoveryClient
;
/*
/*
* 指定ip调用,router=address;
* 指定ip调用,router=address;
* injvm = false要设置成false,否则会调用到本地提供者
* injvm = false要设置成false,否则会调用到本地提供者
...
...
framework/src/main/java/io/geekidea/springbootplus/framework/common/api/ApiCode.java
View file @
9e886eab
...
@@ -152,6 +152,16 @@ public enum ApiCode {
...
@@ -152,6 +152,16 @@ public enum ApiCode {
*/
*/
IS_BE_FORBID_SEND_PIC
(
6018
,
"api.response.code.IS_BE_FORBID_SEND_PIC"
),
IS_BE_FORBID_SEND_PIC
(
6018
,
"api.response.code.IS_BE_FORBID_SEND_PIC"
),
/**
* 消息超出数量限制
*/
MSG_EXCEED_QUANTITY_LIMIT
(
6019
,
"api.response.code.IS_BE_FORBID_SEND_PIC"
),
/**
* 消息超出VIP数量限制
*/
EXCEED_VIP_QUANTITY_LIMIT
(
6020
,
"api.response.code.IS_BE_FORBID_SEND_PIC"
),
;
;
private
final
int
code
;
private
final
int
code
;
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
View file @
9e886eab
...
@@ -27,6 +27,16 @@ public class ResourcePathConstants {
...
@@ -27,6 +27,16 @@ public class ResourcePathConstants {
public
static
final
String
MODIFY_USER_URL
=
"/api/imClient/updateHeadAndNickname"
;
public
static
final
String
MODIFY_USER_URL
=
"/api/imClient/updateHeadAndNickname"
;
/**
/**
* 获取用户拓展参数
*/
public
static
final
String
GET_USER_ATTRIBUTES_REQUEST
=
"/api/imClient/getUserAttributes"
;
/**
* 更新用户拓展参数
*/
public
static
final
String
MODIFY_USER_ATTRIBUTES_REQUEST
=
"/api/imClient/modifyUserAttributes"
;
/**
* 获取好友申请列表
* 获取好友申请列表
*/
*/
public
static
final
String
GET_UNSURE_FRIENDS
=
"/api/friend/sdk/unsureFriends"
;
public
static
final
String
GET_UNSURE_FRIENDS
=
"/api/friend/sdk/unsureFriends"
;
...
@@ -156,5 +166,4 @@ public class ResourcePathConstants {
...
@@ -156,5 +166,4 @@ public class ResourcePathConstants {
*/
*/
public
static
final
String
REMOVE_GROUP_ADMIN_REQUEST
=
"/api/group/removeGroupAdmin"
;
public
static
final
String
REMOVE_GROUP_ADMIN_REQUEST
=
"/api/group/removeGroupAdmin"
;
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
View file @
9e886eab
...
@@ -16,6 +16,7 @@ import com.wecloud.im.sdk.model.PrivateChatMessage;
...
@@ -16,6 +16,7 @@ import com.wecloud.im.sdk.model.PrivateChatMessage;
import
com.wecloud.im.sdk.model.PrivateChatStatusMessage
;
import
com.wecloud.im.sdk.model.PrivateChatStatusMessage
;
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
com.wecloud.im.sdk.model.UserAttributes
;
/**
/**
*
*
...
@@ -60,6 +61,25 @@ public interface WecloudIm {
...
@@ -60,6 +61,25 @@ public interface WecloudIm {
Boolean
modifyUser
(
String
userId
,
String
nickname
,
String
headPortrait
);
Boolean
modifyUser
(
String
userId
,
String
nickname
,
String
headPortrait
);
/**
/**
* 获取用户拓展信息
* @Author luozh
* @Date 2022年04月18日 03:29:52
* @param userId 用户id
* @Return
*/
UserAttributes
getUserAttributes
(
String
userId
);
/**
* 更新用户拓展信息
* @Author luozh
* @Date 2022年04月18日 03:29:52
* @param userId 用户id
* @param attributes 用户拓展字段
* @Return
*/
Boolean
modifyUserAttributes
(
String
userId
,
UserAttributes
attributes
);
/**
* 封禁用户
* 封禁用户
* @Author luozh
* @Author luozh
* @Date 2022年05月16日 02:57:55
* @Date 2022年05月16日 02:57:55
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
View file @
9e886eab
...
@@ -24,6 +24,7 @@ import com.wecloud.im.sdk.model.Friend;
...
@@ -24,6 +24,7 @@ import com.wecloud.im.sdk.model.Friend;
import
com.wecloud.im.sdk.model.FriendRequestRequest
;
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.GetUserAttributesRequest
;
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
;
...
@@ -36,6 +37,7 @@ import com.wecloud.im.sdk.model.LeaveGroupRequest;
...
@@ -36,6 +37,7 @@ import com.wecloud.im.sdk.model.LeaveGroupRequest;
import
com.wecloud.im.sdk.model.ListChatRoomMemberRequest
;
import
com.wecloud.im.sdk.model.ListChatRoomMemberRequest
;
import
com.wecloud.im.sdk.model.ListConversationRequest
;
import
com.wecloud.im.sdk.model.ListConversationRequest
;
import
com.wecloud.im.sdk.model.ListGroupMembersRequest
;
import
com.wecloud.im.sdk.model.ListGroupMembersRequest
;
import
com.wecloud.im.sdk.model.ModifyUserAttributesRequest
;
import
com.wecloud.im.sdk.model.ModifyUserRequest
;
import
com.wecloud.im.sdk.model.ModifyUserRequest
;
import
com.wecloud.im.sdk.model.MutedGroupMemberRequest
;
import
com.wecloud.im.sdk.model.MutedGroupMemberRequest
;
import
com.wecloud.im.sdk.model.PageBlacklistRequest
;
import
com.wecloud.im.sdk.model.PageBlacklistRequest
;
...
@@ -54,6 +56,7 @@ import com.wecloud.im.sdk.model.SetConversationTopRequest;
...
@@ -54,6 +56,7 @@ import com.wecloud.im.sdk.model.SetConversationTopRequest;
import
com.wecloud.im.sdk.model.Token
;
import
com.wecloud.im.sdk.model.Token
;
import
com.wecloud.im.sdk.model.UnfriendRequest
;
import
com.wecloud.im.sdk.model.UnfriendRequest
;
import
com.wecloud.im.sdk.model.UnsureFriend
;
import
com.wecloud.im.sdk.model.UnsureFriend
;
import
com.wecloud.im.sdk.model.UserAttributes
;
import
com.wecloud.im.sdk.model.UserRelationRequest
;
import
com.wecloud.im.sdk.model.UserRelationRequest
;
import
com.wecloud.im.sdk.model.UsersRelationRequest
;
import
com.wecloud.im.sdk.model.UsersRelationRequest
;
...
@@ -124,6 +127,20 @@ public class WecloudImClient implements WecloudIm {
...
@@ -124,6 +127,20 @@ public class WecloudImClient implements WecloudIm {
}
}
@Override
@Override
public
UserAttributes
getUserAttributes
(
String
userId
)
{
GetUserAttributesRequest
getUserAttributesRequest
=
GetUserAttributesRequest
.
builder
().
userId
(
userId
).
build
();
return
imUserOperation
.
getUserAttributes
(
getUserAttributesRequest
);
}
@Override
public
Boolean
modifyUserAttributes
(
String
userId
,
UserAttributes
attributes
)
{
ModifyUserAttributesRequest
modifyUserAttributesRequest
=
ModifyUserAttributesRequest
.
builder
().
userId
(
userId
).
attributes
(
attributes
).
build
();
;
return
imUserOperation
.
modifyUserAttributes
(
modifyUserAttributesRequest
);
}
@Override
public
Boolean
bannedUser
(
String
userId
,
Integer
minute
)
{
public
Boolean
bannedUser
(
String
userId
,
Integer
minute
)
{
BannedUserRequest
bannedUserRequest
=
BannedUserRequest
.
builder
().
userId
(
userId
).
minute
(
minute
).
build
();
BannedUserRequest
bannedUserRequest
=
BannedUserRequest
.
builder
().
userId
(
userId
).
minute
(
minute
).
build
();
return
imUserOperation
.
bannedUser
(
bannedUserRequest
);
return
imUserOperation
.
bannedUser
(
bannedUserRequest
);
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImUserOperation.java
View file @
9e886eab
...
@@ -7,6 +7,7 @@ import java.util.Map;
...
@@ -7,6 +7,7 @@ import java.util.Map;
import
java.util.Optional
;
import
java.util.Optional
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
import
com.alibaba.fastjson.TypeReference
;
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
;
...
@@ -14,17 +15,22 @@ import com.wecloud.im.sdk.model.BannedUserRequest;
...
@@ -14,17 +15,22 @@ import com.wecloud.im.sdk.model.BannedUserRequest;
import
com.wecloud.im.sdk.model.ChatRoomMember
;
import
com.wecloud.im.sdk.model.ChatRoomMember
;
import
com.wecloud.im.sdk.model.ClientLoginRequest
;
import
com.wecloud.im.sdk.model.ClientLoginRequest
;
import
com.wecloud.im.sdk.model.ClientRelation
;
import
com.wecloud.im.sdk.model.ClientRelation
;
import
com.wecloud.im.sdk.model.GetUserAttributesRequest
;
import
com.wecloud.im.sdk.model.ImClient
;
import
com.wecloud.im.sdk.model.ImClient
;
import
com.wecloud.im.sdk.model.ListChatRoomMemberRequest
;
import
com.wecloud.im.sdk.model.ListChatRoomMemberRequest
;
import
com.wecloud.im.sdk.model.ModifyUserAttributesRequest
;
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
;
import
com.wecloud.im.sdk.model.Token
;
import
com.wecloud.im.sdk.model.Token
;
import
com.wecloud.im.sdk.model.UserAttributes
;
import
com.wecloud.im.sdk.model.UserRelationRequest
;
import
com.wecloud.im.sdk.model.UserRelationRequest
;
import
com.wecloud.im.sdk.model.UsersRelationRequest
;
import
com.wecloud.im.sdk.model.UsersRelationRequest
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
BANNED_USER_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
BANNED_USER_REQUEST
;
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_USER_ATTRIBUTES_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
LIST_CHAT_ROOM_MEMBER_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
LIST_CHAT_ROOM_MEMBER_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
MODIFY_USER_ATTRIBUTES_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
MODIFY_USER_URL
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
MODIFY_USER_URL
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
REGISTER_CLIENT_URL
;
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
.
ResourcePathConstants
.
USER_RELATION_REQUEST
;
...
@@ -200,4 +206,40 @@ public class WecloudImUserOperation extends WecloudImOperation {
...
@@ -200,4 +206,40 @@ public class WecloudImUserOperation extends WecloudImOperation {
Boolean
flag
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
result
),
Boolean
.
class
);
Boolean
flag
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
result
),
Boolean
.
class
);
return
flag
;
return
flag
;
}
}
public
UserAttributes
getUserAttributes
(
GetUserAttributesRequest
getUserAttributesRequest
)
{
String
userId
=
getUserAttributesRequest
.
getUserId
();
assertParameterNotBlank
(
userId
,
"userId"
);
Map
<
String
,
String
>
param
=
new
HashMap
<>();
param
.
put
(
"userId"
,
userId
);
// 发送请求
RequestMessage
request
=
new
WecloudRequestMessageBuilder
().
setEndpoint
(
GET_USER_ATTRIBUTES_REQUEST
)
.
setMethod
(
HttpMethod
.
GET
).
setParameters
(
param
)
.
setOriginalRequest
(
getUserAttributesRequest
).
build
();
Object
result
=
doOperation
(
request
);
UserAttributes
userAttributes
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
result
),
UserAttributes
.
class
);
return
userAttributes
;
}
public
Boolean
modifyUserAttributes
(
ModifyUserAttributesRequest
modifyUserAttributesRequest
)
{
String
userId
=
modifyUserAttributesRequest
.
getUserId
();
UserAttributes
attributes
=
modifyUserAttributesRequest
.
getAttributes
();
assertParameterNotBlank
(
userId
,
"userId"
);
assertParameterNotNull
(
attributes
,
"attributes"
);
// 校验通过 构建参数
TypeReference
<
Map
<
String
,
String
>>
typeReference
=
new
TypeReference
<
Map
<
String
,
String
>>()
{
};
Map
<
String
,
String
>
param
=
JSONObject
.
parseObject
(
JSON
.
toJSONString
(
modifyUserAttributesRequest
),
typeReference
);
// 发送请求
RequestMessage
request
=
new
WecloudRequestMessageBuilder
().
setEndpoint
(
MODIFY_USER_ATTRIBUTES_REQUEST
)
.
setMethod
(
HttpMethod
.
POST
).
setParameters
(
param
)
.
setOriginalRequest
(
modifyUserAttributesRequest
).
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/GetUserAttributesRequest.java
0 → 100644
View file @
9e886eab
package
com
.
wecloud
.
im
.
sdk
.
model
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
*
* @Author luozh
* @Date 2022年05月19日 16:50
* @Version 1.0
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Builder
@Data
public
class
GetUserAttributesRequest
extends
WebServiceRequest
{
/**
* 用户id
*/
private
String
userId
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/ModifyUserAttributesRequest.java
0 → 100644
View file @
9e886eab
package
com
.
wecloud
.
im
.
sdk
.
model
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
*
* @Author luozh
* @Date 2022年05月19日 16:50
* @Version 1.0
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Builder
@Data
public
class
ModifyUserAttributesRequest
extends
WebServiceRequest
{
/**
* 用户id
*/
private
String
userId
;
/**
* 参数
*/
private
UserAttributes
attributes
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/UserAttributes.java
0 → 100644
View file @
9e886eab
package
com
.
wecloud
.
im
.
sdk
.
model
;
import
java.util.Collection
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Set
;
import
cn.hutool.core.lang.Assert
;
/**
*
* @Author luozh
* @Date 2022年05月19日 16:30
* @Version 1.0
*/
public
class
UserAttributes
extends
HashMap
<
String
,
Object
>
{
final
Map
<
String
,
Object
>
attributes
;
public
UserAttributes
()
{
attributes
=
new
HashMap
<>(
8
);
}
public
UserAttributes
(
Map
<
String
,
Object
>
attributes
)
{
Assert
.
notNull
(
attributes
,
"MultiValueMap must not be null"
);
this
.
attributes
=
attributes
;
}
public
void
add
(
String
key
,
Object
value
)
{
this
.
attributes
.
put
(
key
,
value
);
}
// Map implementation
@Override
public
int
size
()
{
return
this
.
attributes
.
size
();
}
@Override
public
boolean
isEmpty
()
{
return
this
.
attributes
.
isEmpty
();
}
@Override
public
boolean
containsKey
(
Object
key
)
{
return
this
.
attributes
.
containsKey
(
key
);
}
@Override
public
boolean
containsValue
(
Object
value
)
{
return
this
.
attributes
.
containsValue
(
value
);
}
@Override
public
Object
get
(
Object
key
)
{
return
this
.
attributes
.
get
(
key
);
}
@Override
public
Object
put
(
String
key
,
Object
value
)
{
return
this
.
attributes
.
put
(
key
,
value
);
}
@Override
public
Object
remove
(
Object
key
)
{
return
this
.
attributes
.
remove
(
key
);
}
@Override
public
void
putAll
(
Map
<?
extends
String
,
?
extends
Object
>
map
)
{
this
.
attributes
.
putAll
(
map
);
}
@Override
public
void
clear
()
{
this
.
attributes
.
clear
();
}
@Override
public
Set
<
String
>
keySet
()
{
return
this
.
attributes
.
keySet
();
}
@Override
public
Collection
<
Object
>
values
()
{
return
this
.
attributes
.
values
();
}
@Override
public
Set
<
Entry
<
String
,
Object
>>
entrySet
()
{
return
this
.
attributes
.
entrySet
();
}
@Override
public
boolean
equals
(
Object
other
)
{
if
(
this
==
other
)
{
return
true
;
}
if
(!(
other
instanceof
UserAttributes
))
{
return
false
;
}
UserAttributes
otherUserAttributes
=
(
UserAttributes
)
other
;
return
this
.
attributes
.
equals
(
otherUserAttributes
.
attributes
);
}
@Override
public
int
hashCode
()
{
return
this
.
attributes
.
hashCode
();
}
}
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