家族满员后自动拒绝其他所有申请

This commit is contained in:
tianfeng 2025-12-23 18:15:27 +08:00
parent 91812a3caa
commit 65d5a6fbfc
3 changed files with 20 additions and 1 deletions

View File

@ -75,6 +75,7 @@ public class FamilyMessageHandleExe {
Integer familyCurrentMemberCount = getMemberCount(levelConfig);
if (familyCurrentMemberCount >= levelConfig.getMaxMember()) {
familyMessageService.rejectFamilyPendingMessages(msg.getFamilyId());
ResponseAssert.failure(FamilyErrorCode.FAMILY_MEMBER_MAX);
return;
}
@ -82,9 +83,13 @@ public class FamilyMessageHandleExe {
updateMsg(cmd, msg, FamilyMessageStatusEnum.APPROVED);
userJoinFamily(cmd, msg, levelConfig);
//取消其他申请记录
familyMessageService.cancelUserPendingMessages(msg.getSenderUser());
Integer newMemberCount = getMemberCount(levelConfig);
if (newMemberCount >= levelConfig.getMaxMember()) {
familyMessageService.rejectFamilyPendingMessages(msg.getFamilyId());
}
sendNotification(msg.getSenderUser(), true);
}

View File

@ -26,4 +26,6 @@ public interface FamilyMessageService extends BaseService<FamilyMessage> {
void cancelUserPendingMessages(Long userId);
void cancelMessageIfUserJoined(Long messageId, Long userId);
void rejectFamilyPendingMessages(Long familyId);
}

View File

@ -88,4 +88,16 @@ public class FamilyMessageServiceImpl extends
.eq(FamilyMessage::getSenderUser, userId)
.execute();
}
@Override
public void rejectFamilyPendingMessages(Long familyId) {
if (Objects.isNull(familyId)) {
return;
}
update()
.set(FamilyMessage::getStatus, FamilyMessageStatusEnum.REJECTED.getCode())
.eq(FamilyMessage::getFamilyId, familyId)
.eq(FamilyMessage::getStatus, FamilyMessageStatusEnum.PENDING.getCode())
.execute();
}
}