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
0ee2a88e
Commit
0ee2a88e
authored
Jun 06, 2022
by
Shadow
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加addOrModifyConversationAttributes接口
parent
e5fc0ced
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
179 additions
and
1 deletions
+179
-1
core/src/main/java/com/wecloud/im/controller/ImConversationController.java
+12
-0
core/src/main/java/com/wecloud/im/param/add/AddOrModifyAttributeParam.java
+19
-0
core/src/main/java/com/wecloud/im/service/ImConversationService.java
+9
-0
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
+29
-0
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
+6
-0
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
+10
-0
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
+11
-0
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImConversationOperation.java
+21
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/AddOrModifyConversationAttributeRequest.java
+29
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/Conversation.java
+1
-1
im-sdk/src/main/java/com/wecloud/im/sdk/sample/AddOrModifyConversationAttributesSample.java
+32
-0
No files found.
core/src/main/java/com/wecloud/im/controller/ImConversationController.java
View file @
0ee2a88e
...
@@ -31,6 +31,7 @@ import com.wecloud.im.param.MutedGroupParam;
...
@@ -31,6 +31,7 @@ import com.wecloud.im.param.MutedGroupParam;
import
com.wecloud.im.param.SetAdminsParam
;
import
com.wecloud.im.param.SetAdminsParam
;
import
com.wecloud.im.param.SetHeadPortraitParam
;
import
com.wecloud.im.param.SetHeadPortraitParam
;
import
com.wecloud.im.param.TransferOwnerParam
;
import
com.wecloud.im.param.TransferOwnerParam
;
import
com.wecloud.im.param.add.AddOrModifyAttributeParam
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImConversationAttrUpdate
;
import
com.wecloud.im.param.add.ImConversationAttrUpdate
;
...
@@ -301,5 +302,16 @@ public class ImConversationController extends BaseController {
...
@@ -301,5 +302,16 @@ public class ImConversationController extends BaseController {
return
ApiResult
.
ok
(
conversation
.
getId
());
return
ApiResult
.
ok
(
conversation
.
getId
());
}
}
/**
* 创建会话
*/
@PostMapping
(
"/sdk/addOrModifyAttribute"
)
@ApiOperation
(
value
=
"修改会话拓展参"
)
public
ApiResult
<
Boolean
>
addOrModifyAttribute
(
@RequestBody
AddOrModifyAttributeParam
addOrModifyAttributeParam
)
throws
Exception
{
log
.
info
(
"sdk 修改会话拓展参数入参 {}"
,
JSON
.
toJSONString
(
addOrModifyAttributeParam
));
return
ApiResult
.
ok
(
imConversationService
.
addOrModifyAttribute
(
addOrModifyAttributeParam
));
}
}
}
core/src/main/java/com/wecloud/im/param/add/AddOrModifyAttributeParam.java
0 → 100644
View file @
0ee2a88e
package
com
.
wecloud
.
im
.
param
.
add
;
import
lombok.Data
;
import
java.util.Map
;
/**
*
* @Author luozh
* @Date 2022年06月06日 11:17
* @Version 1.0
*/
@Data
public
class
AddOrModifyAttributeParam
{
private
Long
conversationId
;
private
Map
<
String
,
Object
>
attribute
;
}
core/src/main/java/com/wecloud/im/service/ImConversationService.java
View file @
0ee2a88e
...
@@ -26,6 +26,7 @@ import com.wecloud.im.param.MutedGroupParam;
...
@@ -26,6 +26,7 @@ import com.wecloud.im.param.MutedGroupParam;
import
com.wecloud.im.param.SetAdminsParam
;
import
com.wecloud.im.param.SetAdminsParam
;
import
com.wecloud.im.param.SetHeadPortraitParam
;
import
com.wecloud.im.param.SetHeadPortraitParam
;
import
com.wecloud.im.param.TransferOwnerParam
;
import
com.wecloud.im.param.TransferOwnerParam
;
import
com.wecloud.im.param.add.AddOrModifyAttributeParam
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImConversationAttrUpdate
;
import
com.wecloud.im.param.add.ImConversationAttrUpdate
;
...
@@ -307,4 +308,12 @@ public interface ImConversationService extends BaseService<ImConversation> {
...
@@ -307,4 +308,12 @@ public interface ImConversationService extends BaseService<ImConversation> {
ImMessage
message
,
Object
content
);
ImMessage
message
,
Object
content
);
/**
* 添加或修改会话拓展参数
* @Author Shadow
* @Date 2022年06月06日 11:19:34
* @param addOrModifyAttributeParam
* @Return
*/
Boolean
addOrModifyAttribute
(
AddOrModifyAttributeParam
addOrModifyAttributeParam
);
}
}
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
View file @
0ee2a88e
...
@@ -32,6 +32,7 @@ import cn.hutool.core.date.DateUtil;
...
@@ -32,6 +32,7 @@ import cn.hutool.core.date.DateUtil;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
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
;
...
@@ -66,6 +67,7 @@ import com.wecloud.im.param.MutedGroupParam;
...
@@ -66,6 +67,7 @@ import com.wecloud.im.param.MutedGroupParam;
import
com.wecloud.im.param.SetAdminsParam
;
import
com.wecloud.im.param.SetAdminsParam
;
import
com.wecloud.im.param.SetHeadPortraitParam
;
import
com.wecloud.im.param.SetHeadPortraitParam
;
import
com.wecloud.im.param.TransferOwnerParam
;
import
com.wecloud.im.param.TransferOwnerParam
;
import
com.wecloud.im.param.add.AddOrModifyAttributeParam
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImConversationAttrUpdate
;
import
com.wecloud.im.param.add.ImConversationAttrUpdate
;
...
@@ -1297,6 +1299,33 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
...
@@ -1297,6 +1299,33 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
}
}
}
}
@Override
public
Boolean
addOrModifyAttribute
(
AddOrModifyAttributeParam
addOrModifyAttributeParam
)
{
Long
appId
=
SecurityUtils
.
getCurrentAppId
();
ImConversation
conversation
=
this
.
getOne
(
Wrappers
.<
ImConversation
>
lambdaQuery
().
eq
(
ImConversation:
:
getId
,
addOrModifyAttributeParam
.
getConversationId
()).
eq
(
ImConversation:
:
getFkAppid
,
appId
));
Map
<
String
,
Object
>
attribute
=
addOrModifyAttributeParam
.
getAttribute
();
if
(
conversation
==
null
)
{
throw
new
BusinessException
(
"会话不存在"
);
}
TypeReference
<
Map
<
String
,
Object
>>
typeReference
=
new
TypeReference
<
Map
<
String
,
Object
>>()
{
};
Map
<
String
,
Object
>
conversationAttribute
=
JSONObject
.
parseObject
(
conversation
.
getAttributes
(),
typeReference
);
if
(
conversationAttribute
==
null
)
{
conversationAttribute
=
Maps
.
newHashMap
();
}
if
(
attribute
==
null
||
attribute
.
isEmpty
())
{
conversationAttribute
=
Maps
.
newHashMap
();
}
else
{
conversationAttribute
.
putAll
(
attribute
);
}
conversation
.
setAttributes
(
JsonUtils
.
encodeJson
(
conversationAttribute
));
return
this
.
updateById
(
conversation
);
}
/**
/**
* 创建加密会话
* 创建加密会话
*
*
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
View file @
0ee2a88e
...
@@ -181,4 +181,10 @@ public class ResourcePathConstants {
...
@@ -181,4 +181,10 @@ public class ResourcePathConstants {
*/
*/
public
static
final
String
CREATE_CONVERSATION_REQUEST
=
"/api/conversation/sdk/create"
;
public
static
final
String
CREATE_CONVERSATION_REQUEST
=
"/api/conversation/sdk/create"
;
/**
* 添加或修改会话拓展参数
*/
public
static
final
String
ADD_OR_MODIFY_CONVERSATION_ATTRIBUTE_REQUEST
=
"/api/conversation/sdk"
+
"/addOrModifyAttribute"
;
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
View file @
0ee2a88e
package
com
.
wecloud
.
im
.
sdk
;
package
com
.
wecloud
.
im
.
sdk
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
com.wecloud.im.sdk.model.Attributes
;
import
com.wecloud.im.sdk.model.Attributes
;
import
com.wecloud.im.sdk.model.Blacklist
;
import
com.wecloud.im.sdk.model.Blacklist
;
...
@@ -189,6 +190,15 @@ public interface WecloudIm {
...
@@ -189,6 +190,15 @@ public interface WecloudIm {
List
<
Conversation
>
listConversation
(
Integer
chatType
,
List
<
Long
>
conversationIds
);
List
<
Conversation
>
listConversation
(
Integer
chatType
,
List
<
Long
>
conversationIds
);
/**
/**
* 添加或修改会话拓展信息
* @Author Shadow
* @Date 2022年06月06日 11:08:30
* @param
* @Return
*/
Boolean
addOrModifyConversationAttribute
(
Long
conversationId
,
Map
<
String
,
Object
>
attribute
);
/**
* 设置会话置顶
* 设置会话置顶
* @Author luozh
* @Author luozh
* @Date 2022年04月26日 03:33:44
* @Date 2022年04月26日 03:33:44
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
View file @
0ee2a88e
...
@@ -2,6 +2,7 @@ package com.wecloud.im.sdk;
...
@@ -2,6 +2,7 @@ package com.wecloud.im.sdk;
import
java.net.URL
;
import
java.net.URL
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.lang.Assert
;
...
@@ -184,6 +185,16 @@ public class WecloudImClient implements WecloudIm {
...
@@ -184,6 +185,16 @@ public class WecloudImClient implements WecloudIm {
}
}
@Override
@Override
public
Boolean
addOrModifyConversationAttribute
(
Long
conversationId
,
Map
<
String
,
Object
>
attribute
)
{
AddOrModifyConversationAttributeRequest
request
=
AddOrModifyConversationAttributeRequest
.
builder
()
.
conversationId
(
conversationId
)
.
attribute
(
attribute
)
.
build
();
return
imConversationOperation
.
addOrModifyConversationAttribute
(
request
);
}
@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
();
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImConversationOperation.java
View file @
0ee2a88e
...
@@ -12,12 +12,14 @@ import com.alibaba.fastjson.TypeReference;
...
@@ -12,12 +12,14 @@ 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
;
import
com.wecloud.im.sdk.exception.WecloudImException
;
import
com.wecloud.im.sdk.exception.WecloudImException
;
import
com.wecloud.im.sdk.model.AddOrModifyConversationAttributeRequest
;
import
com.wecloud.im.sdk.model.Conversation
;
import
com.wecloud.im.sdk.model.Conversation
;
import
com.wecloud.im.sdk.model.CreateConversationRequest
;
import
com.wecloud.im.sdk.model.CreateConversationRequest
;
import
com.wecloud.im.sdk.model.ListConversationRequest
;
import
com.wecloud.im.sdk.model.ListConversationRequest
;
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
.
ADD_OR_MODIFY_CONVERSATION_ATTRIBUTE_REQUEST
;
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
.
CREATE_CONVERSATION_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
CREATE_CONVERSATION_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
LIST_CONVERSATION_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
LIST_CONVERSATION_REQUEST
;
...
@@ -151,4 +153,23 @@ public class WecloudImConversationOperation extends WecloudImOperation {
...
@@ -151,4 +153,23 @@ public class WecloudImConversationOperation extends WecloudImOperation {
Object
result
=
doOperation
(
request
);
Object
result
=
doOperation
(
request
);
return
JSON
.
parseObject
(
JSON
.
toJSONString
(
result
),
Long
.
class
);
return
JSON
.
parseObject
(
JSON
.
toJSONString
(
result
),
Long
.
class
);
}
}
public
Boolean
addOrModifyConversationAttribute
(
AddOrModifyConversationAttributeRequest
addOrModifyConversationAttributeRequest
)
{
// 参数校验
assertParameterNotNull
(
addOrModifyConversationAttributeRequest
.
getConversationId
(),
"conversationId"
);
if
(
addOrModifyConversationAttributeRequest
.
getAttribute
()
==
null
)
{
addOrModifyConversationAttributeRequest
.
setAttribute
(
new
HashMap
<>());
}
Map
<
String
,
Object
>
param
=
new
HashMap
<>();
param
.
put
(
"conversationId"
,
addOrModifyConversationAttributeRequest
.
getConversationId
());
param
.
put
(
"attribute"
,
addOrModifyConversationAttributeRequest
.
getAttribute
());
// 发送请求
RequestMessage
request
=
new
WecloudRequestMessageBuilder
().
setEndpoint
(
ADD_OR_MODIFY_CONVERSATION_ATTRIBUTE_REQUEST
)
.
setMethod
(
HttpMethod
.
POST
).
setParameters
(
param
)
.
setOriginalRequest
(
addOrModifyConversationAttributeRequest
).
build
();
Object
result
=
doOperation
(
request
);
return
JSON
.
parseObject
(
JSON
.
toJSONString
(
result
),
Boolean
.
class
);
}
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/AddOrModifyConversationAttributeRequest.java
0 → 100644
View file @
0ee2a88e
package
com
.
wecloud
.
im
.
sdk
.
model
;
import
lombok.Builder
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Map
;
/**
*
* @Author luozh
* @Date 2022年06月06日 11:10
* @Version 1.0
*/
@Getter
@Setter
@Builder
public
class
AddOrModifyConversationAttributeRequest
extends
WebServiceRequest
{
/**
* 会话id
*/
private
Long
conversationId
;
/**
* 拓展字段
*/
private
Map
<
String
,
Object
>
attribute
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/Conversation.java
View file @
0ee2a88e
...
@@ -66,7 +66,7 @@ public class Conversation implements Serializable {
...
@@ -66,7 +66,7 @@ public class Conversation implements Serializable {
private
String
members
;
private
String
members
;
/**
/**
* "会话属性,1:单聊
,2:普通群,3:万人群,
4:聊天室 5: 临时会话"
* "会话属性,1:单聊
2:普通群,3:万人群
4:聊天室 5: 临时会话"
*/
*/
private
Integer
chatType
;
private
Integer
chatType
;
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/sample/AddOrModifyConversationAttributesSample.java
0 → 100644
View file @
0ee2a88e
package
com
.
wecloud
.
im
.
sdk
.
sample
;
import
java.util.HashMap
;
import
com.wecloud.im.sdk.WecloudIm
;
import
com.wecloud.im.sdk.WecloudImClientBuilder
;
/**
*
* @Author luozh
* @Date 2022年05月10日 14:52
* @Version 1.0
*/
public
class
AddOrModifyConversationAttributesSample
{
private
static
final
String
ENDPOINT
=
"http://127.0.0.1:8082"
;
private
static
final
String
APP_KEY
=
"QizKVHcILRWp6Td2"
;
private
static
final
String
APP_SECRET
=
"287d04828099fb7de871e9dda845fa8b6b2302faf2ab3737"
;
public
static
void
main
(
String
[]
args
)
{
WecloudIm
im
=
new
WecloudImClientBuilder
().
build
(
ENDPOINT
,
APP_KEY
,
APP_SECRET
);
im
.
addOrModifyConversationAttribute
(
1533648070015918080L
,
new
HashMap
<
String
,
Object
>()
{
{
put
(
"baned"
,
true
);
}
});
}
}
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