diff --git a/common/src/main/java/cn/wildfirechat/common/APIPath.java b/common/src/main/java/cn/wildfirechat/common/APIPath.java index a5126153..01e8b113 100644 --- a/common/src/main/java/cn/wildfirechat/common/APIPath.java +++ b/common/src/main/java/cn/wildfirechat/common/APIPath.java @@ -54,6 +54,7 @@ public interface APIPath { String Group_Member_Quit = "/admin/group/member/quit"; String Group_Set_Manager = "/admin/group/manager/set"; String Group_Mute_Member = "/admin/group/manager/mute"; + String Group_Allow_Member = "/admin/group/manager/allow"; String Get_User_Groups = "/admin/group/of_user"; diff --git a/common/src/main/java/cn/wildfirechat/pojos/GroupNotificationBinaryContent.java b/common/src/main/java/cn/wildfirechat/pojos/GroupNotificationBinaryContent.java index 49c1caf4..e2d4d67d 100644 --- a/common/src/main/java/cn/wildfirechat/pojos/GroupNotificationBinaryContent.java +++ b/common/src/main/java/cn/wildfirechat/pojos/GroupNotificationBinaryContent.java @@ -149,4 +149,7 @@ public class GroupNotificationBinaryContent { return getGroupNotifyContent(ProtoConstants.MESSAGE_CONTENT_TYPE_MUTE_MEMBER); } + public WFCMessage.MessageContent getAllowGroupMemberNotifyContent() { + return getGroupNotifyContent(ProtoConstants.MESSAGE_CONTENT_TYPE_ALLOW_MEMBER); + } } diff --git a/common/src/main/java/cn/wildfirechat/proto/ProtoConstants.java b/common/src/main/java/cn/wildfirechat/proto/ProtoConstants.java index d432dad2..86ea8067 100644 --- a/common/src/main/java/cn/wildfirechat/proto/ProtoConstants.java +++ b/common/src/main/java/cn/wildfirechat/proto/ProtoConstants.java @@ -28,6 +28,7 @@ public class ProtoConstants { int GroupMemberType_Owner = 2; int GroupMemberType_Silent = 3; int GroupMemberType_Removed = 4; + int GroupMemberType_Allowed = 5; } //message FriendRequest -> status @@ -182,5 +183,6 @@ public class ProtoConstants { public static final int MESSAGE_CONTENT_TYPE_SET_MANAGER = 117; public static final int MESSAGE_CONTENT_TYPE_MUTE_MEMBER = 118; + public static final int MESSAGE_CONTENT_TYPE_ALLOW_MEMBER = 119; } diff --git a/sdk/src/main/java/cn/wildfirechat/sdk/GroupAdmin.java b/sdk/src/main/java/cn/wildfirechat/sdk/GroupAdmin.java index 5f455f61..aec739b8 100644 --- a/sdk/src/main/java/cn/wildfirechat/sdk/GroupAdmin.java +++ b/sdk/src/main/java/cn/wildfirechat/sdk/GroupAdmin.java @@ -95,12 +95,24 @@ public class GroupAdmin { return AdminHttpUtils.httpJsonPost(path, addGroupMember, Void.class); } - public static IMResult muteGroupMemeber(String operator, String groupId, List groupMemberIds, boolean isManager, List to_lines, MessagePayload notify_message) throws Exception { + public static IMResult muteGroupMemeber(String operator, String groupId, List groupMemberIds, boolean isMute, List to_lines, MessagePayload notify_message) throws Exception { String path = APIPath.Group_Mute_Member; InputMuteGroupMember addGroupMember = new InputMuteGroupMember(); addGroupMember.setGroup_id(groupId); addGroupMember.setMembers(groupMemberIds); - addGroupMember.setIs_manager(isManager); + addGroupMember.setIs_manager(isMute); + addGroupMember.setOperator(operator); + addGroupMember.setTo_lines(to_lines); + addGroupMember.setNotify_message(notify_message); + return AdminHttpUtils.httpJsonPost(path, addGroupMember, Void.class); + } + + public static IMResult allowGroupMemeber(String operator, String groupId, List groupMemberIds, boolean isAllow, List to_lines, MessagePayload notify_message) throws Exception { + String path = APIPath.Group_Allow_Member; + InputMuteGroupMember addGroupMember = new InputMuteGroupMember(); + addGroupMember.setGroup_id(groupId); + addGroupMember.setMembers(groupMemberIds); + addGroupMember.setIs_manager(isAllow); addGroupMember.setOperator(operator); addGroupMember.setTo_lines(to_lines); addGroupMember.setNotify_message(notify_message); diff --git a/sdk/src/main/java/cn/wildfirechat/sdk/Main.java b/sdk/src/main/java/cn/wildfirechat/sdk/Main.java index 1f65f6dc..3ef70059 100644 --- a/sdk/src/main/java/cn/wildfirechat/sdk/Main.java +++ b/sdk/src/main/java/cn/wildfirechat/sdk/Main.java @@ -423,26 +423,6 @@ public class Main { System.exit(-1); } - if (commercialServer) { - voidIMResult = GroupAdmin.muteGroupMemeber("user1", groupInfo.getTarget_id(), Arrays.asList("user4", "user5"), true, null, null); - if (voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) { - System.out.println("mute group member success"); - } else { - System.out.println("mute group member failure"); - System.exit(-1); - } - - voidIMResult = GroupAdmin.muteGroupMemeber("user1", groupInfo.getTarget_id(), Arrays.asList("user4", "user5"), false, null, null); - if (voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) { - System.out.println("unmute group member success"); - } else { - System.out.println("unmute group member failure"); - System.exit(-1); - } - } - - - voidIMResult = GroupAdmin.quitGroup("user4", groupInfo.getTarget_id(), null, null); if (voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) { @@ -465,6 +445,44 @@ public class Main { System.exit(-1); } + + //仅专业版支持 + if (commercialServer) { + //开启群成员禁言 + voidIMResult = GroupAdmin.muteGroupMemeber("user1", groupInfo.getTarget_id(), Arrays.asList("user5"), true, null, null); + if (voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) { + System.out.println("mute group member success"); + } else { + System.out.println("mute group member failure"); + System.exit(-1); + } + //关闭群成员禁言 + voidIMResult = GroupAdmin.muteGroupMemeber("user1", groupInfo.getTarget_id(), Arrays.asList("user5"), false, null, null); + if (voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) { + System.out.println("unmute group member success"); + } else { + System.out.println("unmute group member failure"); + System.exit(-1); + } + + //开启群成员白名单,当群全局禁言时,白名单用户可以发言 + voidIMResult = GroupAdmin.allowGroupMemeber("user1", groupInfo.getTarget_id(), Arrays.asList("user5"), true, null, null); + if (voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) { + System.out.println("allow group member success"); + } else { + System.out.println("allow group member failure"); + System.exit(-1); + } + + //关闭群成员白名单 + voidIMResult = GroupAdmin.allowGroupMemeber("user1", groupInfo.getTarget_id(), Arrays.asList("user5"), false, null, null); + if (voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) { + System.out.println("unallow group member success"); + } else { + System.out.println("unallow group member failure"); + System.exit(-1); + } + } } //***********************************************