From 65d5a6fbfcd28bcd12e8c5370d57fce0b8a8d06c Mon Sep 17 00:00:00 2001 From: tianfeng <769204422@qq.com> Date: Tue, 23 Dec 2025 18:15:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=B6=E6=97=8F=E6=BB=A1=E5=91=98=E5=90=8E?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=8B=92=E7=BB=9D=E5=85=B6=E4=BB=96=E6=89=80?= =?UTF-8?q?=E6=9C=89=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/command/family/FamilyMessageHandleExe.java | 7 ++++++- .../rds/service/family/FamilyMessageService.java | 2 ++ .../family/impl/FamilyMessageServiceImpl.java | 12 ++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/family/FamilyMessageHandleExe.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/family/FamilyMessageHandleExe.java index 5a066265..48f38c7c 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/family/FamilyMessageHandleExe.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/family/FamilyMessageHandleExe.java @@ -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); } diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/family/FamilyMessageService.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/family/FamilyMessageService.java index bdd161e8..cfa58cfa 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/family/FamilyMessageService.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/family/FamilyMessageService.java @@ -26,4 +26,6 @@ public interface FamilyMessageService extends BaseService { void cancelUserPendingMessages(Long userId); void cancelMessageIfUserJoined(Long messageId, Long userId); + + void rejectFamilyPendingMessages(Long familyId); } diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/family/impl/FamilyMessageServiceImpl.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/family/impl/FamilyMessageServiceImpl.java index 71e15cc3..48f32f09 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/family/impl/FamilyMessageServiceImpl.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/family/impl/FamilyMessageServiceImpl.java @@ -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(); + } }