Procházet zdrojové kódy

fix(backend): 修复 MembershipService 编译错误 - fromLevel 未定义、family 未定义、Set 缺失 import

iwt před 1 týdnem
rodič
revize
1f4aed30e4

+ 16 - 0
cfc-backend/src/main/java/com/etotem/cfc/service/MembershipService.java

@@ -20,6 +20,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.UUID;
 import java.util.stream.Collectors;
 
@@ -977,6 +978,21 @@ public class MembershipService implements MembershipServiceInterface {
         log.info("新成员继承家庭会员: userId={}, familyId={}, level={}", userId, familyId, active.getLevelCode());
     }
 
+    /**
+     * 方案B:重新核算家庭会员身份(成员离开/切换家庭/回收时调用)
+     * - 家庭有有效会员 → 同步给所有成员
+     * - 家庭无有效会员 → 全家降级 FREE
+     */
+    public void reconcileFamilyMembership(Long familyId) {
+        if (familyId == null) return;
+        FamilyMembership active = getActiveFamilyMembership(familyId);
+        if (active != null) {
+            syncMembershipToFamilyMembers(familyId, active.getLevelCode(), active.getEndDate(), "reconcile", null);
+        } else {
+            downgradeFamilyMembers(familyId);
+        }
+    }
+
     // ==================== 会员升级与过期 ====================
 
     /**