NIMSDK-AOS  9.19.0
TeamService.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.team;
2 
3 import com.netease.nimlib.apt.annotation.NIMService;
18 import java.io.Serializable;
19 import java.util.List;
20 import java.util.Map;
21 import java.util.Set;
22 
23 /**
24  * 群组操作相关接口<br>
25  * 群更新的通知监测见 {@link TeamServiceObserver}
26  */
27 @NIMService("群服务")
28 public interface TeamService {
29 
30  /**
31  * 创建一个群组
32  *
33  * @param fields 群组预设资料, key为数据字段,value对对应的值,该值类型必须和field中定义的fieldType一致。
34  * @param type 要创建的群组类型
35  * @param postscript 邀请入群的附言。如果是创建临时群,该参数无效
36  * @param members 邀请加入的成员帐号列表
37  * @return InvocationFuture 可以设置回调函数,如果成功,参数为创建的群组资料
38  */
39  InvocationFuture<CreateTeamResult> createTeam(Map<TeamFieldEnum, Serializable> fields, TeamTypeEnum type,
40  String postscript, List<String> members);
41 
42  /**
43  * 创建一个群组
44  *
45  * @param fields 群组预设资料, key为数据字段,value对对应的值,该值类型必须和field中定义的fieldType一致。
46  * @param type 要创建的群组类型
47  * @param postscript 邀请入群的附言。如果是创建临时群,该参数无效
48  * @param members 邀请加入的成员帐号列表
49  * @param antiSpamConfig 反垃圾相关配置参数
50  * @return InvocationFuture 可以设置回调函数,如果成功,参数为创建的群组资料
51  */
52  InvocationFuture<CreateTeamResult> createTeam(Map<TeamFieldEnum, Serializable> fields, TeamTypeEnum type,
53  String postscript, List<String> members, AntiSpamConfig antiSpamConfig);
54 
55  /**
56  * 添加成员
57  *
58  * @param teamId 群组ID
59  * @param accounts 待加入的群成员帐号列表
60  * @return InvocationFuture 可以设置回调函数,监听操作结果
61  */
62  InvocationFuture<List<String>> addMembers(String teamId, List<String> accounts);
63 
64 
65  /**
66  * 添加成员
67  *
68  * @param teamId 群组ID
69  * @param accounts 待加入的群成员帐号列表
70  * @param msg 邀请附言 ,不需要的话设置为空
71  * @param customInfo 自定义扩展字段,不需要的话设置为空 ,最长512字符
72  * @return InvocationFuture 可以设置回调函数,监听操作结果
73  */
74  InvocationFuture<List<String>> addMembersEx(String teamId, List<String> accounts, String msg, String customInfo);
75 
76  /**
77  * 移除成员,只有创建者有此权限
78  *
79  * @param teamId 群ID
80  * @param member 被踢出的成员帐号
81  * @return InvocationFuture 可以设置回调函数,监听操作结果
82  */
83  InvocationFuture<Void> removeMember(String teamId, String member);
84 
85  /**
86  * 批量移出群成员,只有创建者有此权限
87  *
88  * @param teamId 群ID
89  * @param members 被踢出的成员帐号列表
90  * @return InvocationFuture 可以设置回调函数,监听操作结果
91  */
92  InvocationFuture<Void> removeMembers(String teamId, List<String> members);
93 
94  /**
95  * 修改群名称
96  *
97  * @param teamId 群ID
98  * @param name 群的新名称
99  * @return InvocationFuture 可以设置回调函数,监听操作结果
100  * @deprecated use {@link #updateTeam(String, TeamFieldEnum, Serializable)} instead
101  */
102  InvocationFuture<Void> updateName(String teamId, String name);
103 
104  /**
105  * 更新群组资料
106  *
107  * @param teamId 群ID
108  * @param field 待更新的域
109  * @param value 待更新的域的新值
110  * 该值类型必须和field中定义的fieldType一致
111  * @return InvocationFuture 可以设置回调函数,监听操作结果
112  */
113  InvocationFuture<Void> updateTeam(String teamId, TeamFieldEnum field, Serializable value);
114 
115  /**
116  * 批量更新群组资料,可一次性更新多个字段的值。
117  *
118  * @param teamId 群ID
119  * @param fields 待更新的所有字段的新的资料,其中值类型必须和field中定义的fieldType一致
120  * @return InvocationFuture 可以设置回调函数,监听操作结果
121  */
122  InvocationFuture<Void> updateTeamFields(String teamId, Map<TeamFieldEnum, Serializable> fields);
123 
124  /**
125  * 批量更新群组资料,可一次性更新多个字段的值。
126  *
127  * @param teamId 群ID
128  * @param fields 待更新的所有字段的新的资料,其中值类型必须和field中定义的fieldType一致
129  * @param antiSpamConfig 反垃圾相关配置参数
130  * @return InvocationFuture 可以设置回调函数,监听操作结果
131  */
132  InvocationFuture<Void> updateTeamFields(String teamId, Map<TeamFieldEnum, Serializable> fields,AntiSpamConfig antiSpamConfig);
133 
134  /**
135  * 解散群,只有创建者有此权限
136  *
137  * @param teamId 群ID
138  * @return InvocationFuture 可以设置回调函数,监听操作结果
139  */
140  InvocationFuture<Void> dismissTeam(String teamId);
141 
142  /**
143  * 退出群
144  *
145  * @param teamId 群ID
146  * @return InvocationFuture 可以设置回调函数,监听操作结果
147  */
148  InvocationFuture<Void> quitTeam(String teamId);
149 
150  /**
151  * 查询群资料,如果本地没有群组资料,则去服务器查询。<br>
152  * 如果自己不在这个群中,该接口返回的可能是过期资料,如需最新的,请调用{@link #searchTeam(String)}接口
153  *
154  * @param teamId 群ID
155  * @return InvocationFuture 可以设置回调函数,如果成功,参数为群资料
156  */
157  InvocationFuture<Team> queryTeam(String teamId);
158 
159  /**
160  * 查询群资料(仅查询本地,不会去服务器请求)
161  * 如果自己不在这个群中,该接口返回的可能是过期资料,如需最新的,请调用{@link #searchTeam(String)}接口
162  *
163  * @param teamId 群ID
164  * @return 群资料
165  */
166  Team queryTeamBlock(String teamId);
167 
168  /**
169  * 获取自己加入的群的列表
170  *
171  * @return InvocationFuture 可以设置回调函数,如果成功,参数为自己加入的群的列表
172  */
173  InvocationFuture<List<Team>> queryTeamList();
174 
175  /**
176  * 获取自己加入的群的列表(同步版本)
177  *
178  * @return 自己加入的群的列表
179  */
180  public List<Team> queryTeamListBlock();
181 
182  /**
183  * 根据群id列表批量查询群信息
184  *
185  * @param tidList 群id列表
186  * @return 可以设置回调函数,如果成功,参数为查询的群信息列表
187  */
188  InvocationFuture<List<Team>> queryTeamListById(List<String> tidList);
189 
190  /**
191  * 根据群id列表批量查询群信息(同步版本)
192  *
193  * @param tidList 群id列表
194  * @return 查询的群信息列表
195  */
196  public List<Team> queryTeamListByIdBlock(List<String> tidList);
197 
198  /**
199  * 获取自己加入的指定类型群(讨论组/高级群)列表
200  *
201  * @param type 群类型
202  * @return 可以设置回调函数,如果成功,参数为加入的指定类型群列表
203  */
204  InvocationFuture<List<Team>> queryTeamListByType(TeamTypeEnum type);
205 
206  /**
207  * 获取自己加入的指定类型群(讨论组/高级群)列表(同步版本)
208  *
209  * @param type 群类型
210  * @return 加入的指定类型群列表
211  */
212  public List<Team> queryTeamListByTypeBlock(TeamTypeEnum type);
213 
214  /**
215  * 获取自己加入的群的数量
216  *
217  * @return 数量
218  */
219  public int queryTeamCountBlock();
220 
221  /**
222  * 获取自己加入的指定类型群的数量
223  *
224  * @param type 群类型
225  * @return 数量
226  */
227  public int queryTeamCountByTypeBlock(TeamTypeEnum type);
228 
229  /**
230  * 从服务器上查询群资料信息
231  *
232  * @param teamId 群ID列表
233  * @return 群信息
234  */
235  InvocationFuture<Team> searchTeam(String teamId);
236 
237  /**
238  * 从服务器上查询群资料信息
239  *
240  * @param teamIdList 群ID列表,如果大小超过10,取前10个
241  * @return
242  */
243  InvocationFuture<TeamInfoResult> searchTeam(List<Long> teamIdList);
244 
245  /**
246  * 用户申请加入群。
247  *
248  * @param tid 申请加入的群ID
249  * @param postscript 申请附言
250  * @return InvocationFuture 可以设置回调函数,如果成功,参数为群资料
251  */
252  InvocationFuture<Team> applyJoinTeam(String tid, String postscript);
253 
254  /**
255  * 通过用户的入群申请<br>
256  * 仅管理员和拥有者有此权限
257  *
258  * @param teamId 群ID
259  * @param account 申请入群的用户ID
260  * @return InvocationFuture 可以设置回调函数
261  */
262  InvocationFuture<Void> passApply(String teamId, String account);
263 
264  /**
265  * 拒绝用户的入群申请 <br>
266  * 仅管理员和拥有者有此权限
267  *
268  * @param teamId 群ID
269  * @param account 申请入群的用户ID
270  * @param reason 拒绝理由,选填
271  * @return InvocationFuture 可以设置回调函数
272  */
273  InvocationFuture<Void> rejectApply(String teamId, String account, String reason);
274 
275  /**
276  * 拥有者添加管理员 <br>
277  * 仅拥有者有此权限
278  *
279  * @param teamId 群ID
280  * @param accounts 待提升为管理员的用户帐号列表
281  * @return InvocationFuture 可以设置回调函数,如果成功,参数为新增的群管理员列表
282  */
283  InvocationFuture<List<TeamMember>> addManagers(String teamId, List<String> accounts);
284 
285  /**
286  * 拥有者撤销管理员权限 <br>
287  * 仅拥有者有此权限
288  *
289  * @param teamId 群ID
290  * @param managers 待撤销的管理员的帐号列表
291  * @return InvocationFuture 可以设置回调函数,如果成功,参数为被撤销的群成员列表(权限已被降为Normal)。
292  */
293  InvocationFuture<List<TeamMember>> removeManagers(String teamId, List<String> managers);
294 
295  /**
296  * 拥有者将群的拥有者权限转给另外一个人,转移后,另外一个人成为拥有者。<br>
297  * 原拥有者变成普通成员。若参数quit为true,原拥有者直接退出该群。
298  *
299  * @param tid 群ID
300  * @param account 新任拥有者的用户帐号
301  * @param quit 转移时是否要同时退出该群
302  * @return InvocationFuture 可以设置回调函数,如果成功,视参数quit值:<br>
303  * quit为false:参数仅包含原拥有者和当前拥有者的(即操作者和account),权限已被更新。<br>
304  * quit为true: 参数为空。
305  */
306  InvocationFuture<List<TeamMember>> transferTeam(String tid, String account, boolean quit);
307 
308  /**
309  * 接受别人的入群邀请
310  *
311  * @param teamId 群ID
312  * @param inviter 邀请我的用户帐号
313  * @return InvocationFuture 可以设置回调函数
314  */
315  InvocationFuture<Void> acceptInvite(String teamId, String inviter);
316 
317  /**
318  * 拒绝别人的入群邀请通知
319  *
320  * @param teamId 群ID
321  * @param inviter 邀请我的用户帐号
322  * @param reason 拒绝理由,选填
323  * @return InvocationFuture 可以设置回调函数
324  */
325  InvocationFuture<Void> declineInvite(String teamId, String inviter, String reason);
326 
327  /**
328  * 获取指定群的成员信息列表. <br>
329  * 该操作有可能只是从本地数据库读取缓存数据,也有可能会从服务器同步新的数据, 因此耗时可能会比较长。
330  *
331  * @param teamId 群ID
332  * @return InvocationFuture 可以设置回调函数,如果成功,参数为群的成员信息列表
333  */
334  InvocationFuture<List<TeamMember>> queryMemberList(String teamId);
335 
336  /**
337  * 查询群成员资料。如果本地群成员资料已过期会去服务器获取最新的。
338  *
339  * @param teamId 群ID
340  * @param account 群成员帐号
341  * @return InvocationFuture 可以设置回调函数,如果成功,参数为该群成员信息
342  */
343  InvocationFuture<TeamMember> queryTeamMember(String teamId, String account);
344 
345  /**
346  * 查询群成员资料。(同步版本)
347  *
348  * @param teamId 群ID
349  * @param account 群成员帐号
350  * @return 群成员信息
351  */
352  TeamMember queryTeamMemberBlock(String teamId, String account);
353 
354  /**
355  * 查询被禁言群成员列表
356  * 该操作,只返回调用{@link TeamService#muteTeamMember(String, String, boolean)} 禁言的用户。
357  *
358  * @param teamId 群ID
359  * @return 群成员信息列表
360  */
361  List<TeamMember> queryMutedTeamMembers(String teamId);
362 
363  /**
364  * 修改自己的群昵称
365  *
366  * @param teamId 所在群组ID
367  * @param nick 新的群昵称
368  * @return InvocationFuture 可以设置回调函数,监听操作结果
369  */
370  InvocationFuture<Void> updateMyTeamNick(String teamId, String nick);
371 
372  /**
373  * 群组管理员修改群内其他成员的群昵称。<br>
374  * 仅群管理员和拥有者有此权限
375  *
376  * @param teamId 所在群组ID
377  * @param account 要修改的群成员帐号
378  * @param nick 新的群昵称
379  * @return InvocationFuture 可以设置回调函数,监听操作结果
380  */
381  InvocationFuture<Void> updateMemberNick(String teamId, String account, String nick);
382 
383  /**
384  * 修改自己的群成员扩展字段(自定义属性)
385  *
386  * @param teamId 所在群组ID
387  * @param extension 新的扩展字段(自定义属性)
388  * @return InvocationFuture 可以设置回调函数,监听操作结果
389  */
390  InvocationFuture<Void> updateMyMemberExtension(String teamId, Map<String, Object> extension);
391 
392  /**
393  * 设置指定群消息通知类型,查看{@link com.netease.nimlib.sdk.team.constant.TeamMessageNotifyTypeEnum}
394  *
395  * @param teamId 群组ID
396  * @param notifyType 通知类型枚举
397  * @return InvocationFuture 可以设置回调函数,监听操作结果
398  */
399  InvocationFuture<Void> muteTeam(String teamId, TeamMessageNotifyTypeEnum notifyType);
400 
401  /**
402  * 禁言、解除禁言
403  *
404  * @param teamId 群组ID
405  * @param account 被禁言、被解除禁言的账号
406  * @param mute true表示禁言,false表示解除禁言
407  * @return InvocationFuture 可以设置回调函数,监听操作结果
408  */
409  InvocationFuture<Void> muteTeamMember(String teamId, String account, boolean mute);
410 
411  /**
412  * 对整个群禁言、解除禁言,对普通成员生效,只有群组、管理员有权限
413  *
414  * @param teamId 群组 ID
415  * @param mute true表示禁言,false表示解除禁言
416  * @return InvocationFuture 可以设置回调函数,监听操作结果
417  */
418  InvocationFuture<Void> muteAllTeamMember(String teamId, boolean mute);
419 
420  /**
421  * (群消息接收方)标记群组消息已读
422  *
423  * @param message 群组消息
424  * @return InvocationFuture 可设置回调函数,监听发送结果。
425  */
426  InvocationFuture<Void> sendTeamMessageReceipt(IMMessage message);
427 
428  /**
429  * (群消息发送方)批量刷新群组消息已读、未读的数量信息,没有异步回调
430  * 如果已读、未读数有变更,会通过 {@link com.netease.nimlib.sdk.msg.MsgServiceObserve#observeTeamMessageReceipt(Observer, boolean)}来批量通知,没有变更则不会通知
431  *
432  * @param messages 请求刷新的群组消息集合
433  */
434  void refreshTeamMessageReceipt(List<IMMessage> messages);
435 
436  /**
437  * (群消息发送方)查询单条群组消息已读、未读账号列表
438  *
439  * @param message 待查询的消息
440  * @return 该消息的已读、未读账号列表
441  */
442  InvocationFuture<TeamMsgAckInfo> fetchTeamMessageReceiptDetail(IMMessage message);
443 
444  /**
445  * (群消息发送方)查询单条群组消息在指定用户中的已读、未读账号列表
446  *
447  * @param message 待查询的消息
448  * @param accountSet 指定的用户的账号组成的{@link Set<String>}。
449  * 如果传空,则返回的列表也是空
450  * @return 该消息的已读、未读账号列表
451  */
452  InvocationFuture<TeamMsgAckInfo> fetchTeamMessageReceiptDetail(IMMessage message, Set<String> accountSet);
453 
454  /**
455  * 从本地数据库查询单条群组消息已读、未读账号列表(同步接口)
456  * 注意!!!:这里获取的数据通常比离线前的列表信息更陈旧
457  *
458  * @param message 待查询的消息
459  * @return 该消息的已读、未读账号列表
460  */
461  TeamMsgAckInfo queryTeamMessageReceiptDetailBlock(IMMessage message);
462 
463  /**
464  * 从本地数据库查询单条群组消息在指定用户中的已读、未读账号列表(同步接口)
465  * 注意!!!:这里获取的数据通常比离线前的列表信息更陈旧
466  *
467  * @param message 待查询的消息
468  * @param accountSet 指定的用户的账号组成的{@link Set<String>}。
469  * 如果传空,则返回的列表也是空
470  * @return 该消息的已读、未读账号列表
471  */
472  TeamMsgAckInfo queryTeamMessageReceiptDetailBlock(IMMessage message, Set<String> accountSet);
473 
474  /**
475  * 获取群成员入群邀请人(为空表示主动入群,没有邀请人)
476  *
477  * @param tid
478  * @param accids 查询用户accid列表,最多两百
479  * @return 返回用户的对应关系,key为accid value是inviteAccid
480  */
481  InvocationFuture<Map<String, String>> getMemberInvitor(String tid, List<String> accids);
482 
483  /**
484  * 搜索与关键字匹配的所有群
485  *
486  * @return 群集合
487  */
488  InvocationFuture<List<Team>> searchTeamsByKeyword(String keyword);
489 
490  /**
491  * 群组会话云端历史消息关键词查询
492  *
493  * @param tid 群组id
494  * @param fromTime 起始时间点单位毫秒
495  * @param endTime 结束时间点单位毫秒
496  * @param keyword 查询关键词
497  * @param limit 本次查询的消息条数上限(最多100条)
498  * @param reverse (可选参数,不传默认false),true是表示反向查询(按时间正序起查,正序排列),默认false表示按时间逆序起查,逆序排列
499  * @return
500  */
501  InvocationFuture<List<IMMessage>> searchTeamMsgByKeyword(long tid, long fromTime, long endTime, String keyword, int limit, boolean reverse);
502 
503  /**
504  * 通过群名称反查群组ID
505  *
506  * @param name 群组名称
507  * @return 群ID列表
508  */
509  InvocationFuture<List<String>> searchTeamIdByName(String name);
510 
511  /**
512  * 查询群成员列表
513  * @param teamId 群组ID
514  * @param option 查询选项
515  * @return
516  */
518 
519  /**
520  * 添加特别关注群成员列表
521  * @param teamId 群组ID
522  * @param accountIds 账号列表
523  * @return InvocationFuture 可以设置回调函数
524  */
525  InvocationFuture<Void> addTeamMembersFollow(String teamId,List<String> accountIds);
526 
527  /**
528  * 移除特别关注群成员列表
529  * @param teamId 群组ID
530  * @param accountIds 账号列表
531  * @return InvocationFuture 可以设置回调函数
532  */
533  InvocationFuture<Void> removeTeamMembersFollow(String teamId,List<String> accountIds);
534 }
创建群、修改群资料时的域定义
描述群成员资料的数据结构 对于讨论组,不能设置群昵称,也没有管理员,不用关心TeamMemberType ...
Definition: TeamMember.java:12
NIM消息实体数据结构。 第三方APP不要调用设置类接口,调用之后不会被持久化
Definition: IMMessage.java:10
群已读回执信息 此类有两种状态,一种是存储已读未读用户账号列表的状态,一种是存储已读未读人数的状态 第...
云信群组信息的数据结构。
Definition: Team.java:17
群组操作相关接口 群更新的通知监测见 TeamServiceObserver