Skip to content

Commit

Permalink
feat: add new group api
Browse files Browse the repository at this point in the history
* 设置/取消直播群管理员
* 获取直播群管理员列表
* 查询用户是否在直播群内
  • Loading branch information
yanglbme committed Jan 9, 2024
1 parent 36a7e94 commit 37ec483
Show file tree
Hide file tree
Showing 9 changed files with 702 additions and 5 deletions.
156 changes: 154 additions & 2 deletions src/main/java/io/github/doocs/im/core/Group.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,106 @@
package io.github.doocs.im.core;

import io.github.doocs.im.ImClient;
import io.github.doocs.im.model.request.*;
import io.github.doocs.im.model.response.*;
import io.github.doocs.im.model.request.AddGroupMemberRequest;
import io.github.doocs.im.model.request.BanGroupMemberRequest;
import io.github.doocs.im.model.request.ChangeGroupOwnerRequest;
import io.github.doocs.im.model.request.CheckMembersRequest;
import io.github.doocs.im.model.request.ClearGroupAttrRequest;
import io.github.doocs.im.model.request.CreateGroupRequest;
import io.github.doocs.im.model.request.CreateGroupTopicRequest;
import io.github.doocs.im.model.request.DeleteGroupCounterRequest;
import io.github.doocs.im.model.request.DeleteGroupMemberRequest;
import io.github.doocs.im.model.request.DeleteGroupMsgBySenderRequest;
import io.github.doocs.im.model.request.DestroyGroupRequest;
import io.github.doocs.im.model.request.DestroyGroupTopicRequest;
import io.github.doocs.im.model.request.ForbidSendMsgRequest;
import io.github.doocs.im.model.request.GetAdminListRequest;
import io.github.doocs.im.model.request.GetAppIdGroupListRequest;
import io.github.doocs.im.model.request.GetGroupAttrRequest;
import io.github.doocs.im.model.request.GetGroupBanMemberRequest;
import io.github.doocs.im.model.request.GetGroupCounterRequest;
import io.github.doocs.im.model.request.GetGroupInfoRequest;
import io.github.doocs.im.model.request.GetGroupMemberInfoRequest;
import io.github.doocs.im.model.request.GetGroupMsgReceiptDetailRequest;
import io.github.doocs.im.model.request.GetGroupMsgReceiptRequest;
import io.github.doocs.im.model.request.GetGroupMutedAccountRequest;
import io.github.doocs.im.model.request.GetGroupTopicRequest;
import io.github.doocs.im.model.request.GetJoinedGroupListRequest;
import io.github.doocs.im.model.request.GetMembersRequest;
import io.github.doocs.im.model.request.GetOnlineMemberNumRequest;
import io.github.doocs.im.model.request.GetRoleInGroupRequest;
import io.github.doocs.im.model.request.GroupGetKeyValuesRequest;
import io.github.doocs.im.model.request.GroupMsgGetSimpleRequest;
import io.github.doocs.im.model.request.GroupMsgRecallRequest;
import io.github.doocs.im.model.request.GroupSetKeyValuesRequest;
import io.github.doocs.im.model.request.ImportGroupMemberRequest;
import io.github.doocs.im.model.request.ImportGroupMsgRequest;
import io.github.doocs.im.model.request.ImportGroupRequest;
import io.github.doocs.im.model.request.ImportGroupTopicRequest;
import io.github.doocs.im.model.request.ModifyAdminRequest;
import io.github.doocs.im.model.request.ModifyGroupAttrRequest;
import io.github.doocs.im.model.request.ModifyGroupBaseInfoRequest;
import io.github.doocs.im.model.request.ModifyGroupMemberInfoRequest;
import io.github.doocs.im.model.request.ModifyGroupMsgRequest;
import io.github.doocs.im.model.request.ModifyGroupTopicRequest;
import io.github.doocs.im.model.request.ModifyGroupUserInfoRequest;
import io.github.doocs.im.model.request.SendBroadcastMsgRequest;
import io.github.doocs.im.model.request.SendGroupMsgRequest;
import io.github.doocs.im.model.request.SendGroupSystemNotificationRequest;
import io.github.doocs.im.model.request.SetGroupAttrRequest;
import io.github.doocs.im.model.request.SetUnreadMsgNumRequest;
import io.github.doocs.im.model.request.UnbanGroupMemberRequest;
import io.github.doocs.im.model.request.UpdateGroupCounterRequest;
import io.github.doocs.im.model.response.AddGroupMemberResult;
import io.github.doocs.im.model.response.BanGroupMemberResult;
import io.github.doocs.im.model.response.ChangeGroupOwnerResult;
import io.github.doocs.im.model.response.CheckMembersResult;
import io.github.doocs.im.model.response.ClearGroupAttrResult;
import io.github.doocs.im.model.response.CreateGroupResult;
import io.github.doocs.im.model.response.CreateGroupTopicResult;
import io.github.doocs.im.model.response.DeleteGroupCounterResult;
import io.github.doocs.im.model.response.DeleteGroupMemberResult;
import io.github.doocs.im.model.response.DeleteGroupMsgBySenderResult;
import io.github.doocs.im.model.response.DestroyGroupResult;
import io.github.doocs.im.model.response.DestroyGroupTopicResult;
import io.github.doocs.im.model.response.ForbidSendMsgResult;
import io.github.doocs.im.model.response.GetAdminListResult;
import io.github.doocs.im.model.response.GetAppIdGroupListResult;
import io.github.doocs.im.model.response.GetGroupAttrResult;
import io.github.doocs.im.model.response.GetGroupBanMemberResult;
import io.github.doocs.im.model.response.GetGroupCounterResult;
import io.github.doocs.im.model.response.GetGroupInfoResult;
import io.github.doocs.im.model.response.GetGroupMemberInfoResult;
import io.github.doocs.im.model.response.GetGroupMsgReceiptDetailResult;
import io.github.doocs.im.model.response.GetGroupMsgReceiptResult;
import io.github.doocs.im.model.response.GetGroupMutedAccountResult;
import io.github.doocs.im.model.response.GetGroupTopicResult;
import io.github.doocs.im.model.response.GetJoinGroupListResult;
import io.github.doocs.im.model.response.GetMembersResult;
import io.github.doocs.im.model.response.GetOnlineMemberNumResult;
import io.github.doocs.im.model.response.GetRoleInGroupResult;
import io.github.doocs.im.model.response.GroupGetKeyValuesResult;
import io.github.doocs.im.model.response.GroupMsgGetSimpleResult;
import io.github.doocs.im.model.response.GroupMsgRecallResult;
import io.github.doocs.im.model.response.GroupSetKeyValuesResult;
import io.github.doocs.im.model.response.ImportGroupMemberResult;
import io.github.doocs.im.model.response.ImportGroupMsgResult;
import io.github.doocs.im.model.response.ImportGroupResult;
import io.github.doocs.im.model.response.ImportGroupTopicResult;
import io.github.doocs.im.model.response.ModifyAdminResult;
import io.github.doocs.im.model.response.ModifyGroupAttrResult;
import io.github.doocs.im.model.response.ModifyGroupBaseInfoResult;
import io.github.doocs.im.model.response.ModifyGroupMemberInfoResult;
import io.github.doocs.im.model.response.ModifyGroupMsgResult;
import io.github.doocs.im.model.response.ModifyGroupTopicResult;
import io.github.doocs.im.model.response.ModifyGroupUserInfoResult;
import io.github.doocs.im.model.response.SendBroadcastMsgResult;
import io.github.doocs.im.model.response.SendGroupMsgResult;
import io.github.doocs.im.model.response.SendGroupSystemNotificationResult;
import io.github.doocs.im.model.response.SetGroupAttrResult;
import io.github.doocs.im.model.response.SetUnreadMsgNumResult;
import io.github.doocs.im.model.response.UnbanGroupMemberResult;
import io.github.doocs.im.model.response.UpdateGroupCounterResult;
import io.github.doocs.im.util.HttpUtil;

import java.io.IOException;
Expand Down Expand Up @@ -74,6 +172,9 @@ public class Group {
public static final String GET_GROUP_COUNTER_COMMAND = "get_group_counter";
public static final String UPDATE_GROUP_COUNTER_COMMAND = "update_group_counter";
public static final String DELETE_GROUP_COUNTER_COMMAND = "delete_group_counter";
public static final String MODIFY_ADMIN_COMMAND = "modify_admin";
public static final String GET_ADMIN_LIST_COMMAND = "get_admin_list";
public static final String CHECK_MEMBERS_COMMAND = "check_members";


private final ImClient imClient;
Expand Down Expand Up @@ -881,4 +982,55 @@ public DeleteGroupCounterResult deleteGroupCounter(DeleteGroupCounterRequest del
String url = imClient.getUrl(SERVICE_NAME, DELETE_GROUP_COUNTER_COMMAND, random);
return HttpUtil.post(url, deleteGroupCounterRequest, DeleteGroupCounterResult.class, imClient.getConfig());
}

/**
* 设置/取消直播群管理员
*
* @param modifyAdminRequest 请求参数
* @return 结果
* @throws IOException 异常
*/
public ModifyAdminResult modifyAdmin(ModifyAdminRequest modifyAdminRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME_CHATROOM, MODIFY_ADMIN_COMMAND);
return HttpUtil.post(url, modifyAdminRequest, ModifyAdminResult.class, imClient.getConfig());
}

public ModifyAdminResult modifyAdmin(ModifyAdminRequest modifyAdminRequest, long random) throws IOException {
String url = imClient.getUrl(SERVICE_NAME_CHATROOM, MODIFY_ADMIN_COMMAND, random);
return HttpUtil.post(url, modifyAdminRequest, ModifyAdminResult.class, imClient.getConfig());
}

/**
* 获取直播群管理员列表
*
* @param getAdminListRequest 请求参数
* @return 结果
* @throws IOException 异常
*/
public GetAdminListResult getAdminList(GetAdminListRequest getAdminListRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME_CHATROOM, GET_ADMIN_LIST_COMMAND);
return HttpUtil.post(url, getAdminListRequest, GetAdminListResult.class, imClient.getConfig());
}

public GetAdminListResult getAdminList(GetAdminListRequest getAdminListRequest, long random) throws IOException {
String url = imClient.getUrl(SERVICE_NAME_CHATROOM, GET_ADMIN_LIST_COMMAND, random);
return HttpUtil.post(url, getAdminListRequest, GetAdminListResult.class, imClient.getConfig());
}

/**
* 查询用户是否在直播群内
*
* @param checkMembersRequest 请求参数
* @return 结果
* @throws IOException 异常
*/
public CheckMembersResult checkMembers(CheckMembersRequest checkMembersRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME_CHATROOM, CHECK_MEMBERS_COMMAND);
return HttpUtil.post(url, checkMembersRequest, CheckMembersResult.class, imClient.getConfig());
}

public CheckMembersResult checkMembers(CheckMembersRequest checkMembersRequest, long random) throws IOException {
String url = imClient.getUrl(SERVICE_NAME_CHATROOM, CHECK_MEMBERS_COMMAND, random);
return HttpUtil.post(url, checkMembersRequest, CheckMembersResult.class, imClient.getConfig());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
package io.github.doocs.im.model.request;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.io.Serializable;
import java.util.List;

/**
* 查询用户是否在直播群内-请求参数
*
* @author bingo
* @since 2024/1/9 11:36
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
public class CheckMembersRequest extends GenericRequest implements Serializable {
private static final long serialVersionUID = 1773060365482346969L;

@JsonProperty("GroupId")
private String groupId;

@JsonProperty("Member_Account")
private List<String> memberAccount;

public CheckMembersRequest() {
}

public CheckMembersRequest(String groupId, List<String> memberAccount) {
this.groupId = groupId;
this.memberAccount = memberAccount;
}

private CheckMembersRequest(Builder builder) {
this.groupId = builder.groupId;
this.memberAccount = builder.memberAccount;
}

public static Builder builder() {
return new Builder();
}

public String getGroupId() {
return groupId;
}

public void setGroupId(String groupId) {
this.groupId = groupId;
}

public List<String> getMemberAccount() {
return memberAccount;
}

public void setMemberAccount(List<String> memberAccount) {
this.memberAccount = memberAccount;
}


public static final class Builder {
private String groupId;
private List<String> memberAccount;

private Builder() {
}

public CheckMembersRequest build() {
return new CheckMembersRequest(this);
}

public Builder groupId(String groupId) {
this.groupId = groupId;
return this;
}

public Builder memberAccount(List<String> memberAccount) {
this.memberAccount = memberAccount;
return this;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package io.github.doocs.im.model.request;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.io.Serializable;

/**
* 获取直播群管理员列表-请求参数
*
* @author bingo
* @since 2024/1/9 11:36
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
public class GetAdminListRequest extends GenericRequest implements Serializable {
private static final long serialVersionUID = -4674343475066620157L;

@JsonProperty("GroupId")
private String groupId;

public GetAdminListRequest() {
}

public GetAdminListRequest(String groupId) {
this.groupId = groupId;
}

private GetAdminListRequest(Builder builder) {
this.groupId = builder.groupId;
}

public static Builder builder() {
return new Builder();
}

public String getGroupId() {
return groupId;
}

public void setGroupId(String groupId) {
this.groupId = groupId;
}


public static final class Builder {
private String groupId;

private Builder() {
}

public GetAdminListRequest build() {
return new GetAdminListRequest(this);
}

public Builder groupId(String groupId) {
this.groupId = groupId;
return this;
}
}
}
Loading

0 comments on commit 37ec483

Please sign in to comment.