NIMSDK-AOS  9.19.0
QChatSendSystemNotificationParam.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.qchat.param;
2 
3 import android.util.Log;
4 import androidx.annotation.NonNull;
5 import com.netease.nimlib.BuildConfig;
6 import com.netease.nimlib.log.model.LogDesensitizationConfigHelper;
7 import com.netease.nimlib.qchat.model.QChatSystemNotificationImpl;
11 import com.netease.nimlib.util.StringUtil;
12 import java.util.ArrayList;
13 import java.util.List;
14 import java.util.Map;
15 
16 /**
17  * "发送系统通知"接口入参
18  */
20 
21  private static final String TAG = "SendSystemNotification";
22 
23  /**
24  * 通知所属的serverId
25  */
26  @NonNull
27  private final Long serverId;
28  /**
29  * 通知所属的channelId
30  */
31  private final Long channelId;
32  /**
33  * 通知接收者账号列表
34  */
35  private final List<String> toAccids;
36  /**
37  * 通知内容
38  */
39  private String body;
40  /**
41  * 通知附件
42  */
43  private String attach;
44  /**
45  * 扩展字段,SDK会转成json字符串使用
46  */
47  private Map<String, Object> extension;
48  /**
49  * 状态,可以自定义(status>= 10000)
50  */
51  private Integer status;
52  /**
53  * 第三方自定义的推送属性,SDK会转成json字符串使用
54  */
55  private Map<String, Object> pushPayload;
56  /**
57  * 自定义推送文案
58  */
59  private String pushContent;
60  /**
61  * 是否存离线,只有toAccids不为空,才能设置为存离线,默认false
62  * 设置为离线的消息,发送时如果接收方不在线,上线后可以通过同步接口获得
63  */
64  private boolean persistEnable = false;
65  /**
66  * 是否需要推送,默认false
67  */
68  private boolean pushEnable = false;
69  /**
70  * 是否需要消息计数,默认true
71  */
72  private boolean needBadge = true;
73  /**
74  * 是否需要推送昵称,默认true
75  */
76  private boolean needPushNick = true;
77 
78  /**
79  * 是否需要抄送,默认true
80  */
81  private boolean isRouteEnable = true;
82 
83  /**
84  * 环境变量,用户可以根据不同的env配置不同的抄送和回调地址
85  */
86  private String env;
87 
88  /**
89  * 通知发送对象类型,对应下面四种情况,不需要主动设置
90  * <p>
91  * QChatSystemMsgToType.SERVER:如果只填了serverId,则发送给serverId下的所有人
92  * QChatSystemMsgToType.CHANNEL: 如果填了serverId+channelId,则发送给serverId+channelId下的所有人
93  * QChatSystemMsgToType.SERVER_ACCIDS: 如果填了serverId+toAccids,则发送给server下的指定账号列表
94  * QChatSystemMsgToType.CHANNEL_ACCIDS: 如果填了serverId+channelId+toAccids,则发送给server下某个channel里的指定账号列表
95  */
96  private final Integer toType;
97 
98  /**
99  * 系统通知的uuid
100  * 不是重发的系统通知,uuid有客户端SDK自动生成
101  * 重发的系统通知,复用被重发系统通知的uuid
102  */
103  @NonNull
104  private final String uuid;
105 
106  // QChatSystemMsgToType.SERVER:如果只填了serverId,则发送给serverId下的所有人
107 
108 
109 
110  /**
111  * 通知给服务器
112  * @param serverId 服务器id
113  */
114  public QChatSendSystemNotificationParam(long serverId) {
115  this(serverId, 0L, new ArrayList<>(), QChatSystemMessageToType.SERVER.getValue());
116  }
117 
118  /**
119  * 通知给频道
120  * @param serverId 服务器id
121  * @param channelId 频道id
122  */
123  public QChatSendSystemNotificationParam(long serverId, long channelId) {
124  this(serverId, channelId, new ArrayList<>(), QChatSystemMessageToType.CHANNEL.getValue());
125  }
126 
127  /**
128  * 通知给服务器成员
129  * @param serverId 服务器id
130  * @param toAccids 通知的账号列表
131  */
132  public QChatSendSystemNotificationParam(long serverId, List<String> toAccids) {
133  this(serverId, 0L, toAccids, QChatSystemMessageToType.SERVER_ACCIDS.getValue());
134  }
135 
136  /**
137  * 通知给频道成员
138  * @param serverId 服务器id
139  * @param channelId 频道id
140  * @param toAccids 通知的账号列表
141  */
142  public QChatSendSystemNotificationParam(long serverId, long channelId, List<String> toAccids) {
143  this(serverId, channelId, toAccids, QChatSystemMessageToType.CHANNEL_ACCIDS.getValue());
144  }
145 
146  private QChatSendSystemNotificationParam(long serverId, long channelId, List<String> toAccids, int toType) {
147  this.serverId = serverId;
148  if (channelId > 0) {
149  this.channelId = channelId;
150  } else {
151  this.channelId = null;
152  }
153  this.toAccids = toAccids;
154 
155  this.toType = toType;
156 
157  this.uuid = StringUtil.get32UUID();
158  }
159 
160  /**
161  * 获取通知内容
162  * @return
163  */
164  public String getBody() {
165  return body;
166  }
167 
168  /**
169  * 设置通知内容
170  * @param body
171  */
172  public void setBody(String body) {
173  this.body = body;
174  }
175 
176  /**
177  * 设置通知附件
178  * @param attach
179  */
180  public void setAttach(String attach) {
181  this.attach = attach;
182  }
183 
184  /**
185  * 设置扩展字段
186  * @param extension
187  */
188  public void setExtension(Map<String, Object> extension) {
189  this.extension = extension;
190  }
191 
192  /**
193  * 如果设置状态,状态只能设置成自定义的状态(status>= 10000),否则提示414参数错误
194  * @param status
195  */
196  public void setStatus(Integer status) {
197  this.status = status;
198  }
199 
200  /**
201  * 设置推送payload
202  * @param pushPayload
203  */
204  public void setPushPayload(Map<String, Object> pushPayload) {
205  this.pushPayload = pushPayload;
206  }
207 
208  /**
209  * 设置推送内容
210  * @param pushContent
211  */
212  public void setPushContent(String pushContent) {
213  this.pushContent = pushContent;
214  }
215 
216  /**
217  * 获取服务器id
218  * @return
219  */
220  @NonNull
221  public Long getServerId() {
222  return serverId;
223  }
224 
225  /**
226  * 获取频道id
227  * @return
228  */
229  public Long getChannelId() {
230  return channelId;
231  }
232 
233  /**
234  * 获取通知的账号列表
235  * @return
236  */
237  public List<String> getToAccids() {
238  return toAccids;
239  }
240 
241  /**
242  * 获取附件字符串
243  * @return
244  */
245  public String getAttach() {
246  return attach;
247  }
248 
249  /**
250  * 获取扩展字段
251  * @return
252  */
253  public Map<String, Object> getExtension() {
254  return extension;
255  }
256 
257  /**
258  * 获取状态
259  * @return
260  */
261  public Integer getStatus() {
262  return status;
263  }
264 
265  /**
266  * 获取推送payload
267  * @return
268  */
269  public Map<String, Object> getPushPayload() {
270  return pushPayload;
271  }
272 
273  /**
274  * 获取推送内容
275  * @return
276  */
277  public String getPushContent() {
278  return pushContent;
279  }
280 
281  /**
282  * 是否存离线
283  * @return
284  */
285  public boolean isPersistEnable() {
286  return persistEnable;
287  }
288 
289  /**
290  * 设置是否存离线
291  * @param persistEnable
292  */
293  public void setPersistEnable(boolean persistEnable) {
294  if (persistEnable && (toAccids == null || toAccids.isEmpty())) {
295  if (BuildConfig.DEBUG) {
296  throw new IllegalArgumentException("set persistEnable = true only if toAccids is not null");
297  } else {
298  if (LogDesensitizationConfigHelper.printToLogcat()) {
299  Log.e(TAG, "set persistEnable = true only if toAccids is not null");
300  }
301  }
302  }
303  this.persistEnable = persistEnable;
304  }
305 
306  /**
307  * 获取通知发送对象类型
308  * @return
309  */
310  @NonNull
311  public Integer getToType() {
312  return toType;
313  }
314 
315  /**
316  * 是否需要推送,默认true
317  * @return
318  */
319  public boolean isPushEnable() {
320  return pushEnable;
321  }
322 
323  /**
324  * 设置是否需要推送
325  * @param pushEnable
326  */
327  public void setPushEnable(boolean pushEnable) {
328  this.pushEnable = pushEnable;
329  }
330 
331  /**
332  * 是否需要消息计数,默认true
333  * @return
334  */
335  public boolean isNeedBadge() {
336  return needBadge;
337  }
338 
339  /**
340  * 设置是否需要消息计数
341  * @param needBadge
342  */
343  public void setNeedBadge(boolean needBadge) {
344  this.needBadge = needBadge;
345  }
346 
347  /**
348  * 是否需要推送昵称,默认true
349  * @return
350  */
351  public boolean isNeedPushNick() {
352  return needPushNick;
353  }
354 
355  /**
356  * 设置是否需要推送昵称
357  * @param needPushNick
358  */
359  public void setNeedPushNick(boolean needPushNick) {
360  this.needPushNick = needPushNick;
361  }
362 
363  /**
364  * 是否需要抄送,默认true
365  * @return
366  */
367  public boolean isRouteEnable() {
368  return isRouteEnable;
369  }
370 
371  /**
372  * 设置是否需要抄送
373  * @param routeEnable
374  */
375  public void setRouteEnable(boolean routeEnable) {
376  isRouteEnable = routeEnable;
377  }
378 
379  /**
380  * 获取环境变量
381  * 用户可以根据不同的env配置不同的抄送和回调地址
382  *
383  * @return 环境变量
384  */
385  public String getEnv() {
386  return env;
387  }
388 
389  /**
390  * 设置环境变量
391  * 用户可以根据不同的env配置不同的抄送和回调地址
392  *
393  * @param env 环境变量
394  */
395  public void setEnv(String env) {
396  this.env = env;
397  }
398 
399  /**
400  * 获取系统通知类型,用户发送的系统通知一定是 QChatSystemMsgType.CUSTOM
401  * @return
402  */
405  }
406 
407  /**
408  * 获取系统通知uuid
409  * @return
410  */
411  @NonNull
412  public String getUuid() {
413  return uuid;
414  }
415 
416  /**
417  * 转换成QChatSystemNotification
418  * @return
419  */
421  return QChatSystemNotificationImpl.from(this);
422  }
423 }
QChatSendSystemNotificationParam(long serverId, List< String > toAccids)
通知给服务器成员
QChatSystemNotificationType getType()
获取系统通知类型,用户发送的系统通知一定是 QChatSystemMsgType.CUSTOM
QChatSendSystemNotificationParam(long serverId, long channelId, List< String > toAccids)
通知给频道成员
CHANNEL_ACCIDS
频道成员,serverId/channelId/toAccids必填
QChatSystemNotification toSystemNotification()
转换成QChatSystemNotification
void setNeedPushNick(boolean needPushNick)
设置是否需要推送昵称
String getEnv()
获取环境变量 用户可以根据不同的env配置不同的抄送和回调地址
void setStatus(Integer status)
如果设置状态,状态只能设置成自定义的状态(status>= 10000),否则提示414参数错误
void setExtension(Map< String, Object > extension)
设置扩展字段
void setPushPayload(Map< String, Object > pushPayload)
设置推送payload
void setEnv(String env)
设置环境变量 用户可以根据不同的env配置不同的抄送和回调地址