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