Commit 161b1a72 by 罗长华

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

parent 730b5c4e
......@@ -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_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;
import com.wecloud.im.sdk.model.ChatRoomMember;
import com.wecloud.im.sdk.model.Conversation;
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.PublishGroupChatMessage;
import com.wecloud.im.sdk.model.PublishGroupChatStatusMessage;
import com.wecloud.im.sdk.model.PrivateChatMessage;
import com.wecloud.im.sdk.model.PrivateChatStatusMessage;
import com.wecloud.im.sdk.model.Token;
import com.wecloud.im.sdk.model.UnsureFriend;
......@@ -135,18 +137,36 @@ public interface WecloudIm {
* 发布群聊消息
* @Author luozh
* @Date 2022年05月05日 09:38:34
* @param publishGroupChatMessage 发布群聊消息参数
* @param groupChatMessage 发布群聊消息参数
* @Return
*/
Boolean publishGroupChatMessage(PublishGroupChatMessage publishGroupChatMessage);
Boolean publishGroupChatMessage(GroupChatMessage groupChatMessage);
/**
* 发布群聊状态消息
* @Author luozh
* @Date 2022年05月05日 09:38:34
* @param publishGroupChatstatusMessage 发布群聊消息参数
* @param groupChatStatusMessage 发布群聊消息参数
* @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;
import com.wecloud.im.sdk.model.FriendRequestRequest;
import com.wecloud.im.sdk.model.GetFriendsRequest;
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.ImClient;
import com.wecloud.im.sdk.model.ListChatRoomMemberRequest;
import com.wecloud.im.sdk.model.ListConversationRequest;
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.PublishGroupChatStatusMessage;
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.SetConversationDoNotDisturbRequest;
import com.wecloud.im.sdk.model.SetConversationTopRequest;
......@@ -153,21 +157,37 @@ public class WecloudImClient implements WecloudIm {
}
@Override
public Boolean publishGroupChatMessage(PublishGroupChatMessage publishGroupChatMessage) {
Assert.notNull(publishGroupChatMessage);
PublishGroupChatMessageRequest request = BeanUtil.toBean(publishGroupChatMessage,
public Boolean publishGroupChatMessage(GroupChatMessage groupChatMessage) {
Assert.notNull(groupChatMessage);
PublishGroupChatMessageRequest request = BeanUtil.toBean(groupChatMessage,
PublishGroupChatMessageRequest.class);
return wecloudImMessageOperation.publishGroupChatMessage(request);
}
@Override
public Boolean publishGroupChatStatusMessage(PublishGroupChatStatusMessage publishGroupChatstatusMessage) {
Assert.notNull(publishGroupChatstatusMessage);
PublishGroupChatStatusMessageRequest request = BeanUtil.toBean(publishGroupChatstatusMessage,
public Boolean publishGroupChatStatusMessage(GroupChatStatusMessage groupChatstatusMessage) {
Assert.notNull(groupChatstatusMessage);
PublishGroupChatStatusMessageRequest request = BeanUtil.toBean(groupChatstatusMessage,
PublishGroupChatStatusMessageRequest.class);
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() {
this.imClientOperation = new WecloudImClientOperation(apiDomain, appKey, appSecret);
this.imConversationOperation = new WecloudImConversationOperation(apiDomain, appKey, appSecret);
......
......@@ -10,9 +10,13 @@ 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 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_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;
/**
......@@ -64,7 +68,6 @@ public class WecloudImMessageOperation extends WecloudImOperation {
* @Return
*/
public Boolean publishGroupChatStatusMessage(PublishGroupChatStatusMessageRequest publishGroupChatStatusMessageRequest) {
String fromUserId = publishGroupChatStatusMessageRequest.getFromUserId();
String toGroupIds = publishGroupChatStatusMessageRequest.getToGroupIds();
String messageType = publishGroupChatStatusMessageRequest.getMessageType();
......@@ -86,4 +89,49 @@ public class WecloudImMessageOperation extends WecloudImOperation {
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;
* @Version 1.0
*/
@Data
public class PublishGroupChatMessage {
public class GroupChatMessage {
/**
* 发送人客户端id
......
......@@ -9,7 +9,7 @@ import lombok.Data;
* @Version 1.0
*/
@Data
public class PublishGroupChatStatusMessage {
public class GroupChatStatusMessage {
/**
* 发送人客户端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