Commit 161b1a72 by 罗长华

sdk增加群聊消息发送,群聊状态消息发送接口

parent 730b5c4e
...@@ -71,5 +71,15 @@ public class ResourcePathConstants { ...@@ -71,5 +71,15 @@ public class ResourcePathConstants {
*/ */
public static final String PUBLISH_GROUP_CHAT_STATUS_MESSAGE_REQUEST = "/api/imMessage/group/status/publish"; public static final String PUBLISH_GROUP_CHAT_STATUS_MESSAGE_REQUEST = "/api/imMessage/group/status/publish";
/**
* 发布群消息
*/
public static final String PUBLISH_PRIVATE_CHAT_MESSAGE_REQUEST = "/api/imMessage/private/publish";
/**
* 发布群状态消息
*/
public static final String PUBLISH_PRIVATE_CHAT_STATUS_MESSAGE_REQUEST = "/api/imMessage/private/status/publish";
} }
...@@ -5,9 +5,11 @@ import java.util.List; ...@@ -5,9 +5,11 @@ import java.util.List;
import com.wecloud.im.sdk.model.ChatRoomMember; 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.GroupChatMessage;
import com.wecloud.im.sdk.model.GroupChatStatusMessage;
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.PrivateChatMessage;
import com.wecloud.im.sdk.model.PublishGroupChatStatusMessage; 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;
...@@ -135,18 +137,36 @@ public interface WecloudIm { ...@@ -135,18 +137,36 @@ public interface WecloudIm {
* 发布群聊消息 * 发布群聊消息
* @Author luozh * @Author luozh
* @Date 2022年05月05日 09:38:34 * @Date 2022年05月05日 09:38:34
* @param publishGroupChatMessage 发布群聊消息参数 * @param groupChatMessage 发布群聊消息参数
* @Return * @Return
*/ */
Boolean publishGroupChatMessage(PublishGroupChatMessage publishGroupChatMessage); Boolean publishGroupChatMessage(GroupChatMessage groupChatMessage);
/** /**
* 发布群聊状态消息 * 发布群聊状态消息
* @Author luozh * @Author luozh
* @Date 2022年05月05日 09:38:34 * @Date 2022年05月05日 09:38:34
* @param publishGroupChatstatusMessage 发布群聊消息参数 * @param groupChatStatusMessage 发布群聊消息参数
* @Return * @Return
*/ */
Boolean publishGroupChatStatusMessage(PublishGroupChatStatusMessage publishGroupChatstatusMessage); Boolean publishGroupChatStatusMessage(GroupChatStatusMessage groupChatStatusMessage);
/**
* 发布单聊消息
* @Author luozh
* @Date 2022年05月05日 09:38:34
* @param privateChatMessage 发布单聊消息参数
* @Return
*/
Boolean publishPrivateMessage(PrivateChatMessage privateChatMessage);
/**
* 发布群聊状态消息
* @Author luozh
* @Date 2022年05月05日 09:38:34
* @param privateChatStatusMessage 发布群聊消息参数
* @Return
*/
Boolean publishPrivateStatusMessage(PrivateChatStatusMessage privateChatStatusMessage);
} }
...@@ -16,15 +16,19 @@ import com.wecloud.im.sdk.model.Friend; ...@@ -16,15 +16,19 @@ 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.GroupChatMessage;
import com.wecloud.im.sdk.model.GroupChatStatusMessage;
import com.wecloud.im.sdk.model.GroupMembersFriendRequestRequest; import com.wecloud.im.sdk.model.GroupMembersFriendRequestRequest;
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.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.PrivateChatMessage;
import com.wecloud.im.sdk.model.PrivateChatStatusMessage;
import com.wecloud.im.sdk.model.PublishGroupChatMessageRequest; 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.PublishGroupChatStatusMessageRequest;
import com.wecloud.im.sdk.model.PublishPrivateChatMessageRequest;
import com.wecloud.im.sdk.model.PublishPrivateChatStatusMessageRequest;
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;
...@@ -153,21 +157,37 @@ public class WecloudImClient implements WecloudIm { ...@@ -153,21 +157,37 @@ public class WecloudImClient implements WecloudIm {
} }
@Override @Override
public Boolean publishGroupChatMessage(PublishGroupChatMessage publishGroupChatMessage) { public Boolean publishGroupChatMessage(GroupChatMessage groupChatMessage) {
Assert.notNull(publishGroupChatMessage); Assert.notNull(groupChatMessage);
PublishGroupChatMessageRequest request = BeanUtil.toBean(publishGroupChatMessage, PublishGroupChatMessageRequest request = BeanUtil.toBean(groupChatMessage,
PublishGroupChatMessageRequest.class); PublishGroupChatMessageRequest.class);
return wecloudImMessageOperation.publishGroupChatMessage(request); return wecloudImMessageOperation.publishGroupChatMessage(request);
} }
@Override @Override
public Boolean publishGroupChatStatusMessage(PublishGroupChatStatusMessage publishGroupChatstatusMessage) { public Boolean publishGroupChatStatusMessage(GroupChatStatusMessage groupChatstatusMessage) {
Assert.notNull(publishGroupChatstatusMessage); Assert.notNull(groupChatstatusMessage);
PublishGroupChatStatusMessageRequest request = BeanUtil.toBean(publishGroupChatstatusMessage, PublishGroupChatStatusMessageRequest request = BeanUtil.toBean(groupChatstatusMessage,
PublishGroupChatStatusMessageRequest.class); PublishGroupChatStatusMessageRequest.class);
return wecloudImMessageOperation.publishGroupChatStatusMessage(request); return wecloudImMessageOperation.publishGroupChatStatusMessage(request);
} }
@Override
public Boolean publishPrivateMessage(PrivateChatMessage privateChatMessage) {
Assert.notNull(privateChatMessage);
PublishPrivateChatMessageRequest request = BeanUtil.toBean(privateChatMessage,
PublishPrivateChatMessageRequest.class);
return wecloudImMessageOperation.publishPrivateMessage(request);
}
@Override
public Boolean publishPrivateStatusMessage(PrivateChatStatusMessage privateChatStatusMessage) {
Assert.notNull(privateChatStatusMessage);
PublishPrivateChatStatusMessageRequest request = BeanUtil.toBean(privateChatStatusMessage,
PublishPrivateChatStatusMessageRequest.class);
return null;
}
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);
......
...@@ -10,9 +10,13 @@ import com.wecloud.im.sdk.common.HttpMethod; ...@@ -10,9 +10,13 @@ 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.PublishGroupChatMessageRequest; import com.wecloud.im.sdk.model.PublishGroupChatMessageRequest;
import com.wecloud.im.sdk.model.PublishGroupChatStatusMessageRequest; import com.wecloud.im.sdk.model.PublishGroupChatStatusMessageRequest;
import com.wecloud.im.sdk.model.PublishPrivateChatMessageRequest;
import com.wecloud.im.sdk.model.PublishPrivateChatStatusMessageRequest;
import static com.wecloud.im.sdk.ResourcePathConstants.PUBLISH_GROUP_CHAT_MESSAGE_REQUEST; 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.ResourcePathConstants.PUBLISH_GROUP_CHAT_STATUS_MESSAGE_REQUEST;
import static com.wecloud.im.sdk.ResourcePathConstants.PUBLISH_PRIVATE_CHAT_MESSAGE_REQUEST;
import static com.wecloud.im.sdk.ResourcePathConstants.PUBLISH_PRIVATE_CHAT_STATUS_MESSAGE_REQUEST;
import static com.wecloud.im.sdk.utils.CodingUtils.assertParameterNotNull; import static com.wecloud.im.sdk.utils.CodingUtils.assertParameterNotNull;
/** /**
...@@ -64,7 +68,6 @@ public class WecloudImMessageOperation extends WecloudImOperation { ...@@ -64,7 +68,6 @@ public class WecloudImMessageOperation extends WecloudImOperation {
* @Return * @Return
*/ */
public Boolean publishGroupChatStatusMessage(PublishGroupChatStatusMessageRequest publishGroupChatStatusMessageRequest) { public Boolean publishGroupChatStatusMessage(PublishGroupChatStatusMessageRequest publishGroupChatStatusMessageRequest) {
String fromUserId = publishGroupChatStatusMessageRequest.getFromUserId(); String fromUserId = publishGroupChatStatusMessageRequest.getFromUserId();
String toGroupIds = publishGroupChatStatusMessageRequest.getToGroupIds(); String toGroupIds = publishGroupChatStatusMessageRequest.getToGroupIds();
String messageType = publishGroupChatStatusMessageRequest.getMessageType(); String messageType = publishGroupChatStatusMessageRequest.getMessageType();
...@@ -86,4 +89,49 @@ public class WecloudImMessageOperation extends WecloudImOperation { ...@@ -86,4 +89,49 @@ public class WecloudImMessageOperation extends WecloudImOperation {
return true; return true;
} }
public Boolean publishPrivateMessage(PublishPrivateChatMessageRequest publishPrivateChatMessageRequest) {
String fromUserId = publishPrivateChatMessageRequest.getFromUserId();
String toUserIds = publishPrivateChatMessageRequest.getToUserIds();
String messageType = publishPrivateChatMessageRequest.getMessageType();
String content = publishPrivateChatMessageRequest.getContent();
// 必填参数校验
assertParameterNotNull(fromUserId, "fromUserId");
assertParameterNotNull(toUserIds, "toUserIds");
assertParameterNotNull(messageType, "messageType");
assertParameterNotNull(content, "content");
// 校验通过 构建参数
TypeReference<Map<String, String>> typeReference = new TypeReference<Map<String, String>>() {
};
Map<String, String> param = JSONObject.parseObject(JSON.toJSONString(publishPrivateChatMessageRequest), typeReference);
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(PUBLISH_PRIVATE_CHAT_MESSAGE_REQUEST)
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(publishPrivateChatMessageRequest).build();
doOperation(request);
return true;
}
public Boolean publishPrivateStatusMessage(PublishPrivateChatStatusMessageRequest publishPrivateChatStatusMessageRequest) {
String fromUserId = publishPrivateChatStatusMessageRequest.getFromUserId();
String toUserIds = publishPrivateChatStatusMessageRequest.getToUserIds();
String messageType = publishPrivateChatStatusMessageRequest.getMessageType();
String content = publishPrivateChatStatusMessageRequest.getContent();
// 必填参数校验
assertParameterNotNull(fromUserId, "fromUserId");
assertParameterNotNull(toUserIds, "toUserIds");
assertParameterNotNull(messageType, "messageType");
assertParameterNotNull(content, "content");
// 校验通过 构建参数
TypeReference<Map<String, String>> typeReference = new TypeReference<Map<String, String>>() {
};
Map<String, String> param = JSONObject.parseObject(JSON.toJSONString(publishPrivateChatStatusMessageRequest), typeReference);
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(PUBLISH_PRIVATE_CHAT_STATUS_MESSAGE_REQUEST)
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(publishPrivateChatStatusMessageRequest).build();
doOperation(request);
return true;
}
} }
...@@ -9,7 +9,7 @@ import lombok.Data; ...@@ -9,7 +9,7 @@ import lombok.Data;
* @Version 1.0 * @Version 1.0
*/ */
@Data @Data
public class PublishGroupChatMessage { public class GroupChatMessage {
/** /**
* 发送人客户端id * 发送人客户端id
......
...@@ -9,7 +9,7 @@ import lombok.Data; ...@@ -9,7 +9,7 @@ import lombok.Data;
* @Version 1.0 * @Version 1.0
*/ */
@Data @Data
public class PublishGroupChatStatusMessage { public class GroupChatStatusMessage {
/** /**
* 发送人客户端id * 发送人客户端id
......
package com.wecloud.im.sdk.model;
import lombok.Data;
/**
* 单聊消息
* @Author luozh
* @Date 2022年05月05日 11:49
* @Version 1.0
*/
@Data
public class PrivateChatMessage {
/**
* 发送人客户端id
*/
private String fromUserId;
/**
* 指定一个或多个用户
*/
private String toUserIds;
/**
* 消息类型
*/
private String messageType;
/**
* 消息
*/
private String content;
/**
* 指定离线推送通知中的推送内容
*/
private String pushContent;
/**
* 是否包含发送用户
*/
private Boolean includeSender;
/**
* 是否过滤黑名单
*/
private Boolean includeBlacklist;
/**
* 是否存储此条消息
*/
private Boolean persisted;
/**
* 是否为静默消息
*/
private Boolean silent;
/**
* 推送拓展配置
*/
private PushExtParam pushExt;
}
package com.wecloud.im.sdk.model;
import lombok.Data;
/**
*
* @Author luozh
* @Date 2022年05月05日 10:08
* @Version 1.0
*/
@Data
public class PrivateChatStatusMessage {
/**
* 发送人客户端id
*/
private String fromUserId;
/**
* 接收群id
*/
private String toUserIds;
/**
* 消息类型
*/
private String messageType;
/**
* 消息
*/
private String content;
/**
* 是否过滤黑名单
*/
private Boolean includeBlacklist;
/**
* 发送用户是否接收
*/
private Boolean includeSender;
}
package com.wecloud.im.sdk.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 单聊消息
* @Author luozh
* @Date 2022年05月05日 11:49
* @Version 1.0
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class PublishPrivateChatMessageRequest extends WebServiceRequest {
/**
* 发送人客户端id
*/
private String fromUserId;
/**
* 指定一个或多个用户
*/
private String toUserIds;
/**
* 消息类型
*/
private String messageType;
/**
* 消息
*/
private String content;
/**
* 指定离线推送通知中的推送内容
*/
private String pushContent;
/**
* 是否包含发送用户
*/
private Boolean includeSender;
/**
* 是否过滤黑名单
*/
private Boolean includeBlacklist;
/**
* 是否存储此条消息
*/
private Boolean persisted;
/**
* 是否为静默消息
*/
private Boolean silent;
/**
* 推送拓展配置
*/
private PushExtParam pushExt;
}
package com.wecloud.im.sdk.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
* @Author luozh
* @Date 2022年05月05日 10:08
* @Version 1.0
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class PublishPrivateChatStatusMessageRequest extends WebServiceRequest {
/**
* 发送人客户端id
*/
private String fromUserId;
/**
* 接收群id
*/
private String toUserIds;
/**
* 消息类型
*/
private String messageType;
/**
* 消息
*/
private String content;
/**
* 是否过滤黑名单
*/
private Boolean includeBlacklist;
/**
* 发送用户是否接收
*/
private Boolean includeSender;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment