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