添加群成员时,检查系统群最大成员数
This commit is contained in:
@@ -806,6 +806,8 @@ public class MemoryMessagesStore implements IMessagesStore {
|
||||
}
|
||||
|
||||
|
||||
int maxCount = Integer.MAX_VALUE;
|
||||
|
||||
if (!isAdmin) {
|
||||
boolean isMember = false;
|
||||
boolean isManager = false;
|
||||
@@ -835,6 +837,15 @@ public class MemoryMessagesStore implements IMessagesStore {
|
||||
if (!isMember && !(memberList.size() == 1 && operator.equals(memberList.get(0).getMemberId()))) {
|
||||
return ErrorCode.ERROR_CODE_NOT_IN_GROUP;
|
||||
}
|
||||
|
||||
SystemSettingPojo maxMemberSetting = databaseStore.getSystemSetting(ProtoConstants.SystemSettingType.Group_Max_Member_Count);
|
||||
if (maxMemberSetting != null) {
|
||||
try {
|
||||
maxCount = Integer.parseInt(maxMemberSetting.value);
|
||||
} catch (NumberFormatException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
long updateDt = System.currentTimeMillis();
|
||||
@@ -858,6 +869,18 @@ public class MemoryMessagesStore implements IMessagesStore {
|
||||
members = loadGroupMemberFromDB(hzInstance, groupId);
|
||||
}
|
||||
|
||||
if (maxCount != Integer.MAX_VALUE) {
|
||||
int existCount = 0;
|
||||
for (WFCMessage.GroupMember member : members) {
|
||||
if (member.getType() != GroupMemberType_Removed) {
|
||||
existCount++;
|
||||
}
|
||||
}
|
||||
if (existCount + newInviteUsers.size() > maxCount) {
|
||||
return ErrorCode.ERROR_CODE_GROUP_EXCEED_MAX_MEMBER_COUNT;
|
||||
}
|
||||
}
|
||||
|
||||
for (WFCMessage.GroupMember member : members) {
|
||||
if (newInviteUsers.contains(member.getMemberId())) {
|
||||
groupMembers.remove(groupId, member);
|
||||
|
||||
@@ -44,6 +44,7 @@ public enum ErrorCode {
|
||||
|
||||
ERROR_CODE_ALREADY_FRIENDS(23, "already friends"),
|
||||
|
||||
ERROR_CODE_GROUP_EXCEED_MAX_MEMBER_COUNT(240, "group exceed max member count"),
|
||||
ERROR_CODE_GROUP_MUTED(241, "group is muted"),
|
||||
ERROR_CODE_SENSITIVE_MATCHED(242, "sensitive matched"),
|
||||
ERROR_CODE_SIGN_EXPIRED(243, "sign expired"),
|
||||
|
||||
Reference in New Issue
Block a user