REQ-3345: 添加限流

This commit is contained in:
yanglin 2025-02-06 17:22:32 +08:00
parent 6f85a26679
commit 598523e43f
2 changed files with 4 additions and 5 deletions

View File

@ -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() {

View File

@ -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()) {