# 群组
## 群组相关功能
创建群组
```
/**
* 创建群组
* @param groupName 群名称
* @param members 群成员(eg:[{"user_id":123, "name":张三},{"user_id":123, "name":张三}])
* @param icon 群图标url
* @param callBack
*/
createGroup(String groupName, String members, QDResultCallBack callBack)
createGroup(String groupName, String members, String icon, QDResultCallBack callBack)
```
解散群组(群主删除群组)
```
/**
* 退出群组
* @param groupId 群组id
* @param callBack
*/
exitGroup(String groupId, QDResultCallBack callBack)
```
退出群组(群成员主动退群)
```
/**
* 退出群组
* @param groupId 群组id
* @param callBack
*/
exitGroup(String groupId, QDResultCallBack callBack)
```
获取群信息(获取群成员列表)
```
/**
* 获取群组信息
* @param groupId 群组id
* @param callBack
*/
getGroupInfo(String groupId, QDResultCallBack callBack)
```
群组加人
```
/**
* 群组加人
* @param groupId 群组id
* @param memberList 群成员列表
* @param callBack
*/
addGroupMember(String groupId, List<QDGroupMember> memberList, QDResultCallBack callBack)
```
群组踢人
```
/**
* 群组踢人
* @param groupId 群组id
* @param ids 被踢的成员id(id1,id2,id3)
* @param callBack
*/
removeGroupMember(String groupId, String ids, QDResultCallBack callBack)
```
更新群组信息
```
/**
* 更新群组信息(群名称name和群描述intro)
* @param groupId 群组id
* @param map map对象key值看上方
* @param callBack
*/
updateGroupInfo(String groupId, Map<String, String> map, QDResultCallBack callBack)
```
更新群昵称
```
/**
* 更新群昵称(修改登陆者在群组的昵称)
* @param groupId 群组id
* @param nickName 修改后的昵称
* @param callBack
*/
updateNickName(String groupId, String nickName, QDResultCallBack callBack)
```
设置或取消管理员
```
/**
* 设置或取消管理员
* @param groupId 群组id
* @param userId 群成员id
* @param role 0:取消管理员,1:设置管理员
* @param callBack
*/
public void setManager(String groupId, String userId, int role, QDResultCallBack callBack)
```
群主转让
```
/**
* 群主转让
* @param groupId 群组id
* @param userId 被转让的成员id
* @param callBack
*/
changeOwner(String groupId, String userId, QDResultCallBack callBack)
```
屏蔽/取消新消息通知
```
/**
* 屏蔽/取消新消息通知
* @param groupId 群组id
* @param notifyType 1:取消;2屏蔽
* @param callBack
*/
setNotifyType(String groupId, int notifyType, QDResultCallBack callBack)
```
发布公告
```
/**
* 发布公告
* @param groupId 群组id
* @param notice 公告内容
* @param callBack
*/
issueNotice(String groupId, String notice, QDResultCallBack callBack)
```
获取群文件
```
/**
* 获取群组文件
* @param groupId 群组id
* @param callBack
*/
getGroupFiles(String groupId, QDResultCallBack callBack)
```
删除群文件
```
/**
* 删除群文件
* @param groupId 群组id
* @param fileId 被删的文件id
* @param callBack
*/
deleteGroupFile(String groupId, String fileId, QDResultCallBack callBack)
```
上传群文件
```
/**
* 上传群共享文件
* @param file 需要上传的文件
* @param groupId 群组id
* @param callBack
*/
uploadGroupFile(File file, String groupId, QDFileCallBack callBack)
```
## 群组相关对象
群组对象 QDGroup
```
//群组类型
TYPE_PERGROUP //个人群组
TYPE_ADMGROUP //固定群组
//屏蔽或取消新消息提醒
NOTIFY_ON //关闭
NOTIFY_OFF //打开
String id; //群组id
String name; //群名称
String desc; //群描述
int limit; //最大人数
int count; //当前人数
String icon; //头像
String nameSP; //群名称简拼
String nameAP; //群名称全拼
int type; //群类型(0:个人群 1:固定群 2:临时群)
String ownerId; //群主id
String ownerName; //群主名称
String tag; //群标签
String createDate; //创建时间
int isPublic; //是否公开
String notice; //群公告
int notifyType; //是否屏蔽新消息提醒
```
群成员对象 QDGroupMember
```
//群角色
ROLE_OWNER //群主
ROLE_MANAGER //管理员
ROLE_NORMAL//普通成员
String uid; //成员id
String name; //成员名称
String icon; //成员头像
String groupId; //群组id
String groupName; //群组名称
int role; //角色(0:普通成员,1:管理员,2:群主)
String nickName; //群昵称
String extData; //扩展字段
```
## 群组相关数据库操作
```
/**
* 插入一组数据
* @param groupList
*/
QDGroupHelper.insertGroupList(List<QDGroup> groupList)
/**
* 插入一个数据
* @param group
*/
QDGroupHelper.insertGroup(QDGroup group)
/**
* 根据群组id获取群信息
* @param id 群组id
* @return QDGroup
*/
QDGroupHelper.getGroupById(String id)
/**
* 删除群组表
*/
QDGroupHelper.deleteGroupTable()
/**
* 根据群组id删除群组
* @param id 群组id
*/
QDGroupHelper.deleteGroupById(String id)
/**
* 获取群组数量
* @return int
*/
QDGroupHelper.getGroupCount()
/**
* 更新群组信息
* @param group
*/
QDGroupHelper.updateGroup(QDGroup group)
/**
* 获取所有群组
* @return List<QDGroup>
*/
QDGroupHelper.getAllGroups()
/**
* 获取自己创建的群
* @return List<QDGroup>
*/
QDGroupHelper.getMineGroups()
/**
* 获取加入的群
* @return List<QDGroup>
*/
QDGroupHelper.getJoinedGroups()
/**
* 搜索群组
* @param searchText 搜索字符串
* @return List<QDGroup>
*/
QDGroupHelper.searchGroup(String searchText)
/**
* 获取所有群组id列表
* @return List<String>
*/
QDGroupHelper.getAllGroupId()
```
```
/**
* 删除所有群组人员信息
*/
QDGroupMemberHelper.deleteTable()
/**
* 插入群成员列表
* @param memberList
*/
QDGroupMemberHelper.insertGroupMembers(List<QDGroupMember> memberList)
/**
* 根据群组id和用户id获取成员信息
* @param groupId 群组id
* @param userId 成员id
*/
QDGroupMemberHelper.getMemberInfoByGroupIdAndUserId(String groupId, String userId)
/**
* 更新成员信息
* @param member 群成员对象
*/
QDGroupMemberHelper.updateMemberInfo(QDGroupMember member)
/**
* 更新群昵称
* @param groupId 群组id
* @param userId 群成员id
* @param nickName 昵称
*/
QDGroupMemberHelper.updateNickName(String groupId, String userId, String nickName)
/**
* 根据群组id获取某个群组的成员列表
* @param groupId 群组id
* @return List<QDGroupMember>
*/
QDGroupMemberHelper.getMembersByGroupId(String groupId)
/**
* 删除某个群的群成员
* @param groupId 群组id
*/
QDGroupMemberHelper.deleteMembersByGroupId(String groupId)
/**
* 搜索群成员
* @param groupId 群组 id
* @param searchText 搜索字符串
* @return List<QDGroupMember>
*/
QDGroupMemberHelper.searchMember(String groupId, String searchText)
```