Commit cce2364d by 罗长华

sdk增加message类

parent 3ef7767c
package com.wecloud.im.sdk.enums;
import lombok.Getter;
/**
*
* @Author luozh
* @Date 2022年05月07日 13:44
* @Version 1.0
*/
public enum MessageTypeEnum {
// 位置
POSITION(0),
// 文本消息
TEXT(-1),
// 图像消息
IMAGE(-2),
// 音频消息
AUDIO(-3),
// 视频消息
VIDEO(-4),
// 文件消息
FILE(-5),
;
@Getter
private final int code;
MessageTypeEnum(int code) {
this.code = code;
}
/**
* 根据code获取
*
* @param code
* @return
*/
public static MessageTypeEnum getByCode(int code) {
for (MessageTypeEnum messageTypeEnum : values()) {
if (messageTypeEnum.getCode() == code) {
return messageTypeEnum;
}
}
return null;
}
}
package com.wecloud.im.sdk.model.message;
import lombok.Getter;
import lombok.Setter;
import com.wecloud.im.sdk.enums.MessageTypeEnum;
/**
*
* @Author luozh
* @Date 2022年05月07日 13:51
* @Version 1.0
*/
@Getter
public class BaseMessage {
/**
* 类型
*/
private Integer type;
/**
* 用来给开发者存储拓展的自定义属性字段
*/
@Setter
private Object attrs;
public BaseMessage(MessageTypeEnum type) {
this.setType(type);
}
/**
* 设置类型
* @Author luozh
* @Date 2022年05月07日 01:55:06
* @param type
* @Return
*/
protected void setType(MessageTypeEnum type) {
this.type = type.getCode();
}
}
package com.wecloud.im.sdk.model.message;
import lombok.Getter;
import lombok.Setter;
import com.wecloud.im.sdk.enums.MessageTypeEnum;
/**
* 图片类型消息
* @Author luozh
* @Date 2022年05月07日 13:59
* @Version 1.0
*/
@Getter
@Setter
public class FileMessage extends BaseMessage {
public FileMessage() {
super(MessageTypeEnum.FILE);
}
private MessageFile file;
}
package com.wecloud.im.sdk.model.message;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
/**
* 消息图片文件
* @Author luozh
* @Date 2022年05月07日 14:00
* @Version 1.0
*/
@Data
public class MessageFile {
/**
* 文件地址
*/
private String url;
/**
* 元数据
*/
private MetaData metaData;
@Setter
@Getter
public static class MetaData {
/**
* 文件
*/
private String name;
/**
* 文件的格式
*/
private String format;
/**
* 大小 单位b
*/
private Integer size;
}
}
package com.wecloud.im.sdk.model.message;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
/**
* 消息图片文件
* @Author luozh
* @Date 2022年05月07日 14:00
* @Version 1.0
*/
@Data
public class MessageImageFile {
/**
* 图片地址
*/
private String url;
/**
* 元数据
*/
private MetaData metaData;
@Setter
@Getter
public static class MetaData {
/**
* 图像的名称
*/
private String name;
/**
* 图像的格式
*/
private String format;
/**
* 高度(单位 像素)
*/
private Integer height;
/**
* 宽度(单位 像素)
*/
private Integer width;
/**
* 大小 单位b
*/
private Integer size;
}
}
package com.wecloud.im.sdk.model.message;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
/**
* 音频消息
* @Author luozh
* @Date 2022年05月07日 14:05
* @Version 1.0
*/
@Data
public class MessageVideoFile {
/**
* 地址
*/
private String url;
/**
* 元数据
*/
private MetaData metaData;
@Setter
@Getter
public static class MetaData {
/**
* 文件的名称
*/
private String name;
/**
* 视频的格式
*/
private String format;
/**
* 时长 单位秒 精确小数点后1位
*/
private Double duration;
/**
* 高度(单位 像素)
*/
private Integer height;
/**
* 宽度(单位 像素)
*/
private Integer width;
/**
* 大小 单位b
*/
private Integer size;
}
}
package com.wecloud.im.sdk.model.message;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
/**
* 音频消息
* @Author luozh
* @Date 2022年05月07日 14:05
* @Version 1.0
*/
@Data
public class MessageVoiceFile {
/**
* 地址
*/
private String url;
/**
* 元数据
*/
private MessageImageFile.MetaData metaData;
@Setter
@Getter
public static class MetaData {
/**
* 文件的名称
*/
private String name;
/**
* 时长 单位秒 精确小数点后1位
*/
private Double duration;
/**
* 大小 单位b
*/
private Integer size;
}
}
package com.wecloud.im.sdk.model.message;
import lombok.Getter;
import lombok.Setter;
import com.wecloud.im.sdk.enums.MessageTypeEnum;
/**
* 图片类型消息
* @Author luozh
* @Date 2022年05月07日 13:59
* @Version 1.0
*/
@Getter
@Setter
public class PicMessage extends BaseMessage {
public PicMessage() {
super(MessageTypeEnum.IMAGE);
}
private MessageImageFile file;
}
package com.wecloud.im.sdk.model.message;
import lombok.Getter;
import lombok.Setter;
import com.wecloud.im.sdk.enums.MessageTypeEnum;
/**
* 图片类型消息
* @Author luozh
* @Date 2022年05月07日 13:59
* @Version 1.0
*/
@Getter
@Setter
public class PositionMessage extends BaseMessage {
public PositionMessage() {
super(MessageTypeEnum.POSITION);
}
private MetaData metaData;
@Setter
@Getter
public static class MetaData {
/**
* 经度
*/
private Double longitude;
/**
* 纬度
*/
private Double latitude;
}
}
package com.wecloud.im.sdk.model.message;
import lombok.Getter;
import lombok.Setter;
import com.wecloud.im.sdk.enums.MessageTypeEnum;
/**
*
* @Author luozh
* @Date 2022年05月07日 13:56
* @Version 1.0
*/
@Getter
@Setter
public class TextMessage extends BaseMessage {
public TextMessage() {
super(MessageTypeEnum.TEXT);
}
private String text;
}
package com.wecloud.im.sdk.model.message;
import lombok.Getter;
import lombok.Setter;
import com.wecloud.im.sdk.enums.MessageTypeEnum;
/**
* 图片类型消息
* @Author luozh
* @Date 2022年05月07日 13:59
* @Version 1.0
*/
@Getter
@Setter
public class VideoMessage extends BaseMessage {
public VideoMessage() {
super(MessageTypeEnum.VIDEO);
}
private MessageVideoFile file;
}
package com.wecloud.im.sdk.model.message;
import lombok.Getter;
import lombok.Setter;
import com.wecloud.im.sdk.enums.MessageTypeEnum;
/**
* 图片类型消息
* @Author luozh
* @Date 2022年05月07日 13:59
* @Version 1.0
*/
@Getter
@Setter
public class VoiceMessage extends BaseMessage {
public VoiceMessage() {
super(MessageTypeEnum.AUDIO);
}
private MessageVoiceFile file;
}
package com.wecloud.im.sdk.sample;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.wecloud.im.sdk.WecloudIm;
import com.wecloud.im.sdk.WecloudImClientBuilder;
import com.wecloud.im.sdk.model.GroupChatMessage;
import com.wecloud.im.sdk.model.GroupChatStatusMessage;
import com.wecloud.im.sdk.model.message.MessageImageFile;
import com.wecloud.im.sdk.model.message.PicMessage;
import com.wecloud.im.sdk.model.message.TextMessage;
/**
* 发布群消息
......@@ -30,30 +29,49 @@ public class PublishGroupChatMessageSample {
String toGroupIds = "1519985463165931520";
String messageType = "-1";
Map<String, Object> msg = new HashMap<>();
msg.put("toConversation", "1519985463165931520");
msg.put("type", -1);
msg.put("text", "这是测试消息: " + DateUtil.formatDateTime(new Date()));
boolean silent = true;
GroupChatMessage groupChatMessage = new GroupChatMessage();
groupChatMessage.setFromUserId(senderId);
groupChatMessage.setToGroupIds(toGroupIds);
groupChatMessage.setMessageType(messageType);
groupChatMessage.setContent(JSONUtil.toJsonStr(msg));
groupChatMessage.setPushContent("");
groupChatMessage.setIncludeSender(false);
groupChatMessage.setPersisted(true);
groupChatMessage.setMentioned(false);
groupChatMessage.setSilent(silent);
// groupChatMessage.setPushExt(new PushExtParam());
String s = " {\"content\":\"{\\\"amount\\\":1.000,\\\"blessingWords\\\":\\\"恭喜发财,大吉大利\\\"," +
"\\\"id\\\":1522526485813088256,\\\"liveStatus\\\":1,\\\"number\\\":1,\\\"payMode\\\":1,\\\"payStatus\\\":2,\\\"payTime\\\":1651833576000,\\\"redEnvelopeType\\\":2,\\\"remainingAmount\\\":0.000,\\\"remainingPacket\\\":0,\\\"sponsorAccountCode\\\":\\\"1517329604459835392\\\",\\\"targetType\\\":2}\",\"fromUserId\":\"1517329604459835392\",\"includeBlacklist\":false,\"includeSender\":true,\"messageType\":\"201\",\"toGroupIds\":\"1519985463165931520\"}";
groupChatMessage.setMessageType("-1");
groupChatMessage.setContent(JSONUtil.toJsonStr(buildTextMessage()));
Boolean textMessageResult = im.publishGroupChatMessage(groupChatMessage);
GroupChatStatusMessage groupChatMessage1 = JSONObject.parseObject(s, GroupChatStatusMessage.class);
groupChatMessage.setMessageType("-2");
groupChatMessage.setContent(JSONUtil.toJsonStr(buildPicMessage()));
Boolean picMessageResult = im.publishGroupChatMessage(groupChatMessage);
Boolean result = im.publishGroupChatStatusMessage(groupChatMessage1);
}
private static TextMessage buildTextMessage() {
TextMessage textMessage = new TextMessage();
textMessage.setText("这是text消息测试: " + DateUtil.formatDateTime(new Date()));
return textMessage;
}
private static PicMessage buildPicMessage() {
PicMessage picMessage = new PicMessage();
MessageImageFile imageFile = new MessageImageFile();
imageFile.setUrl("http://ac-p2bpmgci.clouddn.com/246b8acc-2e12-4a9d-a255-8d17a3059d25");
MessageImageFile.MetaData metaData = new MessageImageFile.MetaData();
metaData.setName("IMG_20141223.jpeg");
metaData.setFormat("png");
metaData.setHeight(768);
metaData.setWidth(1024);
metaData.setSize(18);
imageFile.setMetaData(metaData);
picMessage.setFile(imageFile);
return picMessage;
}
......
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