Commit bf105969 by Shadow

增加WecloudImMessage类

发布消息content要求传入WecloudImMessage类型
parent 6d569c09
...@@ -3,7 +3,10 @@ package com.wecloud.im.param; ...@@ -3,7 +3,10 @@ package com.wecloud.im.param;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Map;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/** /**
* 发送群聊消息入参 * 发送群聊消息入参
...@@ -30,9 +33,9 @@ public class GroupChatMessageParam { ...@@ -30,9 +33,9 @@ public class GroupChatMessageParam {
@ApiModelProperty("消息类型") @ApiModelProperty("消息类型")
private String messageType; private String messageType;
@NotEmpty(message = "消息不能为空") @NotNull(message = "消息不能为空")
@ApiModelProperty("消息") @ApiModelProperty("消息")
private String content; private Map<String, Object> content;
@ApiModelProperty("指定离线推送通知中的推送内容") @ApiModelProperty("指定离线推送通知中的推送内容")
private String pushContent; private String pushContent;
......
...@@ -3,7 +3,10 @@ package com.wecloud.im.param; ...@@ -3,7 +3,10 @@ package com.wecloud.im.param;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Map;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/** /**
* *
...@@ -44,9 +47,9 @@ public class GroupChatStatusMessageParam { ...@@ -44,9 +47,9 @@ public class GroupChatStatusMessageParam {
/** /**
* 消息 * 消息
*/ */
@NotEmpty(message = "消息不能为空") @NotNull(message = "消息不能为空")
@ApiModelProperty("消息") @ApiModelProperty("消息")
private String content; private Map<String, Object> content;
/** /**
* 是否过滤黑名单 * 是否过滤黑名单
......
...@@ -3,7 +3,10 @@ package com.wecloud.im.param; ...@@ -3,7 +3,10 @@ package com.wecloud.im.param;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Map;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/** /**
* 单聊消息 * 单聊消息
...@@ -37,9 +40,9 @@ public class PrivateChatMessageParam { ...@@ -37,9 +40,9 @@ public class PrivateChatMessageParam {
/** /**
* 消息 * 消息
*/ */
@NotEmpty(message = "消息不能为空") @NotNull(message = "消息不能为空")
@ApiModelProperty("消息") @ApiModelProperty("消息")
private String content; private Map<String, Object> content;
/** /**
* 指定离线推送通知中的推送内容 * 指定离线推送通知中的推送内容
......
...@@ -3,7 +3,10 @@ package com.wecloud.im.param; ...@@ -3,7 +3,10 @@ package com.wecloud.im.param;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Map;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/** /**
* *
...@@ -38,9 +41,9 @@ public class PrivateChatStatusMessageParam { ...@@ -38,9 +41,9 @@ public class PrivateChatStatusMessageParam {
/** /**
* 消息 * 消息
*/ */
@NotEmpty(message = "消息不能为空") @NotNull(message = "消息不能为空")
@ApiModelProperty("消息") @ApiModelProperty("消息")
private String content; private Map<String, Object> content;
/** /**
* 是否过滤黑名单 * 是否过滤黑名单
......
...@@ -643,7 +643,8 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes ...@@ -643,7 +643,8 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
} }
// 组装消息 // 组装消息
ImMessage message = assembleImMessage(appId, sender, conversation.getId(), param.getMessageType(), false, param.getContent()); ImMessage message = assembleImMessage(appId, sender, conversation.getId(), param.getMessageType(), false,
JSONObject.toJSONString(param.getContent()));
// 持久化 // 持久化
this.save(message); this.save(message);
// 拼装发送消息体 // 拼装发送消息体
...@@ -711,7 +712,7 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes ...@@ -711,7 +712,7 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
// 组装消息 // 组装消息
ImMessage message = assembleImMessage(appId, sender, conversation.getId(), param.getMessageType(), true, ImMessage message = assembleImMessage(appId, sender, conversation.getId(), param.getMessageType(), true,
param.getContent()); JSONObject.toJSONString(param.getContent()));
if (isToUser && CollectionUtils.isNotEmpty(membersList)) { if (isToUser && CollectionUtils.isNotEmpty(membersList)) {
// 指定群内成员发送 落库接收人 仅限少量接收人场景时落库 // 指定群内成员发送 落库接收人 仅限少量接收人场景时落库
List<Long> memberFkClientIds = membersList.stream().map(m -> m.getFkClientId()).collect(Collectors.toList()); List<Long> memberFkClientIds = membersList.stream().map(m -> m.getFkClientId()).collect(Collectors.toList());
...@@ -760,7 +761,7 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes ...@@ -760,7 +761,7 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
List<ImConversationMembers> membersList = conMembersMapGroupByConId.getOrDefault(conversationId, List<ImConversationMembers> membersList = conMembersMapGroupByConId.getOrDefault(conversationId,
Collections.emptyList()); Collections.emptyList());
// 组装消息 // 组装消息
ImMessage message = assembleImMessage(appId, sender, conversation.getId(), param.getMessageType(), false, param.getContent()); ImMessage message = assembleImMessage(appId, sender, conversation.getId(), param.getMessageType(), false, JSONObject.toJSONString(param.getContent()));
// 持久化 // 持久化
this.save(message); this.save(message);
// 拼装发送消息体 // 拼装发送消息体
...@@ -810,7 +811,7 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes ...@@ -810,7 +811,7 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
Collections.emptyList()); Collections.emptyList());
// 组装消息 // 组装消息
ImMessage message = assembleImMessage(appId, sender, conversation.getId(), param.getMessageType(), true, ImMessage message = assembleImMessage(appId, sender, conversation.getId(), param.getMessageType(), true,
param.getContent()); JSONObject.toJSONString(param.getContent()));
// 持久化 // 持久化
this.save(message); this.save(message);
// 拼装发送消息体 // 拼装发送消息体
......
...@@ -33,11 +33,10 @@ public interface WecloudIm { ...@@ -33,11 +33,10 @@ public interface WecloudIm {
* 注册客户端 * 注册客户端
* @Author luozh * @Author luozh
* @Date 2022年04月13日 04:25:52 * @Date 2022年04月13日 04:25:52
* @param userId * @param userId 用户id
* @param headPortrait * @param headPortrait 头像
* @param nickname * @param nickname 昵称
* @Return * @Return
* @return
*/ */
ImClient registerUser(String userId, String headPortrait, String nickname); ImClient registerUser(String userId, String headPortrait, String nickname);
......
...@@ -12,6 +12,7 @@ import com.wecloud.im.sdk.model.PublishGroupChatMessageRequest; ...@@ -12,6 +12,7 @@ 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.PublishPrivateChatMessageRequest;
import com.wecloud.im.sdk.model.PublishPrivateChatStatusMessageRequest; import com.wecloud.im.sdk.model.PublishPrivateChatStatusMessageRequest;
import com.wecloud.im.sdk.model.message.WecloudImMessage;
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;
...@@ -42,7 +43,7 @@ public class WecloudImMessageOperation extends WecloudImOperation { ...@@ -42,7 +43,7 @@ public class WecloudImMessageOperation extends WecloudImOperation {
String fromUserId = publishGroupChatMessageRequest.getFromUserId(); String fromUserId = publishGroupChatMessageRequest.getFromUserId();
String toGroupIds = publishGroupChatMessageRequest.getToGroupIds(); String toGroupIds = publishGroupChatMessageRequest.getToGroupIds();
String messageType = publishGroupChatMessageRequest.getMessageType(); String messageType = publishGroupChatMessageRequest.getMessageType();
String content = publishGroupChatMessageRequest.getContent(); WecloudImMessage content = publishGroupChatMessageRequest.getContent();
// 必填参数校验 // 必填参数校验
assertParameterNotNull(fromUserId, "fromUserId"); assertParameterNotNull(fromUserId, "fromUserId");
assertParameterNotNull(toGroupIds, "toGroupIds"); assertParameterNotNull(toGroupIds, "toGroupIds");
...@@ -71,7 +72,7 @@ public class WecloudImMessageOperation extends WecloudImOperation { ...@@ -71,7 +72,7 @@ public class WecloudImMessageOperation extends WecloudImOperation {
String fromUserId = publishGroupChatStatusMessageRequest.getFromUserId(); String fromUserId = publishGroupChatStatusMessageRequest.getFromUserId();
String toGroupIds = publishGroupChatStatusMessageRequest.getToGroupIds(); String toGroupIds = publishGroupChatStatusMessageRequest.getToGroupIds();
String messageType = publishGroupChatStatusMessageRequest.getMessageType(); String messageType = publishGroupChatStatusMessageRequest.getMessageType();
String content = publishGroupChatStatusMessageRequest.getContent(); WecloudImMessage content = publishGroupChatStatusMessageRequest.getContent();
// 必填参数校验 // 必填参数校验
assertParameterNotNull(fromUserId, "fromUserId"); assertParameterNotNull(fromUserId, "fromUserId");
assertParameterNotNull(toGroupIds, "toGroupIds"); assertParameterNotNull(toGroupIds, "toGroupIds");
...@@ -93,7 +94,7 @@ public class WecloudImMessageOperation extends WecloudImOperation { ...@@ -93,7 +94,7 @@ public class WecloudImMessageOperation extends WecloudImOperation {
String fromUserId = publishPrivateChatMessageRequest.getFromUserId(); String fromUserId = publishPrivateChatMessageRequest.getFromUserId();
String toUserIds = publishPrivateChatMessageRequest.getToUserIds(); String toUserIds = publishPrivateChatMessageRequest.getToUserIds();
String messageType = publishPrivateChatMessageRequest.getMessageType(); String messageType = publishPrivateChatMessageRequest.getMessageType();
String content = publishPrivateChatMessageRequest.getContent(); WecloudImMessage content = publishPrivateChatMessageRequest.getContent();
// 必填参数校验 // 必填参数校验
assertParameterNotNull(fromUserId, "fromUserId"); assertParameterNotNull(fromUserId, "fromUserId");
assertParameterNotNull(toUserIds, "toUserIds"); assertParameterNotNull(toUserIds, "toUserIds");
...@@ -115,7 +116,7 @@ public class WecloudImMessageOperation extends WecloudImOperation { ...@@ -115,7 +116,7 @@ public class WecloudImMessageOperation extends WecloudImOperation {
String fromUserId = publishPrivateChatStatusMessageRequest.getFromUserId(); String fromUserId = publishPrivateChatStatusMessageRequest.getFromUserId();
String toUserIds = publishPrivateChatStatusMessageRequest.getToUserIds(); String toUserIds = publishPrivateChatStatusMessageRequest.getToUserIds();
String messageType = publishPrivateChatStatusMessageRequest.getMessageType(); String messageType = publishPrivateChatStatusMessageRequest.getMessageType();
String content = publishPrivateChatStatusMessageRequest.getContent(); WecloudImMessage content = publishPrivateChatStatusMessageRequest.getContent();
// 必填参数校验 // 必填参数校验
assertParameterNotNull(fromUserId, "fromUserId"); assertParameterNotNull(fromUserId, "fromUserId");
assertParameterNotNull(toUserIds, "toUserIds"); assertParameterNotNull(toUserIds, "toUserIds");
......
...@@ -2,6 +2,8 @@ package com.wecloud.im.sdk.model; ...@@ -2,6 +2,8 @@ package com.wecloud.im.sdk.model;
import lombok.Data; import lombok.Data;
import com.wecloud.im.sdk.model.message.WecloudImMessage;
/** /**
* *
* @Author luozh * @Author luozh
...@@ -34,7 +36,7 @@ public class GroupChatMessage { ...@@ -34,7 +36,7 @@ public class GroupChatMessage {
/** /**
* 消息 * 消息
*/ */
private String content; private WecloudImMessage content;
/** /**
* 指定离线推送通知中的推送内容 * 指定离线推送通知中的推送内容
......
...@@ -2,6 +2,8 @@ package com.wecloud.im.sdk.model; ...@@ -2,6 +2,8 @@ package com.wecloud.im.sdk.model;
import lombok.Data; import lombok.Data;
import com.wecloud.im.sdk.model.message.WecloudImMessage;
/** /**
* *
* @Author luozh * @Author luozh
...@@ -34,7 +36,7 @@ public class GroupChatStatusMessage { ...@@ -34,7 +36,7 @@ public class GroupChatStatusMessage {
/** /**
* 消息 * 消息
*/ */
private String content; private WecloudImMessage content;
/** /**
* 是否过滤黑名单 * 是否过滤黑名单
......
...@@ -2,6 +2,8 @@ package com.wecloud.im.sdk.model; ...@@ -2,6 +2,8 @@ package com.wecloud.im.sdk.model;
import lombok.Data; import lombok.Data;
import com.wecloud.im.sdk.model.message.WecloudImMessage;
/** /**
* 单聊消息 * 单聊消息
* @Author luozh * @Author luozh
...@@ -28,7 +30,7 @@ public class PrivateChatMessage { ...@@ -28,7 +30,7 @@ public class PrivateChatMessage {
/** /**
* 消息 * 消息
*/ */
private String content; private WecloudImMessage content;
/** /**
* 指定离线推送通知中的推送内容 * 指定离线推送通知中的推送内容
......
...@@ -2,6 +2,8 @@ package com.wecloud.im.sdk.model; ...@@ -2,6 +2,8 @@ package com.wecloud.im.sdk.model;
import lombok.Data; import lombok.Data;
import com.wecloud.im.sdk.model.message.WecloudImMessage;
/** /**
* *
* @Author luozh * @Author luozh
...@@ -29,7 +31,7 @@ public class PrivateChatStatusMessage { ...@@ -29,7 +31,7 @@ public class PrivateChatStatusMessage {
/** /**
* 消息 * 消息
*/ */
private String content; private WecloudImMessage content;
/** /**
* 是否过滤黑名单 * 是否过滤黑名单
......
...@@ -3,6 +3,8 @@ package com.wecloud.im.sdk.model; ...@@ -3,6 +3,8 @@ package com.wecloud.im.sdk.model;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import com.wecloud.im.sdk.model.message.WecloudImMessage;
/** /**
* 发布群聊消息请求 * 发布群聊消息请求
* @Author luozh * @Author luozh
...@@ -36,7 +38,7 @@ public class PublishGroupChatMessageRequest extends WebServiceRequest { ...@@ -36,7 +38,7 @@ public class PublishGroupChatMessageRequest extends WebServiceRequest {
/** /**
* 消息 * 消息
*/ */
private String content; private WecloudImMessage content;
/** /**
* 指定离线推送通知中的推送内容 * 指定离线推送通知中的推送内容
......
...@@ -3,6 +3,8 @@ package com.wecloud.im.sdk.model; ...@@ -3,6 +3,8 @@ package com.wecloud.im.sdk.model;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import com.wecloud.im.sdk.model.message.WecloudImMessage;
/** /**
* 发布群聊消息请求 * 发布群聊消息请求
* @Author luozh * @Author luozh
...@@ -36,7 +38,7 @@ public class PublishGroupChatStatusMessageRequest extends WebServiceRequest { ...@@ -36,7 +38,7 @@ public class PublishGroupChatStatusMessageRequest extends WebServiceRequest {
/** /**
* 消息 * 消息
*/ */
private String content; private WecloudImMessage content;
/** /**
* 是否过滤黑名单 * 是否过滤黑名单
......
...@@ -3,6 +3,8 @@ package com.wecloud.im.sdk.model; ...@@ -3,6 +3,8 @@ package com.wecloud.im.sdk.model;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import com.wecloud.im.sdk.model.message.WecloudImMessage;
/** /**
* 单聊消息 * 单聊消息
* @Author luozh * @Author luozh
...@@ -30,7 +32,7 @@ public class PublishPrivateChatMessageRequest extends WebServiceRequest { ...@@ -30,7 +32,7 @@ public class PublishPrivateChatMessageRequest extends WebServiceRequest {
/** /**
* 消息 * 消息
*/ */
private String content; private WecloudImMessage content;
/** /**
* 指定离线推送通知中的推送内容 * 指定离线推送通知中的推送内容
......
...@@ -3,6 +3,8 @@ package com.wecloud.im.sdk.model; ...@@ -3,6 +3,8 @@ package com.wecloud.im.sdk.model;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import com.wecloud.im.sdk.model.message.WecloudImMessage;
/** /**
* *
* @Author luozh * @Author luozh
...@@ -31,7 +33,7 @@ public class PublishPrivateChatStatusMessageRequest extends WebServiceRequest { ...@@ -31,7 +33,7 @@ public class PublishPrivateChatStatusMessageRequest extends WebServiceRequest {
/** /**
* 消息 * 消息
*/ */
private String content; private WecloudImMessage content;
/** /**
* 是否过滤黑名单 * 是否过滤黑名单
......
package com.wecloud.im.sdk.model.message; package com.wecloud.im.sdk.model.message;
import lombok.Getter;
import lombok.Setter;
import com.wecloud.im.sdk.enums.MessageTypeEnum; import com.wecloud.im.sdk.enums.MessageTypeEnum;
/** /**
...@@ -11,12 +8,12 @@ import com.wecloud.im.sdk.enums.MessageTypeEnum; ...@@ -11,12 +8,12 @@ import com.wecloud.im.sdk.enums.MessageTypeEnum;
* @Date 2022年05月07日 13:59 * @Date 2022年05月07日 13:59
* @Version 1.0 * @Version 1.0
*/ */
@Getter public class FileMessage extends WecloudImBaseMessage {
@Setter
public class FileMessage extends BaseMessage {
public FileMessage() { public FileMessage() {
super(MessageTypeEnum.FILE); super(MessageTypeEnum.FILE);
} }
private MessageFile file; public void setFile(MessageFile file) {
this.put("file", file);
}
} }
...@@ -13,10 +13,12 @@ import com.wecloud.im.sdk.enums.MessageTypeEnum; ...@@ -13,10 +13,12 @@ import com.wecloud.im.sdk.enums.MessageTypeEnum;
*/ */
@Getter @Getter
@Setter @Setter
public class PicMessage extends BaseMessage { public class PicMessage extends WecloudImBaseMessage {
public PicMessage() { public PicMessage() {
super(MessageTypeEnum.IMAGE); super(MessageTypeEnum.IMAGE);
} }
private MessageImageFile file; public void setFile(MessageImageFile file) {
this.put("file", file);
}
} }
...@@ -11,15 +11,11 @@ import com.wecloud.im.sdk.enums.MessageTypeEnum; ...@@ -11,15 +11,11 @@ import com.wecloud.im.sdk.enums.MessageTypeEnum;
* @Date 2022年05月07日 13:59 * @Date 2022年05月07日 13:59
* @Version 1.0 * @Version 1.0
*/ */
@Getter public class PositionMessage extends WecloudImBaseMessage {
@Setter
public class PositionMessage extends BaseMessage {
public PositionMessage() { public PositionMessage() {
super(MessageTypeEnum.POSITION); super(MessageTypeEnum.POSITION);
} }
private MetaData metaData;
@Setter @Setter
@Getter @Getter
public static class MetaData { public static class MetaData {
...@@ -34,4 +30,8 @@ public class PositionMessage extends BaseMessage { ...@@ -34,4 +30,8 @@ public class PositionMessage extends BaseMessage {
*/ */
private Double latitude; private Double latitude;
} }
public void setMetaData(MetaData metaData) {
this.put("metaData", metaData);
}
} }
package com.wecloud.im.sdk.model.message; package com.wecloud.im.sdk.model.message;
import lombok.Getter;
import lombok.Setter;
import com.wecloud.im.sdk.enums.MessageTypeEnum; import com.wecloud.im.sdk.enums.MessageTypeEnum;
/** /**
...@@ -11,14 +8,14 @@ import com.wecloud.im.sdk.enums.MessageTypeEnum; ...@@ -11,14 +8,14 @@ import com.wecloud.im.sdk.enums.MessageTypeEnum;
* @Date 2022年05月07日 13:56 * @Date 2022年05月07日 13:56
* @Version 1.0 * @Version 1.0
*/ */
@Getter public class TextMessage extends WecloudImBaseMessage {
@Setter
public class TextMessage extends BaseMessage {
public TextMessage() { public TextMessage() {
super(MessageTypeEnum.TEXT); super(MessageTypeEnum.TEXT);
} }
private String text; public void setText(String text) {
this.put("text", text);
}
} }
package com.wecloud.im.sdk.model.message; package com.wecloud.im.sdk.model.message;
import lombok.Getter;
import lombok.Setter;
import com.wecloud.im.sdk.enums.MessageTypeEnum; import com.wecloud.im.sdk.enums.MessageTypeEnum;
/** /**
...@@ -11,12 +8,12 @@ import com.wecloud.im.sdk.enums.MessageTypeEnum; ...@@ -11,12 +8,12 @@ import com.wecloud.im.sdk.enums.MessageTypeEnum;
* @Date 2022年05月07日 13:59 * @Date 2022年05月07日 13:59
* @Version 1.0 * @Version 1.0
*/ */
@Getter public class VideoMessage extends WecloudImBaseMessage {
@Setter
public class VideoMessage extends BaseMessage {
public VideoMessage() { public VideoMessage() {
super(MessageTypeEnum.VIDEO); super(MessageTypeEnum.VIDEO);
} }
private MessageVideoFile file; public void setFile(MessageVideoFile file) {
this.put("file", file);
}
} }
package com.wecloud.im.sdk.model.message; package com.wecloud.im.sdk.model.message;
import lombok.Getter;
import lombok.Setter;
import com.wecloud.im.sdk.enums.MessageTypeEnum; import com.wecloud.im.sdk.enums.MessageTypeEnum;
/** /**
...@@ -11,12 +8,12 @@ import com.wecloud.im.sdk.enums.MessageTypeEnum; ...@@ -11,12 +8,12 @@ import com.wecloud.im.sdk.enums.MessageTypeEnum;
* @Date 2022年05月07日 13:59 * @Date 2022年05月07日 13:59
* @Version 1.0 * @Version 1.0
*/ */
@Getter public class VoiceMessage extends WecloudImBaseMessage {
@Setter
public class VoiceMessage extends BaseMessage {
public VoiceMessage() { public VoiceMessage() {
super(MessageTypeEnum.AUDIO); super(MessageTypeEnum.AUDIO);
} }
private MessageVoiceFile file; public void setFile(MessageVoiceFile file) {
this.put("file", file);
}
} }
package com.wecloud.im.sdk.model.message; package com.wecloud.im.sdk.model.message;
import lombok.Getter;
import lombok.Setter;
import com.wecloud.im.sdk.enums.MessageTypeEnum; import com.wecloud.im.sdk.enums.MessageTypeEnum;
/** /**
* *
* @Author luozh * @Author luozh
* @Date 2022年05月07日 13:51 * @Date 2022年05月26日 14:09
* @Version 1.0 * @Version 1.0
*/ */
@Getter public class WecloudImBaseMessage extends WecloudImMessage {
public class BaseMessage {
/** public WecloudImBaseMessage(MessageTypeEnum type) {
* 类型
*/
private Integer type;
/**
* 用来给开发者存储拓展的自定义属性字段
*/
@Setter
private Object attrs;
public BaseMessage(MessageTypeEnum type) {
this.setType(type); this.setType(type);
} }
...@@ -37,6 +22,10 @@ public class BaseMessage { ...@@ -37,6 +22,10 @@ public class BaseMessage {
* @Return * @Return
*/ */
protected void setType(MessageTypeEnum type) { protected void setType(MessageTypeEnum type) {
this.type = type.getCode(); this.put("type", type.getCode());
}
protected void setAttrs(Object attrs) {
this.put("attrs", attrs);
} }
} }
package com.wecloud.im.sdk.model.message;
import java.util.HashMap;
/**
*
* @Author luozh
* @Date 2022年05月07日 13:51
* @Version 1.0
*/
public class WecloudImMessage extends HashMap<String, Object> {
}
...@@ -3,7 +3,6 @@ package com.wecloud.im.sdk.sample; ...@@ -3,7 +3,6 @@ package com.wecloud.im.sdk.sample;
import java.util.Date; import java.util.Date;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil;
import com.wecloud.im.sdk.WecloudIm; import com.wecloud.im.sdk.WecloudIm;
import com.wecloud.im.sdk.WecloudImClientBuilder; import com.wecloud.im.sdk.WecloudImClientBuilder;
...@@ -41,11 +40,11 @@ public class PublishGroupChatMessageSample { ...@@ -41,11 +40,11 @@ public class PublishGroupChatMessageSample {
groupChatMessage.setSilent(silent); groupChatMessage.setSilent(silent);
groupChatMessage.setMessageType("-1"); groupChatMessage.setMessageType("-1");
groupChatMessage.setContent(JSONUtil.toJsonStr(buildTextMessage())); groupChatMessage.setContent(buildTextMessage());
Boolean textMessageResult = im.publishGroupChatMessage(groupChatMessage); Boolean textMessageResult = im.publishGroupChatMessage(groupChatMessage);
groupChatMessage.setMessageType("-2"); groupChatMessage.setMessageType("-2");
groupChatMessage.setContent(JSONUtil.toJsonStr(buildPicMessage())); groupChatMessage.setContent(buildPicMessage());
Boolean picMessageResult = im.publishGroupChatMessage(groupChatMessage); Boolean picMessageResult = im.publishGroupChatMessage(groupChatMessage);
......
...@@ -3,7 +3,6 @@ package com.wecloud.im.sdk.sample; ...@@ -3,7 +3,6 @@ package com.wecloud.im.sdk.sample;
import java.util.Date; import java.util.Date;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil;
import com.wecloud.im.sdk.WecloudIm; import com.wecloud.im.sdk.WecloudIm;
import com.wecloud.im.sdk.WecloudImClientBuilder; import com.wecloud.im.sdk.WecloudImClientBuilder;
...@@ -26,8 +25,8 @@ public class PublishPrivateChatMessageSample { ...@@ -26,8 +25,8 @@ public class PublishPrivateChatMessageSample {
"QizKVHcILRWp6Td2", "QizKVHcILRWp6Td2",
"287d04828099fb7de871e9dda845fa8b6b2302faf2ab3737"); "287d04828099fb7de871e9dda845fa8b6b2302faf2ab3737");
String senderId = "1512322637488148480"; String senderId = "1526788710924972032";
String toGroupIds = "1513691265777217536"; String toUserId = "1529434627821957120";
String messageType = "-1"; String messageType = "-1";
TextMessage textMessage = new TextMessage(); TextMessage textMessage = new TextMessage();
...@@ -36,9 +35,9 @@ public class PublishPrivateChatMessageSample { ...@@ -36,9 +35,9 @@ public class PublishPrivateChatMessageSample {
boolean silent = true; boolean silent = true;
PrivateChatMessage privateChatMessage = new PrivateChatMessage(); PrivateChatMessage privateChatMessage = new PrivateChatMessage();
privateChatMessage.setFromUserId(senderId); privateChatMessage.setFromUserId(senderId);
privateChatMessage.setToUserIds(toGroupIds); privateChatMessage.setToUserIds(toUserId);
privateChatMessage.setMessageType(messageType); privateChatMessage.setMessageType(messageType);
privateChatMessage.setContent(JSONUtil.toJsonStr(textMessage)); privateChatMessage.setContent(textMessage);
privateChatMessage.setPushContent(""); privateChatMessage.setPushContent("");
privateChatMessage.setIncludeSender(false); privateChatMessage.setIncludeSender(false);
privateChatMessage.setPersisted(true); privateChatMessage.setPersisted(true);
......
...@@ -2,14 +2,13 @@ package com.wecloud.im.sdk.sample; ...@@ -2,14 +2,13 @@ package com.wecloud.im.sdk.sample;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil;
import com.wecloud.im.sdk.WecloudIm; import com.wecloud.im.sdk.WecloudIm;
import com.wecloud.im.sdk.WecloudImClientBuilder; import com.wecloud.im.sdk.WecloudImClientBuilder;
import com.wecloud.im.sdk.model.PrivateChatStatusMessage; import com.wecloud.im.sdk.model.PrivateChatStatusMessage;
import com.wecloud.im.sdk.model.message.WecloudImMessage;
/** /**
* 发布单聊消息 * 发布单聊消息
...@@ -31,7 +30,7 @@ public class PublishPrivateChatMessageStatusSample { ...@@ -31,7 +30,7 @@ public class PublishPrivateChatMessageStatusSample {
String toGroupIds = "1513691265777217536"; String toGroupIds = "1513691265777217536";
String messageType = "-1"; String messageType = "-1";
Map<String, Object> content = new HashMap<>(); WecloudImMessage content = new WecloudImMessage();
content.put("toConversation", "1519985463165931520"); content.put("toConversation", "1519985463165931520");
content.put("type", -1); content.put("type", -1);
content.put("text", "这是测试消息: " + DateUtil.formatDateTime(new Date())); content.put("text", "这是测试消息: " + DateUtil.formatDateTime(new Date()));
...@@ -45,7 +44,7 @@ public class PublishPrivateChatMessageStatusSample { ...@@ -45,7 +44,7 @@ public class PublishPrivateChatMessageStatusSample {
privateChatMessage.setFromUserId(senderId); privateChatMessage.setFromUserId(senderId);
privateChatMessage.setToUserIds(toGroupIds); privateChatMessage.setToUserIds(toGroupIds);
privateChatMessage.setMessageType(messageType); privateChatMessage.setMessageType(messageType);
privateChatMessage.setContent(JSONUtil.toJsonStr(content)); privateChatMessage.setContent(content);
privateChatMessage.setIncludeBlacklist(false); privateChatMessage.setIncludeBlacklist(false);
privateChatMessage.setIncludeSender(false); privateChatMessage.setIncludeSender(false);
......
...@@ -24,6 +24,7 @@ public class SignTest { ...@@ -24,6 +24,7 @@ public class SignTest {
Map<String, String> headers = new HashMap<>(); Map<String, String> headers = new HashMap<>();
headers.put(ImHeaders.DATE, date); headers.put(ImHeaders.DATE, date);
headers.put(ImHeaders.CONTENT_TYPE, "application/json; charset=utf-8"); headers.put(ImHeaders.CONTENT_TYPE, "application/json; charset=utf-8");
headers.put(ImHeaders.X_IM_FROM, "server");
// 请求参数 // 请求参数
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
// 发送请求 // 发送请求
...@@ -34,7 +35,7 @@ public class SignTest { ...@@ -34,7 +35,7 @@ public class SignTest {
String canonicalString = SignUtils.buildCanonicalString("POST", resourcePath, request); String canonicalString = SignUtils.buildCanonicalString("POST", resourcePath, request);
String signature = new HmacSHA256Signature().computeSignature("287d04ds8099fb7de871e9dda845fa8b6b2302faf2ab3737", canonicalString); String signature = new HmacSHA256Signature().computeSignature("287d04ds8099fb7de871e9dda845fa8b6b2302faf2ab3737", canonicalString);
String authorization = SignUtils.composeRequestAuthorization("QizKVHcILRWp6Fd3", signature); String authorization = SignUtils.composeRequestAuthorization("QizKVHcILRWp6Fd3", signature);
System.out.println("canonicalString: " + canonicalString); System.out.println("canonicalString: \n" + canonicalString);
System.out.println("signature: " + signature); System.out.println("signature: " + signature);
System.out.println("Authorization header: " + authorization); System.out.println("Authorization header: " + authorization);
......
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