REQ-3345: 添加限流
This commit is contained in:
parent
6f85a26679
commit
598523e43f
@ -42,9 +42,8 @@ public class Group {
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class)
|
||||
private RecordExt recordExt;
|
||||
|
||||
public boolean isMemberLimitReached(int memberCount) {
|
||||
if (memberLimit <= 0) return false;
|
||||
return memberCount > memberLimit;
|
||||
public boolean addMoreMembers(int memberCount) {
|
||||
return memberLimit <= 0 || memberCount <= memberLimit;
|
||||
}
|
||||
|
||||
public boolean isDismissed() {
|
||||
|
||||
@ -65,7 +65,7 @@ public class GroupManager {
|
||||
String owner = imAccounts.findAccount(request.getOwner()).orElse(null);
|
||||
BizAssertions.assertNotNull(owner, "群主没有IM账号, 无法创建群. {}", request.getOwner());
|
||||
Group group = groupSupport.buildNewGroup(request, imAccounts);
|
||||
BizAssertions.assertFalse(group.isMemberLimitReached(
|
||||
BizAssertions.assertTrue(group.addMoreMembers(
|
||||
request.getOwnerAndMembers().size()), "无法创建群, 群成员数量超过上限" + group.getMemberLimit());
|
||||
try {
|
||||
groupDao.save(group);
|
||||
@ -122,7 +122,7 @@ public class GroupManager {
|
||||
.collect(toSet());
|
||||
if (toAddMembers.isEmpty())
|
||||
return new GroupAddMembersResponse();
|
||||
if (group.isMemberLimitReached(preMembers.size() + toAddMembers.size()))
|
||||
if (!group.addMoreMembers(preMembers.size() + toAddMembers.size()))
|
||||
throw new ServiceException("群聊人数上限" + group.getMemberLimit() + "人, 请删除部分已选人员");
|
||||
ImAccounts imAccounts = accountService.getOrCreateImAccounts(toAddMembers);
|
||||
if (imAccounts.isAccountEmpty()) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user