NIMSDK-AOS  10.9.50
QChatSendMessageParam.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.qchat.param;
2 
3 import androidx.annotation.NonNull;
4 import com.netease.nimlib.qchat.QChatAuthCache;
5 import com.netease.nimlib.qchat.model.QChatMessageImpl;
11 import com.netease.nimlib.util.StringUtil;
12 import java.util.List;
13 import java.util.Map;
14 
15 /**
16  * "发送消息"接口入参
17  */
18 public class QChatSendMessageParam {
19 
20  private static final String TAG = "QChatSendMessageParam";
21  /**
22  * 消息所属的serverId,必填
23  */
24  @NonNull
25  private final Long serverId;
26  /**
27  * 消息所属的channelId,必填
28  */
29  @NonNull
30  private final Long channelId;
31  /**
32  * 消息类型, 同TalkMsgTag,必填
33  */
34  @NonNull
35  private final MsgTypeEnum type;
36  /**
37  * 消息body
38  */
39  private String body;
40  /**
41  * 消息附件,通过MsgAttachment#toJson(false)获得
42  */
43  private String attach;
44  /**
45  * 消息自定义扩展,SDK会转成json字符串使用
46  */
47  private Map<String, Object> extension;
48  /**
49  * 第三方自定义的推送属性,SDK会转成json字符串使用
50  */
51  private Map<String, Object> pushPayload;
52  /**
53  * 自定义推送文案
54  */
55  private String pushContent;
56  /**
57  * 被艾特的人的accid列表
58  */
59  private List<String> mentionedAccidList;
60  /**
61  * 被艾特的身份组的roleid列表
62  */
63  private List<Long> mentionedRoleIdList;
64  /**
65  * 是否艾特所有人,0:不是,1:是,默认0
66  */
67  private boolean mentionedAll = false;
68  /**
69  * 该消息是否存储云端历史,0:不支持,1:支持, 默认1
70  */
71  private boolean historyEnable = true;
72  /**
73  * 是否需要推送,默认true
74  */
75  private boolean pushEnable = true;
76  /**
77  * 是否需要消息计数,默认true
78  */
79  private boolean needBadge = true;
80  /**
81  * 是否需要推送昵称,默认true
82  */
83  private boolean needPushNick = true;
84  /**
85  * 是否需要抄送,默认true
86  */
87  private boolean isRouteEnable = true;
88 
89 
90  /**
91  * 消息的uuid
92  * 不是重发的消息,uuid有客户端SDK自动生成
93  * 重发的消息,复用被重发消息的uuid
94  */
95  private final String uuid;
96 
97  /**
98  * 状态,可以自定义(status>= 10000)
99  */
100  private Integer serverStatus;
101  /**
102  * 环境变量,用户可以根据不同的env配置不同的抄送和回调地址
103  */
104  private String env;
105  /**
106  * 消息反垃圾配置选项
107  */
108  private QChatMessageAntiSpamOption antiSpamOption;
109 
110  /**
111  * 消息子类型
112  */
113  private Integer subType;
114 
115  /**
116  *
117  * @param serverId 消息所属的serverId
118  * @param channelId 消息所属的channelId
119  * @param type 消息类型
120  */
121  public QChatSendMessageParam(long serverId, long channelId, @NonNull MsgTypeEnum type) {
122  this.serverId = serverId;
123  this.channelId = channelId;
124  this.type = type;
125 
126  this.uuid = StringUtil.get32UUID();
127  }
128 
129  /**
130  * 设置消息内容
131  * @param body 消息内容
132  */
133  public void setBody(String body) {
134  this.body = body;
135  }
136 
137  /**
138  * 设置消息附件,通过MsgAttachment#toJson(false)获得
139  * @param attach 消息附件
140  */
141  public void setAttach(String attach) {
142  this.attach = attach;
143  }
144 
145  /**
146  * 设置消息附件
147  * @param attachment 消息附件类
148  */
149  public void setAttachment(MsgAttachment attachment) {
150  this.attach = attachment.toJson(false);
151  }
152 
153  /**
154  * 设置扩展字段
155  * @param extension
156  */
157  public void setExtension(Map<String, Object> extension) {
158  this.extension = extension;
159  }
160 
161  /**
162  * 设置推送payload
163  * @param pushPayload
164  */
165  public void setPushPayload(Map<String, Object> pushPayload) {
166  this.pushPayload = pushPayload;
167  }
168 
169  /**
170  * 设置推送文案
171  * @param pushContent
172  */
173  public void setPushContent(String pushContent) {
174  this.pushContent = pushContent;
175  }
176 
177  /**
178  * 设置@账号列表
179  * @param mentionedAccidList
180  */
181  public void setMentionedAccidList(List<String> mentionedAccidList) {
182  this.mentionedAccidList = mentionedAccidList;
183  }
184 
185  /**
186  * 设置@身份组的RoleId列表
187  * @param mentionedRoleIdList
188  */
189  public void setMentionedRoleIdList(List<Long> mentionedRoleIdList) {
190  this.mentionedRoleIdList = mentionedRoleIdList;
191  }
192 
193  /**
194  * 设置是否@所有人
195  * @param mentionedAll
196  */
197  public void setMentionedAll(boolean mentionedAll) {
198  this.mentionedAll = mentionedAll;
199  }
200 
201  /**
202  * 设置是否消息是否存储云端历史
203  * @param historyEnable
204  */
205  public void setHistoryEnable(boolean historyEnable) {
206  this.historyEnable = historyEnable;
207  }
208 
209  /**
210  * 设置是否需要推送
211  * @param pushEnable
212  */
213  public void setPushEnable(boolean pushEnable) {
214  this.pushEnable = pushEnable;
215  }
216 
217  /**
218  * 设置是否需要消息计数
219  * @param needBadge
220  */
221  public void setNeedBadge(boolean needBadge) {
222  this.needBadge = needBadge;
223  }
224 
225  /**
226  * 设置是否需要推送昵称
227  * @param needPushNick
228  */
229  public void setNeedPushNick(boolean needPushNick) {
230  this.needPushNick = needPushNick;
231  }
232 
233  /**
234  * 获取服务器id
235  * @return
236  */
237  @NonNull
238  public Long getServerId() {
239  return serverId;
240  }
241 
242  /**
243  * 获取频道id
244  * @return
245  */
246  @NonNull
247  public Long getChannelId() {
248  return channelId;
249  }
250 
251  /**
252  * 获取消息类型
253  * @return
254  */
255  @NonNull
256  public MsgTypeEnum getType() {
257  return type;
258  }
259 
260  /**
261  * 获取消息内容
262  * @return
263  */
264  public String getBody() {
265  return body;
266  }
267 
268  /**
269  * 获取消息附件字符串
270  * @return
271  */
272  public String getAttach() {
273  return attach;
274  }
275 
276  /**
277  * 获取扩展字段
278  * @return
279  */
280  public Map<String, Object> getExtension() {
281  return extension;
282  }
283 
284  /**
285  * 获取推送payload
286  * @return
287  */
288  public Map<String, Object> getPushPayload() {
289  return pushPayload;
290  }
291 
292  /**
293  * 获取推送文案
294  * @return
295  */
296  public String getPushContent() {
297  return pushContent;
298  }
299 
300  /**
301  * 获取@账号列表
302  * @return
303  */
304  public List<String> getMentionedAccidList() {
305  return mentionedAccidList;
306  }
307 
308  /**
309  * 设置@身份组的RoleId列表
310  * @return
311  */
312  public List<Long> getMentionedRoleIdList() {
313  return mentionedRoleIdList;
314  }
315 
316  /**
317  * 是否@所有人
318  * @return
319  */
320  public boolean isMentionedAll() {
321  return mentionedAll;
322  }
323 
324  /**
325  * 是否消息在云端存储,默认true
326  * @return
327  */
328  public boolean isHistoryEnable() {
329  return historyEnable;
330  }
331 
332  /**
333  * 是否需要推送,默认true
334  * @return
335  */
336  public boolean isPushEnable() {
337  return pushEnable;
338  }
339 
340  /**
341  * 是否需要消息计数,默认true
342  * @return
343  */
344  public boolean isNeedBadge() {
345  return needBadge;
346  }
347 
348  /**
349  * 是否需要推送昵称,默认true
350  * @return
351  */
352  public boolean isNeedPushNick() {
353  return needPushNick;
354  }
355 
356  /**
357  * 获取消息uuid
358  * @return
359  */
360  public String getUuid() {
361  return uuid;
362  }
363 
364  /**
365  * 获取消息服务器状态
366  * @return
367  */
368  public Integer getServerStatus() {
369  return serverStatus;
370  }
371  /**
372  * 如果设置状态,状态只能设置成自定义的状态(status>= 10000),否则提示414参数错误
373  * @param serverStatus
374  */
375  public void setServerStatus(Integer serverStatus) {
376  this.serverStatus = serverStatus;
377  }
378 
379  /**
380  * 获取消息反垃圾配置选项
381  * @return
382  */
384  return antiSpamOption;
385  }
386 
387  /**
388  * 设置消息反垃圾配置选项
389  * @param antiSpamOption
390  */
391  public void setAntiSpamOption(QChatMessageAntiSpamOption antiSpamOption) {
392  this.antiSpamOption = antiSpamOption;
393  }
394 
395  /**
396  * 是否需要抄送,默认true
397  * @return
398  */
399  public boolean isRouteEnable() {
400  return isRouteEnable;
401  }
402 
403  /**
404  * 设置是否需要抄送
405  * @param routeEnable
406  */
407  public void setRouteEnable(boolean routeEnable) {
408  isRouteEnable = routeEnable;
409  }
410 
411  /**
412  * 获取环境变量
413  * 用户可以根据不同的env配置不同的抄送和回调地址
414  *
415  * @return 环境变量
416  */
417  public String getEnv() {
418  return env;
419  }
420 
421  /**
422  * 设置环境变量
423  * 用户可以根据不同的env配置不同的抄送和回调地址
424  *
425  * @param env 环境变量
426  */
427  public void setEnv(String env) {
428  this.env = env;
429  }
430 
431  /**
432  * 获取消息子类型
433  * @return
434  */
435  public Integer getSubType() {
436  return subType;
437  }
438 
439  /**
440  * 设置消息子类型
441  * @param subType
442  */
443  public void setSubType(Integer subType) {
444  this.subType = subType;
445  }
446 
447  private QChatMessageImpl qChatMessage;
448 
449  /**
450  * 将QChatSendMessageParam转换成QChatMessage
451  * @return
452  */
453  public synchronized QChatMessage toQChatMessage() {
454  if (qChatMessage == null) {
455  qChatMessage = QChatMessageImpl.fromParam(this);
456  qChatMessage.setFromAccount(QChatAuthCache.getInstance().getCurrentAccount());
457  qChatMessage.setDirect(MsgDirectionEnum.Out);
458  }else
459  {
460  QChatMessageImpl.fromParam(this,qChatMessage);
461  }
462 
463  return qChatMessage;
464  }
465 }
boolean isRouteEnable()
是否需要抄送,默认true
void setPushEnable(boolean pushEnable)
设置是否需要推送
List< Long > getMentionedRoleIdList()
设置@身份组的RoleId列表
boolean isNeedBadge()
是否需要消息计数,默认true
Map< String, Object > getPushPayload()
获取推送payload
String getEnv()
获取环境变量 用户可以根据不同的env配置不同的抄送和回调地址
void setSubType(Integer subType)
设置消息子类型
boolean isPushEnable()
是否需要推送,默认true
void setPushPayload(Map< String, Object > pushPayload)
设置推送payload
void setEnv(String env)
设置环境变量 用户可以根据不同的env配置不同的抄送和回调地址
void setAttachment(MsgAttachment attachment)
设置消息附件
void setNeedPushNick(boolean needPushNick)
设置是否需要推送昵称
void setAttach(String attach)
设置消息附件,通过MsgAttachment::toJson(false)获得
void setDirect(MsgDirectionEnum direct)
设置消息方向
void setMentionedRoleIdList(List< Long > mentionedRoleIdList)
设置@身份组的RoleId列表
synchronized QChatMessage toQChatMessage()
将QChatSendMessageParam转换成QChatMessage
Map< String, Object > getExtension()
获取扩展字段
QChatSendMessageParam(long serverId, long channelId,@NonNull MsgTypeEnum type)
void setServerStatus(Integer serverStatus)
如果设置状态,状态只能设置成自定义的状态(status>= 10000),否则提示414参数错误
void setRouteEnable(boolean routeEnable)
设置是否需要抄送
QChatMessageAntiSpamOption getAntiSpamOption()
获取消息反垃圾配置选项
boolean isNeedPushNick()
是否需要推送昵称,默认true
void setAntiSpamOption(QChatMessageAntiSpamOption antiSpamOption)
设置消息反垃圾配置选项
void setExtension(Map< String, Object > extension)
设置扩展字段
String toJson(boolean send)
将消息附件序列化为字符串,存储到消息数据库或发送到服务器。
void setHistoryEnable(boolean historyEnable)
设置是否消息是否存储云端历史
void setNeedBadge(boolean needBadge)
设置是否需要消息计数
boolean isHistoryEnable()
是否消息在云端存储,默认true
void setPushContent(String pushContent)
设置推送文案
void setMentionedAccidList(List< String > mentionedAccidList)
设置@账号列表
void setMentionedAll(boolean mentionedAll)
设置是否@所有人