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
cc02bc27
Commit
cc02bc27
authored
May 31, 2022
by
Shadow
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sdk 增加创建群聊接口
parent
800059ef
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
240 additions
and
18 deletions
+240
-18
core/src/main/java/com/wecloud/im/controller/ImConversationController.java
+12
-0
core/src/main/java/com/wecloud/im/param/add/ImConversationCreate.java
+6
-0
core/src/main/java/com/wecloud/im/param/add/ServerImConversationCreate.java
+1
-1
core/src/main/java/com/wecloud/im/service/ImConversationService.java
+8
-0
core/src/main/java/com/wecloud/im/service/impl/ImCallbackServiceImpl.java
+12
-0
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
+42
-5
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
+6
-1
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
+19
-9
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
+12
-0
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImConversationOperation.java
+36
-0
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImSystemNotificationOperation.java
+2
-2
im-sdk/src/main/java/com/wecloud/im/sdk/model/CreateConversation.java
+41
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/CreateConversationRequest.java
+43
-0
No files found.
core/src/main/java/com/wecloud/im/controller/ImConversationController.java
View file @
cc02bc27
...
@@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
...
@@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
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.wecloud.im.entity.ImConversation
;
import
com.wecloud.im.param.ChatRoomMemberPageParam
;
import
com.wecloud.im.param.ChatRoomMemberPageParam
;
import
com.wecloud.im.param.DisbandConversationParam
;
import
com.wecloud.im.param.DisbandConversationParam
;
import
com.wecloud.im.param.ExitChatRoomParam
;
import
com.wecloud.im.param.ExitChatRoomParam
;
...
@@ -289,5 +290,16 @@ public class ImConversationController extends BaseController {
...
@@ -289,5 +290,16 @@ public class ImConversationController extends BaseController {
return
ApiResult
.
ok
(
conversationList
);
return
ApiResult
.
ok
(
conversationList
);
}
}
/**
* 创建会话
*/
@PostMapping
(
"/sdk/create"
)
@ApiOperation
(
value
=
"创建会话"
,
notes
=
"后台可配置:两个客户端如果已经创建过会话,是否重复创建会话"
)
public
ApiResult
<
Long
>
create
(
@RequestBody
ImConversationCreate
imConversationCreate
)
throws
Exception
{
log
.
info
(
"sdk 创建会话入参 {}"
,
JSON
.
toJSONString
(
imConversationCreate
));
ImConversation
conversation
=
imConversationService
.
serverCreateImConversation
(
imConversationCreate
);
return
ApiResult
.
ok
(
conversation
.
getId
());
}
}
}
core/src/main/java/com/wecloud/im/param/add/ImConversationCreate.java
View file @
cc02bc27
...
@@ -34,6 +34,12 @@ public class ImConversationCreate extends BaseEntity {
...
@@ -34,6 +34,12 @@ public class ImConversationCreate extends BaseEntity {
@ApiModelProperty
(
"可选 邀请加入会话的客户端,如创建单聊,则填入对方的clientId"
)
@ApiModelProperty
(
"可选 邀请加入会话的客户端,如创建单聊,则填入对方的clientId"
)
private
List
<
String
>
clientIds
;
private
List
<
String
>
clientIds
;
@ApiModelProperty
(
"创建者id,sdk调用时传递该参数"
)
private
String
creatorUserId
;
@ApiModelProperty
(
"成员用户id,sdk调用时传递该参数"
)
private
String
memberUserIds
;
/**
/**
* @see com.wecloud.im.sdk.enums.ChatTypeEnum
* @see com.wecloud.im.sdk.enums.ChatTypeEnum
*/
*/
...
...
core/src/main/java/com/wecloud/im/param/add/ServerImConversationCreate.java
View file @
cc02bc27
...
@@ -31,7 +31,7 @@ public class ServerImConversationCreate implements Serializable {
...
@@ -31,7 +31,7 @@ public class ServerImConversationCreate implements Serializable {
private
String
name
;
private
String
name
;
/**
/**
*
tring
格式,可选 自定义属性,供开发者扩展使用。")
*
Map
格式,可选 自定义属性,供开发者扩展使用。")
*/
*/
private
Map
<
String
,
Object
>
attributes
;
private
Map
<
String
,
Object
>
attributes
;
...
...
core/src/main/java/com/wecloud/im/service/ImConversationService.java
View file @
cc02bc27
...
@@ -71,6 +71,14 @@ public interface ImConversationService extends BaseService<ImConversation> {
...
@@ -71,6 +71,14 @@ public interface ImConversationService extends BaseService<ImConversation> {
*/
*/
ImConversation
serverCreateImConversation
(
ServerImConversationCreate
imConversationCreate
);
ImConversation
serverCreateImConversation
(
ServerImConversationCreate
imConversationCreate
);
/**
* 创建会话 sdk用
*
* @param imConversationCreate
* @return
*/
ImConversation
serverCreateImConversation
(
ImConversationCreate
imConversationCreate
);
/**
/**
* 将用户添加进会话
* 将用户添加进会话
...
...
core/src/main/java/com/wecloud/im/service/impl/ImCallbackServiceImpl.java
View file @
cc02bc27
...
@@ -230,4 +230,16 @@ public class ImCallbackServiceImpl implements ImCallbackService {
...
@@ -230,4 +230,16 @@ public class ImCallbackServiceImpl implements ImCallbackService {
headers
.
add
(
"WECLOUD-IM-SIGNATURE"
,
signature
);
headers
.
add
(
"WECLOUD-IM-SIGNATURE"
,
signature
);
return
headers
;
return
headers
;
}
}
public
static
void
main
(
String
[]
args
)
{
// 计算 Signature (数据签名)
String
appKey
=
"QizKVHcILRWp6Td2"
;
String
appSecret
=
"287d04828099fb7de871e9dda845fa8b6b2302faf2ab3457"
;
String
nonce
=
NanoId
.
randomNanoId
();
String
date
=
DateUtil
.
formatHttpDate
(
new
Date
());
String
signature
=
SignUtils
.
buildSignature
(
appKey
,
appSecret
,
nonce
,
date
);
System
.
out
.
println
(
"nonce = "
+
nonce
);
System
.
out
.
println
(
"date = "
+
date
);
System
.
out
.
println
(
"signature = "
+
signature
);
}
}
}
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
View file @
cc02bc27
...
@@ -11,6 +11,7 @@ import io.geekidea.springbootplus.framework.shiro.util.SecurityUtils;
...
@@ -11,6 +11,7 @@ import io.geekidea.springbootplus.framework.shiro.util.SecurityUtils;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Collection
;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.Date
;
...
@@ -81,6 +82,7 @@ import com.wecloud.im.sdk.enums.GroupRoleEnum;
...
@@ -81,6 +82,7 @@ import com.wecloud.im.sdk.enums.GroupRoleEnum;
import
com.wecloud.im.sdk.enums.JoinConversationTypeEnum
;
import
com.wecloud.im.sdk.enums.JoinConversationTypeEnum
;
import
com.wecloud.im.sdk.enums.MutedEnum
;
import
com.wecloud.im.sdk.enums.MutedEnum
;
import
com.wecloud.im.service.ContextService
;
import
com.wecloud.im.service.ContextService
;
import
com.wecloud.im.service.ImApplicationService
;
import
com.wecloud.im.service.ImClientService
;
import
com.wecloud.im.service.ImClientService
;
import
com.wecloud.im.service.ImConversationMembersService
;
import
com.wecloud.im.service.ImConversationMembersService
;
import
com.wecloud.im.service.ImConversationService
;
import
com.wecloud.im.service.ImConversationService
;
...
@@ -93,6 +95,7 @@ import com.wecloud.im.vo.OfflineMsgDto;
...
@@ -93,6 +95,7 @@ import com.wecloud.im.vo.OfflineMsgDto;
import
com.wecloud.im.ws.enums.MsgTypeEnum
;
import
com.wecloud.im.ws.enums.MsgTypeEnum
;
import
com.wecloud.im.ws.enums.WsResponseCmdEnum
;
import
com.wecloud.im.ws.enums.WsResponseCmdEnum
;
import
com.wecloud.im.ws.utils.RedisUtils
;
import
com.wecloud.im.ws.utils.RedisUtils
;
import
com.wecloud.imserver.client.model.enums.DeviceTypeEnum
;
import
com.wecloud.utils.JsonUtils
;
import
com.wecloud.utils.JsonUtils
;
import
com.wecloud.utils.SnowflakeUtil
;
import
com.wecloud.utils.SnowflakeUtil
;
...
@@ -146,6 +149,9 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
...
@@ -146,6 +149,9 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
@Autowired
@Autowired
private
ChatRoomCacheManager
chatRoomCacheManager
;
private
ChatRoomCacheManager
chatRoomCacheManager
;
@Autowired
private
ImApplicationService
applicationService
;
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
@Override
public
boolean
saveImConversation
(
ImConversation
imConversation
)
{
public
boolean
saveImConversation
(
ImConversation
imConversation
)
{
...
@@ -218,6 +224,42 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
...
@@ -218,6 +224,42 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
}
}
@Override
@Override
public
ImConversation
serverCreateImConversation
(
ImConversationCreate
imConversationCreate
)
{
// 获取应用
Long
appId
=
SecurityUtils
.
getCurrentAppId
();
ImApplication
application
=
applicationService
.
getCacheById
(
appId
);
ImClient
creator
=
imClientService
.
getCacheImClient
(
appId
,
imConversationCreate
.
getCreatorUserId
());
List
<
String
>
memberIds
=
Arrays
.
asList
(
imConversationCreate
.
getMemberUserIds
().
split
(
","
));
// 获取群成员信息
List
<
ImClient
>
members
=
imClientService
.
list
(
Wrappers
.<
ImClient
>
lambdaQuery
().
eq
(
ImClient:
:
getFkAppid
,
appId
).
in
(
ImClient:
:
getClientId
,
memberIds
));
if
(
members
.
isEmpty
())
{
throw
new
BusinessException
(
"成员列表为空"
);
}
ChatTypeEnum
chatTypeEnum
=
null
;
for
(
ChatTypeEnum
value
:
ChatTypeEnum
.
values
())
{
if
(
value
.
getCode
().
equals
(
imConversationCreate
.
getChatType
()))
{
chatTypeEnum
=
value
;
break
;
}
}
ServerImConversationCreate
conversationCreate
=
new
ServerImConversationCreate
();
conversationCreate
.
setName
(
imConversationCreate
.
getName
());
conversationCreate
.
setAttributes
(
imConversationCreate
.
getAttributes
());
conversationCreate
.
setApplication
(
application
);
conversationCreate
.
setCreator
(
creator
);
conversationCreate
.
setMembers
(
members
);
conversationCreate
.
setChatType
(
chatTypeEnum
);
conversationCreate
.
setPlatform
(
DeviceTypeEnum
.
IOS
);
return
this
.
serverCreateImConversation
(
conversationCreate
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
addClientToConversation
(
ImClientToConversation
imClientToConversation
)
{
public
Boolean
addClientToConversation
(
ImClientToConversation
imClientToConversation
)
{
...
@@ -1315,11 +1357,6 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
...
@@ -1315,11 +1357,6 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
// 如果存在重复单聊类型会话,则不会为空
// 如果存在重复单聊类型会话,则不会为空
ImConversation
existConversation
=
imConversationMapper
.
getRepetitionConversationSingle
(
creator
.
getId
(),
memberClient
.
getId
());
ImConversation
existConversation
=
imConversationMapper
.
getRepetitionConversationSingle
(
creator
.
getId
(),
memberClient
.
getId
());
if
(
existConversation
!=
null
)
{
if
(
existConversation
!=
null
)
{
// 双方可见
List
<
ImConversationMembers
>
memberList
=
imConversationMembersService
.
list
(
Wrappers
.<
ImConversationMembers
>
lambdaQuery
().
eq
(
ImConversationMembers:
:
getFkConversationId
,
existConversation
.
getId
()));
imConversationMembersService
.
updateBatchById
(
memberList
);
log
.
info
(
"存在重复的系统类型会话,返回已存在的系统类型会话id: {}"
,
existConversation
.
getId
());
log
.
info
(
"存在重复的系统类型会话,返回已存在的系统类型会话id: {}"
,
existConversation
.
getId
());
// 返回已存在的单聊类型会话id
// 返回已存在的单聊类型会话id
return
existConversation
;
return
existConversation
;
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
View file @
cc02bc27
...
@@ -174,6 +174,11 @@ public class ResourcePathConstants {
...
@@ -174,6 +174,11 @@ public class ResourcePathConstants {
/**
/**
* 单次发布
* 单次发布
*/
*/
public
static
final
String
SINGLE_USER_NOTIFICATION
=
"/api/imMessage/system-notification/publish"
;
public
static
final
String
SINGLE_USER_NOTIFICATION_REQUEST
=
"/api/imMessage/system-notification/publish"
;
/**
* 创建会话
*/
public
static
final
String
CREATE_CONVERSATION_REQUEST
=
"/api/conversation/sdk/create"
;
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
View file @
cc02bc27
...
@@ -7,6 +7,7 @@ import com.wecloud.im.sdk.model.Blacklist;
...
@@ -7,6 +7,7 @@ import com.wecloud.im.sdk.model.Blacklist;
import
com.wecloud.im.sdk.model.ChatRoomMember
;
import
com.wecloud.im.sdk.model.ChatRoomMember
;
import
com.wecloud.im.sdk.model.ClientRelation
;
import
com.wecloud.im.sdk.model.ClientRelation
;
import
com.wecloud.im.sdk.model.Conversation
;
import
com.wecloud.im.sdk.model.Conversation
;
import
com.wecloud.im.sdk.model.CreateConversation
;
import
com.wecloud.im.sdk.model.Friend
;
import
com.wecloud.im.sdk.model.Friend
;
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
;
...
@@ -171,6 +172,23 @@ public interface WecloudIm {
...
@@ -171,6 +172,23 @@ public interface WecloudIm {
PageResult
<
Blacklist
>
pageBlacklist
(
Integer
pageIndex
,
Integer
pageSize
,
String
userId
);
PageResult
<
Blacklist
>
pageBlacklist
(
Integer
pageIndex
,
Integer
pageSize
,
String
userId
);
/**
/**
* 创建会话
* @Author Shadow
* @Date 2022年05月31日 03:54:49
* @param
* @Return
*/
Long
createConversation
(
CreateConversation
createConversation
);
/**
* 批量获取会话信息
* @param chatType 会话属性,1:单聊,2:普通群,3:万人群,4:聊天室
* @param conversationIds
* @return
*/
List
<
Conversation
>
listConversation
(
Integer
chatType
,
List
<
Long
>
conversationIds
);
/**
* 设置会话置顶
* 设置会话置顶
* @Author luozh
* @Author luozh
* @Date 2022年04月26日 03:33:44
* @Date 2022年04月26日 03:33:44
...
@@ -210,14 +228,6 @@ public interface WecloudIm {
...
@@ -210,14 +228,6 @@ public interface WecloudIm {
List
<
ChatRoomMember
>
listChatRoomMember
(
Long
chatRoomId
);
List
<
ChatRoomMember
>
listChatRoomMember
(
Long
chatRoomId
);
/**
/**
* 批量获取会话信息
* @param chatType 会话属性,1:单聊,2:普通群,3:万人群,4:聊天室
* @param conversationIds
* @return
*/
List
<
Conversation
>
listConversation
(
Integer
chatType
,
List
<
Long
>
conversationIds
);
/**
* 发布群聊消息
* 发布群聊消息
* @Author luozh
* @Author luozh
* @Date 2022年05月05日 09:38:34
* @Date 2022年05月05日 09:38:34
...
@@ -257,7 +267,7 @@ public interface WecloudIm {
...
@@ -257,7 +267,7 @@ public interface WecloudIm {
* 创建群组
* 创建群组
* @Author luozh
* @Author luozh
* @Date 2022年05月09日 06:34:58
* @Date 2022年05月09日 06:34:58
* @param
u
serId 用户id
* @param
groupOwnerU
serId 用户id
* @param groupName 用户名称
* @param groupName 用户名称
* @param memberIds 群成员
* @param memberIds 群成员
* @Return 创建结果 true/false
* @Return 创建结果 true/false
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
View file @
cc02bc27
...
@@ -165,6 +165,18 @@ public class WecloudImClient implements WecloudIm {
...
@@ -165,6 +165,18 @@ public class WecloudImClient implements WecloudIm {
}
}
@Override
@Override
public
Long
createConversation
(
CreateConversation
createConversation
)
{
CreateConversationRequest
request
=
CreateConversationRequest
.
builder
()
.
name
(
createConversation
.
getName
())
.
creatorUserId
(
createConversation
.
getCreatorUserId
())
.
memberUserIds
(
createConversation
.
getMemberUserIds
())
.
chatType
(
createConversation
.
getChatType
())
.
attributes
(
createConversation
.
getAttributes
())
.
build
();
return
imConversationOperation
.
create
(
request
);
}
@Override
public
List
<
Conversation
>
listConversation
(
Integer
chatType
,
List
<
Long
>
conversationIds
)
{
public
List
<
Conversation
>
listConversation
(
Integer
chatType
,
List
<
Long
>
conversationIds
)
{
ListConversationRequest
request
=
ListConversationRequest
.
builder
().
chatType
(
chatType
)
ListConversationRequest
request
=
ListConversationRequest
.
builder
().
chatType
(
chatType
)
.
conversationIds
(
conversationIds
).
build
();
.
conversationIds
(
conversationIds
).
build
();
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImConversationOperation.java
View file @
cc02bc27
package
com
.
wecloud
.
im
.
sdk
.
internal
;
package
com
.
wecloud
.
im
.
sdk
.
internal
;
import
java.net.URL
;
import
java.net.URL
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
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
;
import
com.wecloud.im.sdk.exception.WecloudException
;
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.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
.
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
.
LIST_CONVERSATION_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
LIST_CONVERSATION_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
utils
.
CodingUtils
.
assertParameterNotBlank
;
import
static
com
.
wecloud
.
im
.
sdk
.
utils
.
CodingUtils
.
assertParameterNotNull
;
import
static
com
.
wecloud
.
im
.
sdk
.
utils
.
CodingUtils
.
assertParameterNotNull
;
/**
/**
...
@@ -115,4 +121,34 @@ public class WecloudImConversationOperation extends WecloudImOperation {
...
@@ -115,4 +121,34 @@ public class WecloudImConversationOperation extends WecloudImOperation {
List
<
Conversation
>
conversations
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
result
),
typeReference
);
List
<
Conversation
>
conversations
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
result
),
typeReference
);
return
conversations
;
return
conversations
;
}
}
/**
* 创建会话
* @Author Shadow
* @Date 2022年05月31日 04:26:58
* @param createConversationRequest 创建会话请求
* @Return 会话id
*/
public
Long
create
(
CreateConversationRequest
createConversationRequest
)
{
// 参数校验
assertParameterNotBlank
(
createConversationRequest
.
getName
(),
"name"
);
assertParameterNotBlank
(
createConversationRequest
.
getCreatorUserId
(),
"creatorUserId"
);
assertParameterNotBlank
(
createConversationRequest
.
getMemberUserIds
(),
"memberUserIds"
);
assertParameterNotBlank
(
createConversationRequest
.
getChatType
(),
"chatType"
);
// 校验chatType
String
[]
allowType
=
new
String
[]{
"1"
,
"5"
,
"6"
};
if
(!
Arrays
.
asList
(
allowType
).
contains
(
createConversationRequest
.
getChatType
()))
{
throw
new
WecloudException
(
"chatType 只能为 1 5 6"
);
}
// 校验通过 构建参数
TypeReference
<
Map
<
String
,
Object
>>
typeReference
=
new
TypeReference
<
Map
<
String
,
Object
>>()
{
};
Map
<
String
,
Object
>
param
=
JSONObject
.
parseObject
(
JSON
.
toJSONString
(
createConversationRequest
),
typeReference
);
// 发送请求
RequestMessage
request
=
new
WecloudRequestMessageBuilder
().
setEndpoint
(
CREATE_CONVERSATION_REQUEST
)
.
setMethod
(
HttpMethod
.
POST
).
setParameters
(
param
)
.
setOriginalRequest
(
createConversationRequest
).
build
();
Object
result
=
doOperation
(
request
);
return
JSON
.
parseObject
(
JSON
.
toJSONString
(
result
),
Long
.
class
);
}
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImSystemNotificationOperation.java
View file @
cc02bc27
...
@@ -10,7 +10,7 @@ import com.wecloud.im.sdk.common.HttpMethod;
...
@@ -10,7 +10,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.SingleUserNotificationRequest
;
import
com.wecloud.im.sdk.model.SingleUserNotificationRequest
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
SINGLE_USER_NOTIFICATION
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
SINGLE_USER_NOTIFICATION
_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
utils
.
CodingUtils
.
assertParameterNotNull
;
import
static
com
.
wecloud
.
im
.
sdk
.
utils
.
CodingUtils
.
assertParameterNotNull
;
/**
/**
...
@@ -40,7 +40,7 @@ public class WecloudImSystemNotificationOperation extends WecloudImOperation {
...
@@ -40,7 +40,7 @@ public class WecloudImSystemNotificationOperation extends WecloudImOperation {
};
};
Map
<
String
,
Object
>
param
=
JSONObject
.
parseObject
(
JSON
.
toJSONString
(
singleUserNotificationRequest
),
typeReference
);
Map
<
String
,
Object
>
param
=
JSONObject
.
parseObject
(
JSON
.
toJSONString
(
singleUserNotificationRequest
),
typeReference
);
// 发送请求
// 发送请求
RequestMessage
request
=
new
WecloudRequestMessageBuilder
().
setEndpoint
(
SINGLE_USER_NOTIFICATION
)
RequestMessage
request
=
new
WecloudRequestMessageBuilder
().
setEndpoint
(
SINGLE_USER_NOTIFICATION
_REQUEST
)
.
setMethod
(
HttpMethod
.
POST
).
setParameters
(
param
)
.
setMethod
(
HttpMethod
.
POST
).
setParameters
(
param
)
.
setOriginalRequest
(
singleUserNotificationRequest
).
build
();
.
setOriginalRequest
(
singleUserNotificationRequest
).
build
();
doOperation
(
request
);
doOperation
(
request
);
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/model/CreateConversation.java
0 → 100644
View file @
cc02bc27
package
com
.
wecloud
.
im
.
sdk
.
model
;
import
lombok.Data
;
import
java.util.Map
;
/**
* 创建会话
* @Author luozh
* @Date 2022年05月31日 16:09
* @Version 1.0
*/
@Data
public
class
CreateConversation
{
/**
* 会话名称
*/
private
String
name
;
/**
* 创建人用户id
*/
private
String
creatorUserId
;
/**
* 成员用户id
*/
private
String
memberUserIds
;
/**
* 会话属性,1:单聊 5:临时会话 6:系统会话
*/
private
String
chatType
;
/**
* Map格式,可选 自定义属性,供开发者扩展使用。")
*/
private
Map
<
String
,
Object
>
attributes
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/CreateConversationRequest.java
0 → 100644
View file @
cc02bc27
package
com
.
wecloud
.
im
.
sdk
.
model
;
import
lombok.Builder
;
import
lombok.Data
;
import
java.util.Map
;
/**
* 创建会话
* @Author luozh
* @Date 2022年05月31日 16:09
* @Version 1.0
*/
@Data
@Builder
public
class
CreateConversationRequest
extends
WebServiceRequest
{
/**
* 会话名称
*/
private
String
name
;
/**
* 创建人用户id
*/
private
String
creatorUserId
;
/**
* 成员用户id
*/
private
String
memberUserIds
;
/**
* 会话属性,1:单聊 5:临时会话 6:系统会话
*/
private
String
chatType
;
/**
* Map格式,可选 自定义属性,供开发者扩展使用。")
*/
private
Map
<
String
,
Object
>
attributes
;
}
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