Просмотр исходного кода

chore: auto bump version and changelog [skip ci]

iwt 1 неделя назад
Родитель
Сommit
ecec483c4a

+ 21 - 19
cfc-backend/src/main/java/com/etotem/cfc/service/MembershipService.java

@@ -979,7 +979,8 @@ public class MembershipService implements MembershipServiceInterface {
     // ==================== 会员升级与过期 ====================
     // ==================== 会员升级与过期 ====================
 
 
     /**
     /**
-     * 将用户升级为FAMILY会员
+     * 将用户升级为FAMILY会员(消费达标自动升级)
+     * 方案B:升级全家
      */
      */
     public void upgradeToFamily(Long userId, String upgradeType, Long orderId) {
     public void upgradeToFamily(Long userId, String upgradeType, Long orderId) {
         User user = userMapper.selectById(userId);
         User user = userMapper.selectById(userId);
@@ -987,23 +988,18 @@ public class MembershipService implements MembershipServiceInterface {
             throw new IllegalArgumentException("用户不存在");
             throw new IllegalArgumentException("用户不存在");
         }
         }
 
 
+        Long familyId = user.getFamilyId();
+        if (familyId == null) {
+            log.warn("upgradeToFamily: 用户无家庭, userId={}", userId);
+            return;
+        }
+
         String fromLevel = user.getMemberLevel() != null ? user.getMemberLevel() : "FREE";
         String fromLevel = user.getMemberLevel() != null ? user.getMemberLevel() : "FREE";
 
 
         Date expireTime = new Date(System.currentTimeMillis() + 365L * 24 * 60 * 60 * 1000);
         Date expireTime = new Date(System.currentTimeMillis() + 365L * 24 * 60 * 60 * 1000);
-        user.setMemberLevel("FAMILY");
-        user.setMemberExpireTime(expireTime);
-        user.setUpdatedAt(new Date());
-        userMapper.updateById(user);
-
-        MemberUpgradeRecord record = new MemberUpgradeRecord();
-        record.setUserId(userId);
-        record.setFromLevel(fromLevel);
-        record.setToLevel("FAMILY");
-        record.setUpgradeType(upgradeType);
-        record.setOrderId(orderId);
-        record.setExpireTime(expireTime);
-        record.setCreatedAt(new Date());
-        memberUpgradeRecordMapper.insert(record);
+        // 方案B:全家同步会员身份
+        syncMembershipToFamilyMembers(familyId, "FAMILY", expireTime, upgradeType, orderId);
+        log.info("消费达标自动升级全家: familyId={}, triggerUserId={}", familyId, userId);
     }
     }
 
 
     /**
     /**
@@ -1082,6 +1078,7 @@ public class MembershipService implements MembershipServiceInterface {
 
 
     /**
     /**
      * 使会员过期(降级为FREE)
      * 使会员过期(降级为FREE)
+     * 方案B:若用户有家庭,同步降级全家
      */
      */
     public void expireMember(Long userId) {
     public void expireMember(Long userId) {
         User user = userMapper.selectById(userId);
         User user = userMapper.selectById(userId);
@@ -1092,10 +1089,15 @@ public class MembershipService implements MembershipServiceInterface {
         if ("FAMILY".equals(user.getMemberLevel())
         if ("FAMILY".equals(user.getMemberLevel())
                 && user.getMemberExpireTime() != null
                 && user.getMemberExpireTime() != null
                 && user.getMemberExpireTime().before(new Date())) {
                 && user.getMemberExpireTime().before(new Date())) {
-            user.setMemberLevel("FREE");
-            user.setMemberExpireTime(null);
-            user.setUpdatedAt(new Date());
-            userMapper.updateById(user);
+            // 方案B:家庭成员共享会员,到期时全家降级
+            if (user.getFamilyId() != null) {
+                downgradeFamilyMembers(user.getFamilyId());
+            } else {
+                user.setMemberLevel("FREE");
+                user.setMemberExpireTime(null);
+                user.setUpdatedAt(new Date());
+                userMapper.updateById(user);
+            }
         }
         }
     }
     }
 
 

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-e3083bd46d1bb0f416cbc8d03cd5ac006aae318a
+8fd64a255f4f4fa8eb6814e1e322f979292c2af1

+ 2 - 2
cfc-web/package-lock.json

@@ -1,12 +1,12 @@
 {
 {
   "name": "cfc-web",
   "name": "cfc-web",
-  "version": "1.0.1357",
+  "version": "1.0.1358",
   "lockfileVersion": 3,
   "lockfileVersion": 3,
   "requires": true,
   "requires": true,
   "packages": {
   "packages": {
     "": {
     "": {
       "name": "cfc-web",
       "name": "cfc-web",
-      "version": "1.0.1357",
+      "version": "1.0.1358",
       "dependencies": {
       "dependencies": {
         "@wangeditor/editor": "^5.1.23",
         "@wangeditor/editor": "^5.1.23",
         "@wangeditor/editor-for-vue": "^1.0.2",
         "@wangeditor/editor-for-vue": "^1.0.2",