ソースを参照

fix(family): S-cfc-57/58/59 统一校验实现 - 调用点前移至用户存在检查后(兼容三键契约测试设计锚点,58实现为基准)

Agnes Agent 4 日 前
親
コミット
5bef71317

+ 4 - 4
cfc-backend/src/main/java/com/etotem/cfc/service/FamilyJoinRequestService.java

@@ -110,6 +110,10 @@ public class FamilyJoinRequestService {
             throw new RuntimeException("用户不存在");
         }
 
+        // 准入校验:被邀请人必须已完善真实姓名/出生日期/性别(需求变更 2026-11-07-family-join-required-info,
+        // §3 AC-R3 / §5 WI-3,能力键 family.invite.joinValidationRules);任一缺失/非法直接抛错、不落库
+        validateJoinRequiredInfo(currentUser);
+
         // 检查用户是否已属于该家庭
         if (currentUser.getFamilyId() != null && currentUser.getFamilyId().equals(family.getId())) {
             throw new RuntimeException("您已是该家庭成员");
@@ -126,10 +130,6 @@ public class FamilyJoinRequestService {
             throw new RuntimeException("您已有待审批的加入请求,请勿重复提交");
         }
 
-        // 准入校验:被邀请人必须已完善真实姓名/出生日期/性别(需求变更 2026-11-07-family-join-required-info,
-        // §3 AC-R3 / §5 WI-3,能力键 family.invite.joinValidationRules);任一缺失/非法直接抛错、不落库
-        validateJoinRequiredInfo(currentUser);
-
         // 创建请求
         FamilyJoinRequest request = new FamilyJoinRequest();
         request.setRequesterUserId(userId);