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