群组
<h2>相关接口</h2>
<pre><code class="language-java"> /**
* 创建群组
* @param map 具体可以参考http接口
* @param callBack
*/
QDClient.getInstance().getGroupManager().createGroup(Map<String, String> map, QDResultCallBack<QDGroup> callBack)
/**
* 获取群组信息
* @param groupId 群组id
* @param callBack
*/
QDClient.getInstance().getGroupManager().getGroupInfo(final String groupId, QDResultCallBack callBack)
/**
* 更新群组名称
* @param groupId
* @param name 新的名称
*/
QDClient.getInstance().getGroupManager().updateGroupName(final String groupId, String name, QDResultCallBack<QDGroup> callBack)
/**
* 更新群描述
* @param groupId
* @param desc 新的描述
* @param callBack
*/
QDClient.getInstance().getGroupManager().updateGroupDesc(String groupId, String desc, QDResultCallBack<QDGroup> callBack)
/**
* 设置群组是否公开
* @param groupId
* @param isPublic 是否公开
* @param callBack
*/
QDClient.getInstance().getGroupManager().setGroupIsPublic(String groupId, int isPublic, QDResultCallBack<QDGroup> callBack)
/**
* 设置群组是否申请入群
* @param groupId
* @param isPublic 是否需要申请才能入群
* @param callBack
*/
QDClient.getInstance().getGroupManager().setGroupIsRequest(String groupId, int isPublic, QDResultCallBack<QDGroup> callBack)
/**
* 更新群禁言
* @param groupId
* @param mute 是否禁言
* @param callBack
*/
QDClient.getInstance().getGroupManager().setGroupIsMute(String groupId, int mute, final QDResultCallBack<QDGroup> callBack)
/**
* 修改群昵称
* @param groupId
* @param nickName 新的昵称
* @param callBack
*/
QDClient.getInstance().getGroupManager().updateGroupNickName(final String groupId, final String nickName, QDResultCallBack<QDGroup> callBack)
/**
* 更新群组信息(包含前面几个接口的信息)
* @param groupId
* @param map 参考http接口
* @param callBack
*/
QDClient.getInstance().getGroupManager().updateGroupInfo(String groupId, Map<String, String> map, QDResultCallBack<QDGroup> callBack)
/**
* 修改群成员是否禁言
* @param groupId
* @param userId 成员id
* @param isMute 是否禁言
* @param callBack
*/
QDClient.getInstance().getGroupManager().updateMemberMute(String groupId, String userId, int isMute, QDResultCallBack callBack)
/**
* 修改群成员信息
* @param groupId
* @param userId 成员id
* @param map
* @param callBack
*/
QDClient.getInstance().getGroupManager().updateMemberInfo(String groupId, String account, Map<String, String> map, QDResultCallBack callBack)
/**
* 添加群成员
* @param groupId
* @param member 人员id列表
* @param callBack
*/
QDClient.getInstance().getGroupManager().addMember(String groupId, String member, QDResultCallBack callBack)
/**
* 移除群成员
* @param groupId
* @param member 人员id列表
* @param callBack
*/
QDClient.getInstance().getGroupManager().removeMember(String groupId, String member, QDResultCallBack callBack)
/**
* 设置/取消管理员
* @param groupId
* @param role (QDGroupMember.ROLE_MANAGER 设置管理员, QDGroupMember.ROLE_MEMBER 取消管理员)
* @param manager 人员id列表
* @param callBack
*/
QDClient.getInstance().getGroupManager().changeManager(String groupId, int role, String manager, QDResultCallBack callBack)
/**
* 转让群组
* @param groupId
* @param ownerAccount 新的群主id
* @param callBack
*/
QDClient.getInstance().getGroupManager().setOwner(String groupId, String ownerAccount, QDResultCallBack callBack)
/**
* 主动退出群组
* @param groupId
* @param callBack
*/
QDClient.getInstance().getGroupManager().exitGroup(String groupId, QDResultCallBack callBack)
/**
* 解散群组
* @param groupId
* @param callBack
*/
QDClient.getInstance().getGroupManager().deleteGroup(String groupId, QDResultCallBack callBack)
/**
* 搜索公开群
* @param searchTxt
* @param callBack
*/
QDClient.getInstance().getGroupManager().searchGroup(String searchTxt, QDResultCallBack<List<QDGroup> > callBack)
/**
* 申请加入群组
* @param groupId
* @param reason 申请理由
* @param callBack
*/
QDClient.getInstance().getGroupManager().applyJoinGroup(String groupId, String reason, QDResultCallBack callBack)
/**
* 处理群组申请
* @param groupId
* @param status 同意或拒绝( QDApply.STATUS_AGREE 同意, QDApply.STATUS_REFUSE 拒绝)
* @param reason 拒绝理由 同意填""
* @param callBack
*/
QDClient.getInstance().getGroupManager().dealInvite(String account, String groupId, int status, String reason, QDResultCallBack callBack)
/**
* 获取禁言列表
* @param groupId
* @param callBack
*/
QDClient.getInstance().getGroupManager().getMute(String groupId, QDResultCallBack<List<QDGroupMember>> callBack)
/**
* 获取公告列表
* @param groupId
* @param callBack
*/
QDClient.getInstance().getGroupManager().getNoticeList(String groupId, QDResultCallBack<List<QDGroupNotice>> callBack)
/**
* 新增公告
* @param groupId
* @param content 公告内容
* @param callBack
*/
QDClient.getInstance().getGroupManager().addNotice(String groupId, String content, QDResultCallBack<QDGroupNotice> callBack)
/**
* 删除群公告
* @param groupId
* @param noticeId 公告id
* @param callBack
*/
QDClient.getInstance().getGroupManager().deleteNotice(String groupId, String noticeId, QDResultCallBack callBack)
/**
* 获取群共享文件
* @param groupId
* @param callBack
*/
QDClient.getInstance().getGroupManager().getGroupFile(String groupId, QDResultCallBack<List<QDFileModel>> callBack)
/**
* 删除群共享文件
* @param groupId
* @param fileId
* @param callBack
*/
QDClient.getInstance().getGroupManager().deleteGroupFile(String groupId, String fileId, QDResultCallBack callBack)
/**
* 获取事件群
* @param param
* @param callBack
*/
QDClient.getInstance().getGroupManager().getTargetGroup(String param, final QDResultCallBack callBack)</code></pre>
<h2>监听</h2>
<p>不是自己操作群组会收到群组信息变更的回调</p>
<pre><code class="language-java">QDGroupCallBack callBack = new QDGroupCallBack() {
@Override
public void memberRemoved(String groupId, List<String> memberAccountList) {
//移除群成员
}
@Override
public void memberJoined(String groupId, List<QDGroupMember> memberList) {
//加入群成员
}
@Override
public void managerChange(String groupId, String memberAccount, int role) {
//管理员变更
}
@Override
public void ownerChange(String groupId, String newOwnerId) {
//群主变更
}
@Override
public void muteChange(String groupId, int mute) {
//群禁言状态变更
}
@Override
public void memberMuteChange(String groupId, List<String> accountList, int mute) {
//群成员禁言状态变更
}
@Override
public void updateNickName(String groupId, String account, String nickName) {
//群成员昵称变更
}
@Override
public void updateGroupInfo(String groupId, QDGroup group) {
//群信息变更
}
}</code></pre>
<h2>QDGroup 类</h2>
<pre><code class="language-java">/**
* 群id
*/
String id
/**
* 名称
*/
String name
/**
* 描述
*/
String description
/**
* 头像
*/
String icon
/**
* 群名称简拼
*/
String nameSp
/**
* 数量显示
*/
int userLimit
/**
* 成员数量
*/
int userCount
/**
* 是否公开
*/
int isPublic
/**
* 是否需要申请
*/
int isRequest
/**
* 群组类型
*/
int type
/**
* 是否禁言
*/
int isMute
/**
* 群主id
*/
String owner
/**
* 事件id
*/
String targetId
/**
* 事件类型
*/
int targetType
/**
* 事件信息
*/
String targetInfo
</code></pre>
<h2>群组相关数据库操作</h2>
<pre><code class="language-java"> /**
* 插入群组信息
* @param group
*/
QDGroupDao.getInstance().insertGroup(QDGroup group)
/**
* 插入一组群组信息
* @param groupList
*/
QDGroupDao.getInstance().insertGroupList(List<QDGroup> groupList)
/**
* 根据群组id获取群组信息
* @param groupId
* @return
*/
QDGroup group = QDGroupDao.getInstance().getGroupById(String groupId)
/**
* 根据事件id和类型获取群组
* @param targetId
* @param targetType
* @return
*/
QDGroup group = QDGroupDao.getInstance().getGroupByTargetIdAndType(String targetId, int targetType)
**
* 获取所有的群组id
* @return
*/
List<String> IdList= QDGroupDao.getInstance().getGroupIdList()
/**
* 获取自己创建的群组列表
* @return
*/
List<QDGroup> groupList = QDGroupDao.getInstance().getSelfGroupList()
/**
* 获取自己加入的群组列表
* @return
*/
List<QDGroup> groupList = QDGroupDao.getInstance().getJoinedGroupList()
/**
* 删除多个群组
* @param ids
*/
QDGroupDao.getInstance().deleteGroup(String[] ids)
/**
* 删除群组
* @param id
*/
QDGroupDao.getInstance().deleteGroup(String id)
/**
* 搜索群组
* @param searchText
*/
QDGroupDao.getInstance().searchGroup(String searchText)
/**
* 更新群组信息
* @param group
*/
QDGroupDao.getInstance().updateGroup(QDGroup group)
/**
* 更新群主
* @param groupid
* @param ownerId
*/
QDGroupDao.getInstance().updateGroupOwner(String groupId, String ownerId)</code></pre>
<h2>QDGroupMember 类</h2>
<pre><code class="language-java">ROLE_MEMBER 普通成员
ROLE_MANAGER 管理员
ROLE_OWNER 群主
/**
* 成员账号
*/
account
/**
* 名称简拼
*/
nameSp
/**
* 名称
*/
name;
/**
* 头像
*/
icon
/**
* 群组Id
*/
groupId
/**
* 角色
*/
role
/**
* 昵称
*/
nickName
/**
* 禁言状态
*/
isMute</code></pre>
<h2>群成员相关数据库操作</h2>
<pre><code class="language-java">/**
* 插入成员信息
* @param member
*/
QDGroupMemberDao.getInstance().insertMember(QDGroupMember member)
/**
* 插入一组成员信息
* @param member
*/
QDGroupMemberDao.getInstance().insertMemberList(List<QDGroupMember> memberList)
/**
* 根据群组id和成员账号获取成员信息
* @param groupId
* @param account 成员账号
*/
QDGroupMember member = QDGroupMemberDao.getInstance().getMemberByGroupIdAndAccount(String groupId, String account)
/**
* 根据群组id获取群成员列表
* @param groupId
*/
List<QDGroupMember> memberList = QDGroupMemberDao.getInstance().getMembersByGroupId(String groupId)
/**
* 根据群组id获取群管理员列表
* @param groupId
*/
List<QDGroupMember> memberList = QDGroupMemberDao.getInstance().getManagerMembersByGroupId(String groupId)
/**
* 根据群id删除所有成员
* @param groupId
*/
QDGroupMemberDao.getInstance().deleteMembersByGroupId(String groupId) {
QDDbHelper.getInstance().deleteMembersByGroupId(groupId);
}
/**
* 删除群成员
* @param groupId
* @param memberAccount
*/
QDGroupMemberDao.getInstance().deleteGroupMember(String groupId, String memberAccount)
/**
* 更新群成员禁言
* @param groupId
* @param account
* @param mute
*/
QDGroupMemberDao.getInstance().updateMemberMute(String groupId, String account, int mute)
/**
* 更新群成员昵称
* @param groupId
* @param account
* @param nickname
* @param nameSp
*/
QDGroupMemberDao.getInstance().updateMemberNickname(String groupId, String account, String nickname, String nameSp)
/**
* 搜索群成员
* @param groupId
* @param searchText
*/
List<QDGroupMember> memberList = QDGroupMemberDao.getInstance().searchMemberWithGroupId(String groupId, String searchText)</code></pre>