Unverified Commit 43c66407 authored by 怡蘅's avatar 怡蘅 Committed by GitHub

feat: implement part of group api (#19)

parent f41f5d39
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
- [x] 获取群详细资料 - [x] 获取群详细资料
- [ ] 获取群成员详细资料 - [ ] 获取群成员详细资料
- [ ] 修改群基础资料 - [ ] 修改群基础资料
- [ ] 增加群成员 - [x] 增加群成员
- [ ] 删除群成员 - [ ] 删除群成员
- [ ] 修改群成员资料 - [ ] 修改群成员资料
- [ ] 解散群组 - [ ] 解散群组
...@@ -81,10 +81,10 @@ ...@@ -81,10 +81,10 @@
- [ ] 导入群基础资料 - [ ] 导入群基础资料
- [ ] 导入群消息 - [ ] 导入群消息
- [ ] 导入群成员 - [ ] 导入群成员
- [ ] 设置成员未读消息计数 - [x] 设置成员未读消息计数
- [ ] 撤回指定用户发送的消息 - [x] 撤回指定用户发送的消息
- [ ] 拉取群历史消息 - [x] 拉取群历史消息
- [ ] 获取直播群在线人数 - [x] 获取直播群在线人数
### 7. 全局禁言管理 ### 7. 全局禁言管理
......
package com.qcloud.im.core; package com.qcloud.im.core;
import com.qcloud.im.IMClient; import com.qcloud.im.IMClient;
import com.qcloud.im.model.request.CreateGroupRequest; import com.qcloud.im.model.request.*;
import com.qcloud.im.model.request.GetAppidGroupListRequest; import com.qcloud.im.model.response.*;
import com.qcloud.im.model.request.GetGroupInfoRequest;
import com.qcloud.im.model.response.CreateGroupResult;
import com.qcloud.im.model.response.GetAppidGroupListResult;
import com.qcloud.im.model.response.GetGroupInfoResult;
import com.qcloud.im.util.HttpUtil; import com.qcloud.im.util.HttpUtil;
import com.qcloud.im.util.JsonUtil; import com.qcloud.im.util.JsonUtil;
...@@ -50,7 +46,7 @@ public class Group { ...@@ -50,7 +46,7 @@ public class Group {
this.imClient = imClient; this.imClient = imClient;
} }
public GetAppidGroupListResult getAppidGroupList(GetAppidGroupListRequest getAppidGroupListRequest) throws IOException { public GetAppidGroupListResult getAppIdGroupList(GetAppidGroupListRequest getAppidGroupListRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, GET_APPID_GROUP_LIST_COMMAND); String url = imClient.getUrl(SERVICE_NAME, GET_APPID_GROUP_LIST_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(getAppidGroupListRequest), null); String result = HttpUtil.post(url, JsonUtil.obj2Str(getAppidGroupListRequest), null);
return JsonUtil.str2Obj(result, GetAppidGroupListResult.class); return JsonUtil.str2Obj(result, GetAppidGroupListResult.class);
...@@ -67,4 +63,34 @@ public class Group { ...@@ -67,4 +63,34 @@ public class Group {
String result = HttpUtil.post(url, JsonUtil.obj2Str(getGroupInfoRequest), null); String result = HttpUtil.post(url, JsonUtil.obj2Str(getGroupInfoRequest), null);
return JsonUtil.str2Obj(result, GetGroupInfoResult.class); return JsonUtil.str2Obj(result, GetGroupInfoResult.class);
} }
public AddGroupMemberResult addGroupMember(AddGroupMemberRequest addGroupMemberRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, ADD_GROUP_MEMBER_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(addGroupMemberRequest), null);
return JsonUtil.str2Obj(result, AddGroupMemberResult.class);
}
public SetUnreadMsgNumResult setUnreadMsgNum(SetUnreadMsgNumRequest setUnreadMsgNumRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, SET_UNREAD_MSG_NUM_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(setUnreadMsgNumRequest), null);
return JsonUtil.str2Obj(result, SetUnreadMsgNumResult.class);
}
public DeleteGroupMsgBySenderResult deleteGroupMsgBySender(DeleteGroupMsgBySenderRequest deleteGroupMsgBySenderRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, DELETE_GROUP_MSG_BY_SENDER_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(deleteGroupMsgBySenderRequest), null);
return JsonUtil.str2Obj(result, DeleteGroupMsgBySenderResult.class);
}
public GroupMsgGetSimpleResult groupMsgGetSimple(GroupMsgGetSimpleRequest groupMsgGetSimpleRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, GROUP_MSG_GET_SIMPLE_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(groupMsgGetSimpleRequest), null);
return JsonUtil.str2Obj(result, GroupMsgGetSimpleResult.class);
}
public GetOnlineMemberNumResult getOnlineMemberNum(GetOnlineMemberNumRequest getOnlineMemberNumRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, GET_ONLINE_MEMBER_NUM_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(getOnlineMemberNumRequest), null);
return JsonUtil.str2Obj(result, GetOnlineMemberNumResult.class);
}
} }
package com.qcloud.im.model.request; package com.qcloud.im.model.request;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List; import java.util.List;
...@@ -8,6 +9,7 @@ import java.util.List; ...@@ -8,6 +9,7 @@ import java.util.List;
* @author bingo * @author bingo
* @since 2021/7/30 17:08 * @since 2021/7/30 17:08
*/ */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class AccountDeleteRequest extends GenericRequest { public class AccountDeleteRequest extends GenericRequest {
@JsonProperty("DeleteItem") @JsonProperty("DeleteItem")
private List<AccountDeleteItem> deleteItemList; private List<AccountDeleteItem> deleteItemList;
......
package com.qcloud.im.model.request;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
/**
* @author hyh
* @since 2021/08/01 14:12
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
public class AddGroupMemberRequest extends GenericRequest {
@JsonProperty("GroupId")
private String groupId;
@JsonProperty("Silence")
private Integer silence;
@JsonProperty("MemberList")
private List<MemberRequestItem> memberList;
public AddGroupMemberRequest() {
}
public AddGroupMemberRequest(String groupId, Integer silence, List<MemberRequestItem> memberList) {
this.groupId = groupId;
this.silence = silence;
this.memberList = memberList;
}
public String getGroupId() {
return groupId;
}
public void setGroupId(String groupId) {
this.groupId = groupId;
}
public Integer getSilence() {
return silence;
}
public void setSilence(Integer silence) {
this.silence = silence;
}
public List<MemberRequestItem> getMemberList() {
return memberList;
}
public void setMemberList(List<MemberRequestItem> memberList) {
this.memberList = memberList;
}
}
package com.qcloud.im.model.request;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* @author hyh
* @since 2021/08/01 13:53
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
public class DeleteGroupMsgBySenderRequest extends GenericRequest {
@JsonProperty("GroupId")
private String groupId;
@JsonProperty("Sender_Account")
private String senderAccount;
public DeleteGroupMsgBySenderRequest() {
}
public DeleteGroupMsgBySenderRequest(String groupId, String senderAccount) {
this.groupId = groupId;
this.senderAccount = senderAccount;
}
public String getGroupId() {
return groupId;
}
public void setGroupId(String groupId) {
this.groupId = groupId;
}
public String getSenderAccount() {
return senderAccount;
}
public void setSenderAccount(String senderAccount) {
this.senderAccount = senderAccount;
}
}
package com.qcloud.im.model.request; package com.qcloud.im.model.request;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
/** /**
* @author xy * @author xy
* @since 2021/07/31 11:48 * @since 2021/07/31 11:48
*/ */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class GetNoSpeakingRequest extends GenericRequest { public class GetNoSpeakingRequest extends GenericRequest {
@JsonProperty("Get_Account") @JsonProperty("Get_Account")
private String getAccount; private String getAccount;
......
package com.qcloud.im.model.request;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* @author hyh
* @since 2021/08/01 13:31
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
public class GetOnlineMemberNumRequest extends GenericRequest {
@JsonProperty("GroupId")
private String groupId;
public GetOnlineMemberNumRequest() {
}
public GetOnlineMemberNumRequest(String groupId) {
this.groupId = groupId;
}
public String getGroupId() {
return groupId;
}
public void setGroupId(String groupId) {
this.groupId = groupId;
}
}
package com.qcloud.im.model.request;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* @author hyh
* @since 2021/08/01 13:46
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
public class GroupMsgGetSimpleRequest extends GenericRequest {
@JsonProperty("GroupId")
private String groupId;
@JsonProperty("ReqMsgSeq")
private Integer reqMsgSeq;
@JsonProperty("ReqMsgNumber")
private Integer reqMsgNumber;
public GroupMsgGetSimpleRequest() {
}
public GroupMsgGetSimpleRequest(String groupId, Integer reqMsgSeq, Integer reqMsgNumber) {
this.groupId = groupId;
this.reqMsgSeq = reqMsgSeq;
this.reqMsgNumber = reqMsgNumber;
}
public String getGroupId() {
return groupId;
}
public void setGroupId(String groupId) {
this.groupId = groupId;
}
public Integer getReqMsgSeq() {
return reqMsgSeq;
}
public void setReqMsgSeq(Integer reqMsgSeq) {
this.reqMsgSeq = reqMsgSeq;
}
public Integer getReqMsgNumber() {
return reqMsgNumber;
}
public void setReqMsgNumber(Integer reqMsgNumber) {
this.reqMsgNumber = reqMsgNumber;
}
@Override
public String toString() {
return "GroupMsgGetSimpleRequest{" +
"groupId='" + groupId + '\'' +
", reqMsgSeq=" + reqMsgSeq +
", reqMsgNumber=" + reqMsgNumber +
'}';
}
}
package com.qcloud.im.model.request;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* @author hyh
* @since 2021/08/01 14:14
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
public class MemberRequestItem {
@JsonProperty("Member_Account")
private String memberAccount;
public MemberRequestItem() {
}
public MemberRequestItem(String memberAccount) {
this.memberAccount = memberAccount;
}
public String getMemberAccount() {
return memberAccount;
}
public void setMemberAccount(String memberAccount) {
this.memberAccount = memberAccount;
}
}
package com.qcloud.im.model.request;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* @author hyh
* @since 2021/08/01 13:59
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
public class SetUnreadMsgNumRequest extends GenericRequest {
@JsonProperty("GroupId")
private String groupId;
@JsonProperty("Member_Account")
private String memberAccount;
@JsonProperty("UnreadMsgNum")
private Integer unreadMsgNum;
public SetUnreadMsgNumRequest() {
}
public SetUnreadMsgNumRequest(String groupId, String memberAccount, Integer unreadMsgNum) {
this.groupId = groupId;
this.memberAccount = memberAccount;
this.unreadMsgNum = unreadMsgNum;
}
public String getGroupId() {
return groupId;
}
public void setGroupId(String groupId) {
this.groupId = groupId;
}
public String getMemberAccount() {
return memberAccount;
}
public void setMemberAccount(String memberAccount) {
this.memberAccount = memberAccount;
}
public Integer getUnreadMsgNum() {
return unreadMsgNum;
}
public void setUnreadMsgNum(Integer unreadMsgNum) {
this.unreadMsgNum = unreadMsgNum;
}
}
package com.qcloud.im.model.response;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
/**
* @author hyh
* @since 2021/08/01 14:17
*/
public class AddGroupMemberResult extends GenericResult {
@JsonProperty("MemberList")
private List<MemberResultItem> memberList;
public AddGroupMemberResult() {
}
public AddGroupMemberResult(List<MemberResultItem> memberList) {
this.memberList = memberList;
}
public List<MemberResultItem> getMemberList() {
return memberList;
}
public void setMemberList(List<MemberResultItem> memberList) {
this.memberList = memberList;
}
@Override
public String toString() {
return "AddGroupMemberResult{" +
"memberList=" + memberList +
'}';
}
}
package com.qcloud.im.model.response;
/**
* @author hyh
* @since 2021/08/01 13:55
*/
public class DeleteGroupMsgBySenderResult extends GenericResult {
}
package com.qcloud.im.model.response;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* @author hyh
* @since 2021/08/01 13:33
*/
public class GetOnlineMemberNumResult extends GenericResult {
@JsonProperty("OnlineMemberNum")
private Integer onlineMemberNum;
public GetOnlineMemberNumResult() {
}
public GetOnlineMemberNumResult(Integer onlineMemberNum) {
this.onlineMemberNum = onlineMemberNum;
}
public Integer getOnlineMemberNum() {
return onlineMemberNum;
}
public void setOnlineMemberNum(Integer onlineMemberNum) {
this.onlineMemberNum = onlineMemberNum;
}
}
package com.qcloud.im.model.response;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
/**
* @author hyh
* @since 2021/08/01 13:35
*/
public class GroupMsgGetSimpleResult extends GenericResult {
@JsonProperty("GroupId")
private String groupId;
@JsonProperty("IsFinished")
private Integer isFinished;
@JsonProperty("RspMsgList")
private List<RspMsgItem> rspMsgList;
public GroupMsgGetSimpleResult() {
}
public GroupMsgGetSimpleResult(String groupId, Integer isFinished, List<RspMsgItem> rspMsgList) {
this.groupId = groupId;
this.isFinished = isFinished;
this.rspMsgList = rspMsgList;
}
public String getGroupId() {
return groupId;
}
public void setGroupId(String groupId) {
this.groupId = groupId;
}
public Integer getIsFinished() {
return isFinished;
}
public void setIsFinished(Integer isFinished) {
this.isFinished = isFinished;
}
public List<RspMsgItem> getRspMsgList() {
return rspMsgList;
}
public void setRspMsgList(List<RspMsgItem> rspMsgList) {
this.rspMsgList = rspMsgList;
}
@Override
public String toString() {
return "GroupMsgGetSimpleResult{" +
"groupId='" + groupId + '\'' +
", isFinished=" + isFinished +
", rspMsgList=" + rspMsgList +
'}';
}
}
package com.qcloud.im.model.response;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* @author hyh
* @since 2021/08/01 14:19
*/
public class MemberResultItem {
@JsonProperty("Member_Account")
private String memberAccount;
@JsonProperty("Result")
private Integer result;
public String getMemberAccount() {
return memberAccount;
}
public void setMemberAccount(String memberAccount) {
this.memberAccount = memberAccount;
}
public Integer getResult() {
return result;
}
public void setResult(Integer result) {
this.result = result;
}
@Override
public String toString() {
return "MemberResultItem{" +
"memberAccount='" + memberAccount + '\'' +
", result=" + result +
'}';
}
}
...@@ -11,7 +11,7 @@ public class MsgBodyItem { ...@@ -11,7 +11,7 @@ public class MsgBodyItem {
private String msgType; private String msgType;
@JsonProperty("MsgContent") @JsonProperty("MsgContent")
private MsgContentItem msgContent; private Object msgContent;
public String getMsgType() { public String getMsgType() {
return msgType; return msgType;
...@@ -21,11 +21,11 @@ public class MsgBodyItem { ...@@ -21,11 +21,11 @@ public class MsgBodyItem {
this.msgType = msgType; this.msgType = msgType;
} }
public MsgContentItem getMsgContent() { public Object getMsgContent() {
return msgContent; return msgContent;
} }
public void setMsgContent(MsgContentItem msgContent) { public void setMsgContent(Object msgContent) {
this.msgContent = msgContent; this.msgContent = msgContent;
} }
......
package com.qcloud.im.model.response;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
/**
* @author hyh
* @since 2021/08/01 13:40
*/
public class RspMsgItem {
@JsonProperty("From_Account")
private String fromAccount;
@JsonProperty("IsPlaceMsg")
private Integer isPlaceMsg;
@JsonProperty("MsgBody")
private List<MsgBodyItem> msgBody;
@JsonProperty("MsgPriority")
private Integer msgPriority;
@JsonProperty("MsgRandom")
private Integer msgRandom;
@JsonProperty("MsgSeq")
private Integer msgSeq;
@JsonProperty("MsgTimeStamp")
private Integer msgTimeStamp;
public String getFromAccount() {
return fromAccount;
}
public void setFromAccount(String fromAccount) {
this.fromAccount = fromAccount;
}
public Integer getIsPlaceMsg() {
return isPlaceMsg;
}
public void setIsPlaceMsg(Integer isPlaceMsg) {
this.isPlaceMsg = isPlaceMsg;
}
public List<MsgBodyItem> getMsgBody() {
return msgBody;
}
public void setMsgBody(List<MsgBodyItem> msgBody) {
this.msgBody = msgBody;
}
public Integer getMsgPriority() {
return msgPriority;
}
public void setMsgPriority(Integer msgPriority) {
this.msgPriority = msgPriority;
}
public Integer getMsgRandom() {
return msgRandom;
}
public void setMsgRandom(Integer msgRandom) {
this.msgRandom = msgRandom;
}
public Integer getMsgSeq() {
return msgSeq;
}
public void setMsgSeq(Integer msgSeq) {
this.msgSeq = msgSeq;
}
public Integer getMsgTimeStamp() {
return msgTimeStamp;
}
public void setMsgTimeStamp(Integer msgTimeStamp) {
this.msgTimeStamp = msgTimeStamp;
}
@Override
public String toString() {
return "RspMsgItem{" +
"fromAccount='" + fromAccount + '\'' +
", isPlaceMsg=" + isPlaceMsg +
", msgBody=" + msgBody +
", msgPriority=" + msgPriority +
", msgRandom=" + msgRandom +
", msgSeq=" + msgSeq +
", msgTimeStamp=" + msgTimeStamp +
'}';
}
}
package com.qcloud.im.model.response;
/**
* @author hyh
* @since 2021/08/01 13:58
*/
public class SetUnreadMsgNumResult extends GenericResult {
}
package com.qcloud.im; package com.qcloud.im;
import com.qcloud.im.model.request.CreateGroupRequest; import com.qcloud.im.model.request.*;
import com.qcloud.im.model.request.GetAppidGroupListRequest; import com.qcloud.im.model.response.*;
import com.qcloud.im.model.request.GetGroupInfoRequest;
import com.qcloud.im.model.response.CreateGroupResult;
import com.qcloud.im.model.response.GetAppidGroupListResult;
import com.qcloud.im.model.response.GetGroupInfoResult;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
...@@ -36,12 +32,12 @@ public class GroupTest { ...@@ -36,12 +32,12 @@ public class GroupTest {
} }
@Test @Test
public void testGetAppidGroupList() throws IOException { public void testGetAppIdGroupList() throws IOException {
GetAppidGroupListRequest request = new GetAppidGroupListRequest(); GetAppidGroupListRequest request = new GetAppidGroupListRequest();
request.setLimit(10); request.setLimit(10);
request.setGroupType("Public"); request.setGroupType("Public");
request.setNext(0); request.setNext(0);
GetAppidGroupListResult result = client.group.getAppidGroupList(request); GetAppidGroupListResult result = client.group.getAppIdGroupList(request);
System.out.println(result); System.out.println(result);
Assert.assertEquals(0, (int) result.getErrorCode()); Assert.assertEquals(0, (int) result.getErrorCode());
} }
...@@ -75,4 +71,57 @@ public class GroupTest { ...@@ -75,4 +71,57 @@ public class GroupTest {
System.out.println(result); System.out.println(result);
Assert.assertEquals(0, (int) result.getErrorCode()); Assert.assertEquals(0, (int) result.getErrorCode());
} }
@Test
public void testAddGroupMember() throws IOException {
MemberRequestItem memberItem = new MemberRequestItem("test1");
AddGroupMemberRequest request = new AddGroupMemberRequest();
request.setGroupId("MyFirstGroup");
request.setSilence(1);
request.setMemberList(Collections.singletonList(memberItem));
AddGroupMemberResult result = client.group.addGroupMember(request);
System.out.println(result);
Assert.assertEquals(0, (int) result.getErrorCode());
}
@Test
public void testSetUnreadMsgNum() throws IOException {
SetUnreadMsgNumRequest request = new SetUnreadMsgNumRequest();
request.setGroupId("MyFirstGroup");
request.setMemberAccount("test1");
request.setUnreadMsgNum(1);
SetUnreadMsgNumResult result = client.group.setUnreadMsgNum(request);
System.out.println(result);
Assert.assertEquals(0, (int) result.getErrorCode());
}
@Test
public void testDeleteGroupMsgBySender() throws IOException {
DeleteGroupMsgBySenderRequest request = new DeleteGroupMsgBySenderRequest();
request.setGroupId("MyFirstGroup");
request.setSenderAccount("test1");
DeleteGroupMsgBySenderResult result = client.group.deleteGroupMsgBySender(request);
System.out.println(result);
Assert.assertEquals(0, (int) result.getErrorCode());
}
@Test
public void testGroupMsgGetSimple() throws IOException {
GroupMsgGetSimpleRequest request = new GroupMsgGetSimpleRequest();
request.setGroupId("MyFirstGroup");
request.setReqMsgNumber(20);
request.setReqMsgSeq(1);
GroupMsgGetSimpleResult result = client.group.groupMsgGetSimple(request);
System.out.println(result);
Assert.assertEquals(0, (int) result.getErrorCode());
}
@Test
public void testGetOnlineMemberNum() throws IOException {
GetOnlineMemberNumRequest request = new GetOnlineMemberNumRequest();
request.setGroupId("MyFirstAVChatRoom");
GetOnlineMemberNumResult result = client.group.getOnlineMemberNum(request);
System.out.println(result);
Assert.assertEquals(0, (int) result.getErrorCode());
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment