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
2a81c114
Commit
2a81c114
authored
May 05, 2022
by
罗长华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sdk增加群聊消息发送,群聊状态消息发送接口
parent
36c9bfcd
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
432 additions
and
1 deletions
+432
-1
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
+11
-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
+27
-0
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImMessageOperation.java
+89
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/PublishGroupChatMessage.java
+68
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/PublishGroupChatMessageRequest.java
+70
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/PublishGroupChatStatusMessage.java
+43
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/PublishGroupChatStatusMessageRequest.java
+45
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/PushExtParam.java
+59
-0
No files found.
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
View file @
2a81c114
...
@@ -37,7 +37,7 @@ public class ResourcePathConstants {
...
@@ -37,7 +37,7 @@ public class ResourcePathConstants {
public
static
final
String
GET_FRIENDS
=
"/api/friend/sdk/getFriends"
;
public
static
final
String
GET_FRIENDS
=
"/api/friend/sdk/getFriends"
;
/**
/**
*
设置会话置顶
*
群设置
*/
*/
public
static
final
String
CHAT_SETTING
=
"/api/imConversationMembers/chatSetting"
;
public
static
final
String
CHAT_SETTING
=
"/api/imConversationMembers/chatSetting"
;
...
@@ -61,5 +61,15 @@ public class ResourcePathConstants {
...
@@ -61,5 +61,15 @@ public class ResourcePathConstants {
*/
*/
public
static
final
String
LIST_CONVERSATION_REQUEST
=
"/api/conversation/listConversation"
;
public
static
final
String
LIST_CONVERSATION_REQUEST
=
"/api/conversation/listConversation"
;
/**
* 发布群消息
*/
public
static
final
String
PUBLISH_GROUP_CHAT_MESSAGE_REQUEST
=
"/api/imMessage/group/publish"
;
/**
* 发布群状态消息
*/
public
static
final
String
PUBLISH_GROUP_CHAT_STATUS_MESSAGE_REQUEST
=
"/api/imMessage/group/status/publish"
;
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
View file @
2a81c114
...
@@ -6,6 +6,8 @@ import com.wecloud.im.sdk.model.ChatRoomMember;
...
@@ -6,6 +6,8 @@ import com.wecloud.im.sdk.model.ChatRoomMember;
import
com.wecloud.im.sdk.model.Conversation
;
import
com.wecloud.im.sdk.model.Conversation
;
import
com.wecloud.im.sdk.model.Friend
;
import
com.wecloud.im.sdk.model.Friend
;
import
com.wecloud.im.sdk.model.ImClient
;
import
com.wecloud.im.sdk.model.ImClient
;
import
com.wecloud.im.sdk.model.PublishGroupChatMessage
;
import
com.wecloud.im.sdk.model.PublishGroupChatStatusMessage
;
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
;
...
@@ -129,4 +131,22 @@ public interface WecloudIm {
...
@@ -129,4 +131,22 @@ public interface WecloudIm {
*/
*/
List
<
Conversation
>
listConversation
(
Integer
chatType
,
List
<
Long
>
conversationIds
);
List
<
Conversation
>
listConversation
(
Integer
chatType
,
List
<
Long
>
conversationIds
);
/**
* 发布群聊消息
* @Author luozh
* @Date 2022年05月05日 09:38:34
* @param publishGroupChatMessage 发布群聊消息参数
* @Return
*/
Boolean
publishGroupChatMessage
(
PublishGroupChatMessage
publishGroupChatMessage
);
/**
* 发布群聊状态消息
* @Author luozh
* @Date 2022年05月05日 09:38:34
* @param publishGroupChatstatusMessage 发布群聊消息参数
* @Return
*/
Boolean
publishGroupChatStatusMessage
(
PublishGroupChatStatusMessage
publishGroupChatstatusMessage
);
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
View file @
2a81c114
...
@@ -3,8 +3,12 @@ package com.wecloud.im.sdk;
...
@@ -3,8 +3,12 @@ package com.wecloud.im.sdk;
import
java.net.URL
;
import
java.net.URL
;
import
java.util.List
;
import
java.util.List
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.lang.Assert
;
import
com.wecloud.im.sdk.internal.WecloudImClientOperation
;
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.internal.WecloudImMessageOperation
;
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.Conversation
;
import
com.wecloud.im.sdk.model.Conversation
;
...
@@ -17,6 +21,10 @@ import com.wecloud.im.sdk.model.ImClient;
...
@@ -17,6 +21,10 @@ 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.ListConversationRequest
;
import
com.wecloud.im.sdk.model.ListConversationRequest
;
import
com.wecloud.im.sdk.model.ModifyUserRequest
;
import
com.wecloud.im.sdk.model.ModifyUserRequest
;
import
com.wecloud.im.sdk.model.PublishGroupChatMessage
;
import
com.wecloud.im.sdk.model.PublishGroupChatMessageRequest
;
import
com.wecloud.im.sdk.model.PublishGroupChatStatusMessage
;
import
com.wecloud.im.sdk.model.PublishGroupChatStatusMessageRequest
;
import
com.wecloud.im.sdk.model.RegisterClientRequest
;
import
com.wecloud.im.sdk.model.RegisterClientRequest
;
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
;
...
@@ -51,6 +59,8 @@ public class WecloudImClient implements WecloudIm {
...
@@ -51,6 +59,8 @@ public class WecloudImClient implements WecloudIm {
private
WecloudImConversationOperation
imConversationOperation
;
private
WecloudImConversationOperation
imConversationOperation
;
private
WecloudImMessageOperation
wecloudImMessageOperation
;
public
WecloudImClient
(
URL
apiDomain
,
String
appKey
,
String
appSecret
)
{
public
WecloudImClient
(
URL
apiDomain
,
String
appKey
,
String
appSecret
)
{
this
.
apiDomain
=
apiDomain
;
this
.
apiDomain
=
apiDomain
;
this
.
appKey
=
appKey
;
this
.
appKey
=
appKey
;
...
@@ -142,9 +152,26 @@ public class WecloudImClient implements WecloudIm {
...
@@ -142,9 +152,26 @@ public class WecloudImClient implements WecloudIm {
return
imConversationOperation
.
setConversationDoNotDisturb
(
setConversationDoNotDisturbRequest
);
return
imConversationOperation
.
setConversationDoNotDisturb
(
setConversationDoNotDisturbRequest
);
}
}
@Override
public
Boolean
publishGroupChatMessage
(
PublishGroupChatMessage
publishGroupChatMessage
)
{
Assert
.
notNull
(
publishGroupChatMessage
);
PublishGroupChatMessageRequest
request
=
BeanUtil
.
toBean
(
publishGroupChatMessage
,
PublishGroupChatMessageRequest
.
class
);
return
wecloudImMessageOperation
.
publishGroupChatMessage
(
request
);
}
@Override
public
Boolean
publishGroupChatStatusMessage
(
PublishGroupChatStatusMessage
publishGroupChatstatusMessage
)
{
Assert
.
notNull
(
publishGroupChatstatusMessage
);
PublishGroupChatStatusMessageRequest
request
=
BeanUtil
.
toBean
(
publishGroupChatstatusMessage
,
PublishGroupChatStatusMessageRequest
.
class
);
return
wecloudImMessageOperation
.
publishGroupChatStatusMessage
(
request
);
}
private
void
initOperations
()
{
private
void
initOperations
()
{
this
.
imClientOperation
=
new
WecloudImClientOperation
(
apiDomain
,
appKey
,
appSecret
);
this
.
imClientOperation
=
new
WecloudImClientOperation
(
apiDomain
,
appKey
,
appSecret
);
this
.
imConversationOperation
=
new
WecloudImConversationOperation
(
apiDomain
,
appKey
,
appSecret
);
this
.
imConversationOperation
=
new
WecloudImConversationOperation
(
apiDomain
,
appKey
,
appSecret
);
this
.
wecloudImMessageOperation
=
new
WecloudImMessageOperation
(
apiDomain
,
appKey
,
appSecret
);
}
}
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImMessageOperation.java
0 → 100644
View file @
2a81c114
package
com
.
wecloud
.
im
.
sdk
.
internal
;
import
java.net.URL
;
import
java.util.Map
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
import
com.wecloud.im.sdk.common.HttpMethod
;
import
com.wecloud.im.sdk.common.RequestMessage
;
import
com.wecloud.im.sdk.model.PublishGroupChatMessageRequest
;
import
com.wecloud.im.sdk.model.PublishGroupChatStatusMessageRequest
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
PUBLISH_GROUP_CHAT_MESSAGE_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
PUBLISH_GROUP_CHAT_STATUS_MESSAGE_REQUEST
;
import
static
com
.
wecloud
.
im
.
sdk
.
utils
.
CodingUtils
.
assertParameterNotNull
;
/**
*
* @Author luozh
* @Date 2022年05月05日 10:11
* @Version 1.0
*/
public
class
WecloudImMessageOperation
extends
WecloudImOperation
{
public
WecloudImMessageOperation
(
URL
apiDomain
,
String
appKey
,
String
appSecret
)
{
super
(
apiDomain
,
appKey
,
appSecret
);
}
/**
* 发布群消息
* @Author luozh
* @Date 2022年05月05日 10:49:47
* @param publishGroupChatMessageRequest
* @Return
*/
public
Boolean
publishGroupChatMessage
(
PublishGroupChatMessageRequest
publishGroupChatMessageRequest
)
{
String
fromUserId
=
publishGroupChatMessageRequest
.
getFromUserId
();
String
toGroupIds
=
publishGroupChatMessageRequest
.
getToGroupIds
();
String
messageType
=
publishGroupChatMessageRequest
.
getMessageType
();
String
content
=
publishGroupChatMessageRequest
.
getContent
();
// 必填参数校验
assertParameterNotNull
(
fromUserId
,
"fromUserId"
);
assertParameterNotNull
(
toGroupIds
,
"toGroupIds"
);
assertParameterNotNull
(
messageType
,
"messageType"
);
assertParameterNotNull
(
content
,
"content"
);
// 校验通过 构建参数
TypeReference
<
Map
<
String
,
String
>>
typeReference
=
new
TypeReference
<
Map
<
String
,
String
>>()
{
};
Map
<
String
,
String
>
param
=
JSONObject
.
parseObject
(
JSON
.
toJSONString
(
publishGroupChatMessageRequest
),
typeReference
);
// 发送请求
RequestMessage
request
=
new
WecloudRequestMessageBuilder
().
setEndpoint
(
PUBLISH_GROUP_CHAT_MESSAGE_REQUEST
)
.
setMethod
(
HttpMethod
.
POST
).
setParameters
(
param
)
.
setOriginalRequest
(
publishGroupChatMessageRequest
).
build
();
doOperation
(
request
);
return
true
;
}
/**
* 状态消息发送
* @Author luozh
* @Date 2022年05月05日 11:07:05
* @param publishGroupChatStatusMessageRequest
* @Return
*/
public
Boolean
publishGroupChatStatusMessage
(
PublishGroupChatStatusMessageRequest
publishGroupChatStatusMessageRequest
)
{
String
fromUserId
=
publishGroupChatStatusMessageRequest
.
getFromUserId
();
String
toGroupIds
=
publishGroupChatStatusMessageRequest
.
getToGroupIds
();
String
messageType
=
publishGroupChatStatusMessageRequest
.
getMessageType
();
String
content
=
publishGroupChatStatusMessageRequest
.
getContent
();
// 必填参数校验
assertParameterNotNull
(
fromUserId
,
"fromUserId"
);
assertParameterNotNull
(
toGroupIds
,
"toGroupIds"
);
assertParameterNotNull
(
messageType
,
"messageType"
);
assertParameterNotNull
(
content
,
"content"
);
// 校验通过 构建参数
TypeReference
<
Map
<
String
,
String
>>
typeReference
=
new
TypeReference
<
Map
<
String
,
String
>>()
{
};
Map
<
String
,
String
>
param
=
JSONObject
.
parseObject
(
JSON
.
toJSONString
(
publishGroupChatStatusMessageRequest
),
typeReference
);
// 发送请求
RequestMessage
request
=
new
WecloudRequestMessageBuilder
().
setEndpoint
(
PUBLISH_GROUP_CHAT_STATUS_MESSAGE_REQUEST
)
.
setMethod
(
HttpMethod
.
POST
).
setParameters
(
param
)
.
setOriginalRequest
(
publishGroupChatStatusMessageRequest
).
build
();
doOperation
(
request
);
return
true
;
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/PublishGroupChatMessage.java
0 → 100644
View file @
2a81c114
package
com
.
wecloud
.
im
.
sdk
.
model
;
import
lombok.Data
;
/**
*
* @Author luozh
* @Date 2022年05月05日 10:08
* @Version 1.0
*/
@Data
public
class
PublishGroupChatMessage
{
/**
* 发送人客户端id
*/
private
String
fromUserId
;
/**
* 接收群id
*/
private
String
toGroupIds
;
/**
* 指定一个或多个用户
*/
private
String
toUserIds
;
/**
* 消息类型
*/
private
String
messageType
;
/**
* 消息
*/
private
String
content
;
/**
* 指定离线推送通知中的推送内容
*/
private
String
pushContent
;
/**
* 是否包含发送用户
*/
private
Boolean
includeSender
;
/**
* 是否存储此条消息
*/
private
Boolean
persisted
;
/**
* 是否为@消息
*/
private
Boolean
mentioned
;
/**
* 是否为静默消息
*/
private
Boolean
silent
;
/**
* 推送拓展配置
*/
private
PushExtParam
pushExt
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/PublishGroupChatMessageRequest.java
0 → 100644
View file @
2a81c114
package
com
.
wecloud
.
im
.
sdk
.
model
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* 发布群聊消息请求
* @Author luozh
* @Date 2022年05月05日 09:39
* @Version 1.0
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
PublishGroupChatMessageRequest
extends
WebServiceRequest
{
/**
* 发送人客户端id
*/
private
String
fromUserId
;
/**
* 接收群id
*/
private
String
toGroupIds
;
/**
* 指定一个或多个用户
*/
private
String
toUserIds
;
/**
* 消息类型
*/
private
String
messageType
;
/**
* 消息
*/
private
String
content
;
/**
* 指定离线推送通知中的推送内容
*/
private
String
pushContent
;
/**
* 是否包含发送用户
*/
private
Boolean
includeSender
;
/**
* 是否存储此条消息
*/
private
Boolean
persisted
;
/**
* 是否为@消息
*/
private
Boolean
mentioned
;
/**
* 是否为静默消息
*/
private
Boolean
silent
;
/**
* 推送拓展配置
*/
private
PushExtParam
pushExt
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/PublishGroupChatStatusMessage.java
0 → 100644
View file @
2a81c114
package
com
.
wecloud
.
im
.
sdk
.
model
;
import
lombok.Data
;
/**
*
* @Author luozh
* @Date 2022年05月05日 10:08
* @Version 1.0
*/
@Data
public
class
PublishGroupChatStatusMessage
{
/**
* 发送人客户端id
*/
private
String
fromUserId
;
/**
* 接收群id
*/
private
String
toGroupIds
;
/**
* 消息类型
*/
private
String
messageType
;
/**
* 消息
*/
private
String
content
;
/**
* 是否过滤黑名单
*/
private
Boolean
includeBlacklist
;
/**
* 发送用户是否接收
*/
private
Boolean
includeSender
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/PublishGroupChatStatusMessageRequest.java
0 → 100644
View file @
2a81c114
package
com
.
wecloud
.
im
.
sdk
.
model
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* 发布群聊消息请求
* @Author luozh
* @Date 2022年05月05日 09:39
* @Version 1.0
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
PublishGroupChatStatusMessageRequest
extends
WebServiceRequest
{
/**
* 发送人客户端id
*/
private
String
fromUserId
;
/**
* 接收群id
*/
private
String
toGroupIds
;
/**
* 消息类型
*/
private
String
messageType
;
/**
* 消息
*/
private
String
content
;
/**
* 是否过滤黑名单
*/
private
Boolean
includeBlacklist
;
/**
* 发送用户是否接收
*/
private
Boolean
includeSender
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/PushExtParam.java
0 → 100644
View file @
2a81c114
package
com
.
wecloud
.
im
.
sdk
.
model
;
import
lombok.Data
;
/**
*
* @Author luozh
* @Date 2022年05月05日 09:55
* @Version 1.0
*/
@Data
public
class
PushExtParam
{
/**
* 通知栏显示主题
*/
private
String
title
;
/**
* 按厂商设置不同推送属性。支持的推送通道值为 `MI`(小米)、`HW`(华为)、`OPPO`、`VIVO`
*/
private
String
pushChannel
;
/**
* 通知渠道的 ID
*/
private
String
channelId
;
/**
* 华为通知栏消息优先级,取值 NORMAL、LOW,默认为 NORMAL 重要消息
*/
private
String
hwPriority
;
/**
* 华为推送自定义的通知栏消息右侧大图标 URL,如果不设置,则不展示通知栏右侧图标
*/
private
String
hwImage
;
/**
* 小米推送自定义的通知栏消息右侧图标 URL
*/
private
String
miLargeIconUri
;
/**
* vivo 推送通道类型。0 为运营消息、1 为系统消息
*/
private
String
vivoChannelType
;
/**
* iOS 平台通知栏分组 ID
*/
private
String
iosGroupId
;
/**
* iOS 平台
*/
private
String
iosApnsCollapseId
;
}
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