创建群组或者添加群组成员时,群组成员的Extra会放到通知消息的extra中,这样便于业务处理通知消息
This commit is contained in:
@@ -43,7 +43,7 @@ public class AddGroupMember extends GroupHandler<WFCMessage.AddGroupMemberReques
|
|||||||
if (request.hasNotifyContent() && request.getNotifyContent().getType() > 0) {
|
if (request.hasNotifyContent() && request.getNotifyContent().getType() > 0) {
|
||||||
sendGroupNotification(fromUser, request.getGroupId(), request.getToLineList(), request.getNotifyContent());
|
sendGroupNotification(fromUser, request.getGroupId(), request.getToLineList(), request.getNotifyContent());
|
||||||
} else {
|
} else {
|
||||||
WFCMessage.MessageContent content = new GroupNotificationBinaryContent(request.getGroupId(), fromUser, null, getMemberIdList(request.getAddedMemberList())).getAddGroupNotifyContent();
|
WFCMessage.MessageContent content = new GroupNotificationBinaryContent(request.getGroupId(), fromUser, null, getMemberIdList(request.getAddedMemberList())).setExtra(request.getExtra()).getAddGroupNotifyContent();
|
||||||
sendGroupNotification(fromUser, request.getGroupId(), request.getToLineList(), content);
|
sendGroupNotification(fromUser, request.getGroupId(), request.getToLineList(), content);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public class CreateGroupHandler extends GroupHandler<WFCMessage.CreateGroupReque
|
|||||||
if(request.hasNotifyContent() && request.getNotifyContent().getType() > 0) {
|
if(request.hasNotifyContent() && request.getNotifyContent().getType() > 0) {
|
||||||
sendGroupNotification(fromUser, groupInfo.getTargetId(), request.getToLineList(), request.getNotifyContent());
|
sendGroupNotification(fromUser, groupInfo.getTargetId(), request.getToLineList(), request.getNotifyContent());
|
||||||
} else {
|
} else {
|
||||||
WFCMessage.MessageContent content = new GroupNotificationBinaryContent(groupInfo.getTargetId(), fromUser, groupInfo.getName(), "").getCreateGroupNotifyContent();
|
WFCMessage.MessageContent content = new GroupNotificationBinaryContent(groupInfo.getTargetId(), fromUser, groupInfo.getName(), "").setExtra(request.getMemberExtra()).getCreateGroupNotifyContent();
|
||||||
sendGroupNotification(fromUser, groupInfo.getTargetId(), request.getToLineList(), content);
|
sendGroupNotification(fromUser, groupInfo.getTargetId(), request.getToLineList(), content);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import cn.wildfirechat.proto.WFCMessage;
|
|||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
import com.google.protobuf.ByteString;
|
import com.google.protobuf.ByteString;
|
||||||
|
import io.netty.util.internal.StringUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -32,6 +33,8 @@ public class GroupNotificationBinaryContent {
|
|||||||
//value2(member or something)
|
//value2(member or something)
|
||||||
private String m;
|
private String m;
|
||||||
|
|
||||||
|
private String extra;
|
||||||
|
|
||||||
public GroupNotificationBinaryContent() {
|
public GroupNotificationBinaryContent() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,8 +92,18 @@ public class GroupNotificationBinaryContent {
|
|||||||
this.ms = ms;
|
this.ms = ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public GroupNotificationBinaryContent setExtra(String extra) {
|
||||||
|
this.extra = extra;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public WFCMessage.MessageContent getGroupNotifyContent(int groupContentType) {
|
public WFCMessage.MessageContent getGroupNotifyContent(int groupContentType) {
|
||||||
return WFCMessage.MessageContent.newBuilder().setType(groupContentType).setData(ByteString.copyFromUtf8(new GsonBuilder().disableHtmlEscaping().create().toJson(this))).build();
|
WFCMessage.MessageContent.Builder builder = WFCMessage.MessageContent.newBuilder().setType(groupContentType).setData(ByteString.copyFromUtf8(new GsonBuilder().disableHtmlEscaping().create().toJson(this)));
|
||||||
|
if(!StringUtil.isNullOrEmpty(extra)) {
|
||||||
|
builder.setExtra(extra);
|
||||||
|
}
|
||||||
|
return builder.build();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public WFCMessage.MessageContent getAddGroupNotifyContent() {
|
public WFCMessage.MessageContent getAddGroupNotifyContent() {
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import java.util.List;
|
|||||||
public class InputAddGroupMember extends InputGroupBase {
|
public class InputAddGroupMember extends InputGroupBase {
|
||||||
private String group_id;
|
private String group_id;
|
||||||
private List<PojoGroupMember> members;
|
private List<PojoGroupMember> members;
|
||||||
|
private String member_extra;
|
||||||
|
|
||||||
public String getGroup_id() {
|
public String getGroup_id() {
|
||||||
return group_id;
|
return group_id;
|
||||||
@@ -34,6 +35,14 @@ public class InputAddGroupMember extends InputGroupBase {
|
|||||||
this.members = members;
|
this.members = members;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getMember_extra() {
|
||||||
|
return member_extra;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMemberExtra(String extra) {
|
||||||
|
this.member_extra = extra;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isValide() {
|
public boolean isValide() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -41,6 +50,9 @@ public class InputAddGroupMember extends InputGroupBase {
|
|||||||
public WFCMessage.AddGroupMemberRequest toProtoGroupRequest() {
|
public WFCMessage.AddGroupMemberRequest toProtoGroupRequest() {
|
||||||
WFCMessage.AddGroupMemberRequest.Builder addGroupBuilder = WFCMessage.AddGroupMemberRequest.newBuilder();
|
WFCMessage.AddGroupMemberRequest.Builder addGroupBuilder = WFCMessage.AddGroupMemberRequest.newBuilder();
|
||||||
addGroupBuilder.setGroupId(group_id);
|
addGroupBuilder.setGroupId(group_id);
|
||||||
|
if(!StringUtil.isNullOrEmpty(member_extra)) {
|
||||||
|
addGroupBuilder.setExtra(member_extra);
|
||||||
|
}
|
||||||
for (PojoGroupMember pojoGroupMember : getMembers()) {
|
for (PojoGroupMember pojoGroupMember : getMembers()) {
|
||||||
WFCMessage.GroupMember.Builder groupMemberBuilder = WFCMessage.GroupMember.newBuilder().setMemberId(pojoGroupMember.getMember_id());
|
WFCMessage.GroupMember.Builder groupMemberBuilder = WFCMessage.GroupMember.newBuilder().setMemberId(pojoGroupMember.getMember_id());
|
||||||
if (!StringUtil.isNullOrEmpty(pojoGroupMember.getAlias())) {
|
if (!StringUtil.isNullOrEmpty(pojoGroupMember.getAlias())) {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import java.util.List;
|
|||||||
|
|
||||||
public class InputCreateGroup extends InputGroupBase {
|
public class InputCreateGroup extends InputGroupBase {
|
||||||
private PojoGroup group;
|
private PojoGroup group;
|
||||||
|
private String member_extra;
|
||||||
|
|
||||||
public boolean isValide() {
|
public boolean isValide() {
|
||||||
return true;
|
return true;
|
||||||
@@ -87,6 +88,9 @@ public class InputCreateGroup extends InputGroupBase {
|
|||||||
|
|
||||||
WFCMessage.CreateGroupRequest.Builder createGroupReqBuilder = WFCMessage.CreateGroupRequest.newBuilder();
|
WFCMessage.CreateGroupRequest.Builder createGroupReqBuilder = WFCMessage.CreateGroupRequest.newBuilder();
|
||||||
createGroupReqBuilder.setGroup(groupBuilder);
|
createGroupReqBuilder.setGroup(groupBuilder);
|
||||||
|
if(!StringUtil.isNullOrEmpty(member_extra)) {
|
||||||
|
createGroupReqBuilder.setMemberExtra(member_extra);
|
||||||
|
}
|
||||||
if (to_lines != null) {
|
if (to_lines != null) {
|
||||||
for (Integer line : to_lines
|
for (Integer line : to_lines
|
||||||
) {
|
) {
|
||||||
@@ -107,4 +111,12 @@ public class InputCreateGroup extends InputGroupBase {
|
|||||||
public void setGroup(PojoGroup group) {
|
public void setGroup(PojoGroup group) {
|
||||||
this.group = group;
|
this.group = group;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getMember_extra() {
|
||||||
|
return member_extra;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMember_extra(String member_extra) {
|
||||||
|
this.member_extra = member_extra;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,14 +2,13 @@ package cn.wildfirechat.sdk;
|
|||||||
|
|
||||||
import cn.wildfirechat.common.APIPath;
|
import cn.wildfirechat.common.APIPath;
|
||||||
import cn.wildfirechat.pojos.*;
|
import cn.wildfirechat.pojos.*;
|
||||||
import cn.wildfirechat.proto.ProtoConstants;
|
|
||||||
import cn.wildfirechat.sdk.model.IMResult;
|
import cn.wildfirechat.sdk.model.IMResult;
|
||||||
import cn.wildfirechat.sdk.utilities.AdminHttpUtils;
|
import cn.wildfirechat.sdk.utilities.AdminHttpUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class GroupAdmin {
|
public class GroupAdmin {
|
||||||
public static IMResult<OutputCreateGroupResult> createGroup(String operator, PojoGroupInfo group_info, List<PojoGroupMember> members, List<Integer> to_lines, MessagePayload notify_message) throws Exception {
|
public static IMResult<OutputCreateGroupResult> createGroup(String operator, PojoGroupInfo group_info, List<PojoGroupMember> members, String member_extra, List<Integer> to_lines, MessagePayload notify_message) throws Exception {
|
||||||
String path = APIPath.Create_Group;
|
String path = APIPath.Create_Group;
|
||||||
PojoGroup pojoGroup = new PojoGroup();
|
PojoGroup pojoGroup = new PojoGroup();
|
||||||
pojoGroup.setGroup_info(group_info);
|
pojoGroup.setGroup_info(group_info);
|
||||||
@@ -17,6 +16,7 @@ public class GroupAdmin {
|
|||||||
InputCreateGroup createGroup = new InputCreateGroup();
|
InputCreateGroup createGroup = new InputCreateGroup();
|
||||||
createGroup.setGroup(pojoGroup);
|
createGroup.setGroup(pojoGroup);
|
||||||
createGroup.setOperator(operator);
|
createGroup.setOperator(operator);
|
||||||
|
createGroup.setMember_extra(member_extra);
|
||||||
createGroup.setTo_lines(to_lines);
|
createGroup.setTo_lines(to_lines);
|
||||||
createGroup.setNotify_message(notify_message);
|
createGroup.setNotify_message(notify_message);
|
||||||
|
|
||||||
@@ -85,12 +85,13 @@ public class GroupAdmin {
|
|||||||
return AdminHttpUtils.httpJsonPost(path, input, PojoGroupMember.class);
|
return AdminHttpUtils.httpJsonPost(path, input, PojoGroupMember.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IMResult<Void> addGroupMembers(String operator, String groupId, List<PojoGroupMember> groupMembers, List<Integer> to_lines, MessagePayload notify_message) throws Exception {
|
public static IMResult<Void> addGroupMembers(String operator, String groupId, List<PojoGroupMember> groupMembers, String member_extra, List<Integer> to_lines, MessagePayload notify_message) throws Exception {
|
||||||
String path = APIPath.Group_Member_Add;
|
String path = APIPath.Group_Member_Add;
|
||||||
InputAddGroupMember addGroupMember = new InputAddGroupMember();
|
InputAddGroupMember addGroupMember = new InputAddGroupMember();
|
||||||
addGroupMember.setGroup_id(groupId);
|
addGroupMember.setGroup_id(groupId);
|
||||||
addGroupMember.setMembers(groupMembers);
|
addGroupMember.setMembers(groupMembers);
|
||||||
addGroupMember.setOperator(operator);
|
addGroupMember.setOperator(operator);
|
||||||
|
addGroupMember.setMemberExtra(member_extra);
|
||||||
addGroupMember.setTo_lines(to_lines);
|
addGroupMember.setTo_lines(to_lines);
|
||||||
addGroupMember.setNotify_message(notify_message);
|
addGroupMember.setNotify_message(notify_message);
|
||||||
return AdminHttpUtils.httpJsonPost(path, addGroupMember, Void.class);
|
return AdminHttpUtils.httpJsonPost(path, addGroupMember, Void.class);
|
||||||
|
|||||||
@@ -503,7 +503,7 @@ public class Main {
|
|||||||
member3.setMember_id("user3");
|
member3.setMember_id("user3");
|
||||||
members.add(member3);
|
members.add(member3);
|
||||||
|
|
||||||
IMResult<OutputCreateGroupResult> resultCreateGroup = GroupAdmin.createGroup(groupInfo.getOwner(), groupInfo, members, null, null);
|
IMResult<OutputCreateGroupResult> resultCreateGroup = GroupAdmin.createGroup(groupInfo.getOwner(), groupInfo, members, null, null, null);
|
||||||
if (resultCreateGroup != null && resultCreateGroup.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
|
if (resultCreateGroup != null && resultCreateGroup.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
|
||||||
System.out.println("create group success");
|
System.out.println("create group success");
|
||||||
} else {
|
} else {
|
||||||
@@ -575,7 +575,7 @@ public class Main {
|
|||||||
m.setMember_id("user1");
|
m.setMember_id("user1");
|
||||||
m.setAlias("hello user1");
|
m.setAlias("hello user1");
|
||||||
|
|
||||||
voidIMResult = GroupAdmin.addGroupMembers("user1", groupInfo.getTarget_id(), Arrays.asList(m), null, null);
|
voidIMResult = GroupAdmin.addGroupMembers("user1", groupInfo.getTarget_id(), Arrays.asList(m), null, null, null);
|
||||||
if (voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
|
if (voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
|
||||||
System.out.println("add group member success");
|
System.out.println("add group member success");
|
||||||
} else {
|
} else {
|
||||||
@@ -1065,7 +1065,43 @@ public class Main {
|
|||||||
System.exit(-1);
|
System.exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
IMResult<Void> voidIMResult = ChannelAdmin.destroyChannel(inputCreateChannel.getTargetId());
|
String subscriber = "aaa";
|
||||||
|
IMResult<Void> voidIMResult = ChannelAdmin.subscribeChannel(inputCreateChannel.getTargetId(), subscriber);
|
||||||
|
if(voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
|
||||||
|
System.out.println("subscribeChannel success");
|
||||||
|
} else {
|
||||||
|
System.out.println("subscriber channel failure");
|
||||||
|
System.exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
Thread.sleep(100);
|
||||||
|
IMResult<OutputBooleanValue> booleanIMResult = ChannelAdmin.isUserSubscribedChannel(subscriber, inputCreateChannel.getTargetId());
|
||||||
|
if(booleanIMResult != null && booleanIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS && booleanIMResult.getResult().value) {
|
||||||
|
System.out.println("subscribe status is correct");
|
||||||
|
} else {
|
||||||
|
System.out.println("subscribe status is incorrect");
|
||||||
|
System.exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
voidIMResult = ChannelAdmin.unsubscribeChannel(inputCreateChannel.getTargetId(), subscriber);
|
||||||
|
if(voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
|
||||||
|
System.out.println("unsubscribeChannel success");
|
||||||
|
} else {
|
||||||
|
System.out.println("unsubscriber channel failure");
|
||||||
|
System.exit(-1);
|
||||||
|
}
|
||||||
|
Thread.sleep(100);
|
||||||
|
|
||||||
|
booleanIMResult = ChannelAdmin.isUserSubscribedChannel(subscriber, inputCreateChannel.getTargetId());
|
||||||
|
if(booleanIMResult != null && booleanIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS && !booleanIMResult.getResult().value) {
|
||||||
|
System.out.println("subscribe status is correct");
|
||||||
|
} else {
|
||||||
|
System.out.println("subscribe status is incorrect");
|
||||||
|
System.exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
voidIMResult = ChannelAdmin.destroyChannel(inputCreateChannel.getTargetId());
|
||||||
if(voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
|
if(voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
|
||||||
System.out.println("success");
|
System.out.println("success");
|
||||||
} else {
|
} else {
|
||||||
@@ -1442,7 +1478,7 @@ public class Main {
|
|||||||
member3.setMember_id("user3");
|
member3.setMember_id("user3");
|
||||||
members.add(member3);
|
members.add(member3);
|
||||||
|
|
||||||
IMResult<OutputCreateGroupResult> resultCreateGroup = robotService.createGroup(groupInfo, members, null, null);
|
IMResult<OutputCreateGroupResult> resultCreateGroup = robotService.createGroup(groupInfo, members, null, null, null);
|
||||||
if (resultCreateGroup != null && resultCreateGroup.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
|
if (resultCreateGroup != null && resultCreateGroup.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
|
||||||
System.out.println("create group success");
|
System.out.println("create group success");
|
||||||
} else {
|
} else {
|
||||||
@@ -1486,7 +1522,7 @@ public class Main {
|
|||||||
m.setMember_id("user0");
|
m.setMember_id("user0");
|
||||||
m.setAlias("hello user0");
|
m.setAlias("hello user0");
|
||||||
|
|
||||||
voidIMResult = robotService.addGroupMembers(groupInfo.getTarget_id(), Arrays.asList(m), null, null);
|
voidIMResult = robotService.addGroupMembers(groupInfo.getTarget_id(), Arrays.asList(m), null, null, null);
|
||||||
if (voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
|
if (voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
|
||||||
System.out.println("add group member success");
|
System.out.println("add group member success");
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -96,13 +96,14 @@ public class RobotService {
|
|||||||
return robotHttpUtils.httpJsonPost(path, pojo, Void.class);
|
return robotHttpUtils.httpJsonPost(path, pojo, Void.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IMResult<OutputCreateGroupResult> createGroup(PojoGroupInfo group_info, List<PojoGroupMember> members, List<Integer> to_lines, MessagePayload notify_message) throws Exception {
|
public IMResult<OutputCreateGroupResult> createGroup(PojoGroupInfo group_info, List<PojoGroupMember> members, String member_extra, List<Integer> to_lines, MessagePayload notify_message) throws Exception {
|
||||||
String path = APIPath.Robot_Create_Group;
|
String path = APIPath.Robot_Create_Group;
|
||||||
PojoGroup pojoGroup = new PojoGroup();
|
PojoGroup pojoGroup = new PojoGroup();
|
||||||
pojoGroup.setGroup_info(group_info);
|
pojoGroup.setGroup_info(group_info);
|
||||||
pojoGroup.setMembers(members);
|
pojoGroup.setMembers(members);
|
||||||
InputCreateGroup createGroup = new InputCreateGroup();
|
InputCreateGroup createGroup = new InputCreateGroup();
|
||||||
createGroup.setGroup(pojoGroup);
|
createGroup.setGroup(pojoGroup);
|
||||||
|
createGroup.setMember_extra(member_extra);
|
||||||
createGroup.setTo_lines(to_lines);
|
createGroup.setTo_lines(to_lines);
|
||||||
createGroup.setNotify_message(notify_message);
|
createGroup.setNotify_message(notify_message);
|
||||||
|
|
||||||
@@ -163,11 +164,12 @@ public class RobotService {
|
|||||||
return robotHttpUtils.httpJsonPost(path, input, PojoGroupMember.class);
|
return robotHttpUtils.httpJsonPost(path, input, PojoGroupMember.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IMResult<Void> addGroupMembers(String groupId, List<PojoGroupMember> groupMembers, List<Integer> to_lines, MessagePayload notify_message) throws Exception {
|
public IMResult<Void> addGroupMembers(String groupId, List<PojoGroupMember> groupMembers, String member_extra, List<Integer> to_lines, MessagePayload notify_message) throws Exception {
|
||||||
String path = APIPath.Robot_Group_Member_Add;
|
String path = APIPath.Robot_Group_Member_Add;
|
||||||
InputAddGroupMember addGroupMember = new InputAddGroupMember();
|
InputAddGroupMember addGroupMember = new InputAddGroupMember();
|
||||||
addGroupMember.setGroup_id(groupId);
|
addGroupMember.setGroup_id(groupId);
|
||||||
addGroupMember.setMembers(groupMembers);
|
addGroupMember.setMembers(groupMembers);
|
||||||
|
addGroupMember.setMemberExtra(member_extra);
|
||||||
addGroupMember.setTo_lines(to_lines);
|
addGroupMember.setTo_lines(to_lines);
|
||||||
addGroupMember.setNotify_message(notify_message);
|
addGroupMember.setNotify_message(notify_message);
|
||||||
return robotHttpUtils.httpJsonPost(path, addGroupMember, Void.class);
|
return robotHttpUtils.httpJsonPost(path, addGroupMember, Void.class);
|
||||||
|
|||||||
Reference in New Issue
Block a user