群组

相关接口

 /**
     * 创建群组
     * @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)

监听

不是自己操作群组会收到群组信息变更的回调

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) {
            //群信息变更
        }
    }

QDGroup 类

/**
* 群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

群组相关数据库操作

 /**
     * 插入群组信息
     * @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)

QDGroupMember 类

ROLE_MEMBER 普通成员
ROLE_MANAGER 管理员
ROLE_OWNER 群主
/**
* 成员账号
*/
account
/**
* 名称简拼
*/
nameSp
/**
* 名称
*/
name;
/**
* 头像
*/
icon
/**
* 群组Id
*/
groupId
/**
* 角色
*/
role
/**
* 昵称
*/
nickName
/**
* 禁言状态
*/
isMute

群成员相关数据库操作

/**
* 插入成员信息
* @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)