Преглед на файлове

【会员系统】会员权益逻辑调整

wanjun преди 4 месеца
родител
ревизия
938a18069a

+ 36 - 58
PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationMessageViewController.m

@@ -369,36 +369,6 @@ NSPopoverDelegate>
 //    CGRect rect = self.button.frame;
 //    self.bgImg.frame = rect;
     
-    // PDF Reader Pro Lite
-    // 未登录 - 无订阅 - 无AI
-    // 未登录 - 有订阅高级版+有AI序列码
-    // 已登录(未试用过的免费用户+未订阅AI) -  无订阅+无AI旧剩余点数
-    // 已登录(试用到期且未付费用户+未订阅AI) -  无旧订阅+有AI旧剩余点数
-    // 已登录(新的买断会员+有订阅AI) -  无旧订阅+无AI旧剩余点数
-    // 已登录(自动订阅中 + 订阅AI) -  无旧订阅+有AI旧剩余点数
-    // 已登录(订阅中但取消续订用户) -  无旧订阅+无AI旧剩余点数
-    // 已登录(订阅过期用户) -  无旧订阅+无AI旧剩余点数
-    // 已登录(试用过期用户) -  无旧订阅+无AI旧剩余点数
-    
-    // PDF Reader Pro
-    // 未登录 - 标准版+无AI
-    // 未登录 - 高级版(有购买转档包)+有AI序列码
-    // 已登录(未试用过的免费用户+未订阅AI) -  标准版+无AI旧剩余点数
-    // 已登录(新的买断会员+有订阅AI) -  高级版(有升级转档包)+无AI旧剩余点数
-    // 已登录(全平台高级版年订阅自动订阅中 + 订阅AI) -  无旧订阅+有AI旧剩余点数
-    // 已登录(全平台标准版年订阅订阅中但取消续订用户) -  标准版+无AI旧剩余点数
-    // 已登录(订阅过期用户) -  高级版+无AI旧剩余点数
-    
-    // PDF Reader Pro DMG
-    // 未登录 - 无激活+无AI序列码
-    // 未登录 - 有激活标准版+有AI序列码
-    // 未登录 - 有激活高级版+无AI序列码
-    // 已登录(未试用过的免费用户+未订阅AI) -  无激活+无AI序列码
-    // 已登录(新的买断会员+有订阅AI) -  无激活+无AI序列码
-    // 已登录(自动订阅中 + 订阅AI) -  无激活+有AI序列码
-    // 已登录(订阅中但取消续订用户) -  无激活+无AI
-    // 已登录(订阅过期用户) -  无激活+无AI
-    
     totalWidth = 8;
     self.button.hidden = YES;
     self.label.hidden = YES;
@@ -477,14 +447,17 @@ NSPopoverDelegate>
                    [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type13) {
             self.button.title = [NSString stringWithFormat:@" %@ ",NSLocalizedString(@"立即续费", nil)];
         }
+        [self.button setTitleColor:[NSColor whiteColor]];
         self.bgImg.hidden = NO;
         self.button.hidden = NO;
         self.button.frame = CGRectMake(totalWidth, kbottomGap, buttonWidth, self.view.frame.size.height -2 *kbottomGap);
+        CGRect rect = self.button.frame;
         self.bgImg.frame = rect;
         totalWidth+=CGRectGetWidth(self.button.bounds);
         totalWidth+=4;
     }
     if ([KMMemberInfo shared].isLogin) {
+        self.userButton.hidden = NO;
         self.userButton.frame = CGRectMake(totalWidth, 0, userImageWidth, userImageWidth);
         totalWidth += userImageWidth;
         totalWidth += 8;
@@ -701,37 +674,42 @@ NSPopoverDelegate>
 //#endif
 //    
 //#endif
-    
-    if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type1 || 
-        [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type2 ||
-        [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type3 ||
-        [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type4) {
-        if ([KMMemberInfo shared].isLogin) {
-            [[KMProductCompareWC shared] setOrientation:YES];
+    if ([KMMemberInfo shared].isLogin) {
+        [[KMProductCompareWC shared] setOrientation:YES];
+        if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type1) {
+            [[KMProductCompareWC shared] setOrientationType:KMCompareTableTypeTrial];
+        } else if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type3 ||
+                   [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type7 ||
+                   [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type8) {
             [[KMProductCompareWC shared] setOrientationType:KMCompareTableTypeLite_Base];
-            [[KMProductCompareWC shared] showWindow:nil];
-        } else {
-            [KMLoginWindowsController.shared openWindow:^(BOOL success) {
-                if (success) {
-                    [[KMProductCompareWC shared] setOrientation:YES];
-                    [[KMProductCompareWC shared] setOrientationType:KMCompareTableTypeLite_Base];
-                    [[KMProductCompareWC shared] showWindow:nil];
-                }
-            }];
+        } else if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type4 ||
+                   [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type5 ||
+                   [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type9 ||
+                   [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type11 ||
+                   [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type13) {
+            [[KMProductCompareWC shared] setOrientationType:KMCompareTableTypeLite_MacWindows];
         }
-    } else if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type5) {
-        [[KMProductCompareWC shared] setOrientation:NO];
-        [[KMProductCompareWC shared] showWindow:nil];
-    } else if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type6 ||
-               [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type10 ||
-               [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type11) {
-        [[KMProductCompareWC shared] setOrientation:YES];
-        [[KMProductCompareWC shared] setOrientationType:KMCompareTableTypeLite_Base];
-        [[KMProductCompareWC shared] showWindow:nil];
-    } else if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type7) {
-        [[KMProductCompareWC shared] setOrientation:YES];
-        [[KMProductCompareWC shared] setOrientationType:KMCompareTableTypeLite_MacWindows];
         [[KMProductCompareWC shared] showWindow:nil];
+    } else {
+        [KMLoginWindowsController.shared openWindow:^(BOOL success) {
+            if (success) {
+                [[KMProductCompareWC shared] setOrientation:YES];
+                if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type1) {
+                    [[KMProductCompareWC shared] setOrientationType:KMCompareTableTypeTrial];
+                } else if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type3 ||
+                           [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type7 ||
+                           [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type8) {
+                    [[KMProductCompareWC shared] setOrientationType:KMCompareTableTypeLite_Base];
+                } else if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type4 ||
+                           [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type5 ||
+                           [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type9 ||
+                           [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type11 ||
+                           [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type13) {
+                    [[KMProductCompareWC shared] setOrientationType:KMCompareTableTypeLite_MacWindows];
+                }
+                [[KMProductCompareWC shared] showWindow:nil];
+            }
+        }];
     }
 }
 

+ 7 - 3
PDF Office/PDF Master/MemberCenter/Model/KMMemberCenterManager.swift

@@ -531,6 +531,7 @@ class KMMemberCenterManager: NSObject {
             var activeVIP_maxDeviceNum = 0
             var activeVIP_paymentModel = ""
             var activeVIP_isAi = ""
+            var activeVIP_cycle = 0
             if let token = activeVIP_dict["id"] as? String { activeVIP_id = token }
             if let token = activeVIP_dict["userId"] as? String { activeVIP_userId = token }
             if let token = activeVIP_dict["status"] as? Int { activeVIP_status = token }
@@ -542,8 +543,9 @@ class KMMemberCenterManager: NSObject {
             if let token = activeVIP_dict["point"] as? Int { activeVIP_point = token }
             if let token = activeVIP_dict["maxDeviceNum"] as? Int { activeVIP_maxDeviceNum = token }
             if let token = activeVIP_dict["paymentModel"] as? String { activeVIP_paymentModel = token }
-            if let token = activeVIP_dict["isAi"] { activeVIP_isAi = token as! String }
-            let userInfoActiveVIP = KMMemberUserInfoActiveVIP(id: activeVIP_id, userId: activeVIP_userId, status: activeVIP_status, endDate: activeVIP_endDate, payType: activeVIP_payType, productName: activeVIP_productName, levels: activeVIP_levels, platforms: activeVIP_platforms, point: activeVIP_point, maxDeviceNum: activeVIP_maxDeviceNum, paymentModel: activeVIP_paymentModel, isAi: activeVIP_isAi)
+            if let token = activeVIP_dict["isAi"] as? String { activeVIP_isAi = token }
+            if let token = activeVIP_dict["cycle"] as? Int { activeVIP_cycle = token }
+            let userInfoActiveVIP = KMMemberUserInfoActiveVIP(id: activeVIP_id, userId: activeVIP_userId, status: activeVIP_status, endDate: activeVIP_endDate, payType: activeVIP_payType, productName: activeVIP_productName, levels: activeVIP_levels, platforms: activeVIP_platforms, point: activeVIP_point, maxDeviceNum: activeVIP_maxDeviceNum, paymentModel: activeVIP_paymentModel, isAi: activeVIP_isAi, cycle: activeVIP_cycle)
             let activeAI_dict: NSDictionary = result_dict["activeAI"] as? NSDictionary ?? [:]
             var activeAI_id = ""
             var activeAI_userId = ""
@@ -557,6 +559,7 @@ class KMMemberCenterManager: NSObject {
             var activeAI_maxDeviceNum = 0
             var activeAI_paymentModel = ""
             var activeAI_isAi = ""
+            var activeAI_cycle = 0
             if let token = activeAI_dict["id"] as? String { activeAI_id = token }
             if let token = activeAI_dict["userId"] as? String { activeAI_userId = token }
             if let token = activeAI_dict["status"] as? Int { activeAI_status = token }
@@ -569,7 +572,8 @@ class KMMemberCenterManager: NSObject {
             if let token = activeAI_dict["maxDeviceNum"] as? Int { activeAI_maxDeviceNum = token }
             if let token = activeAI_dict["paymentModel"] as? String { activeAI_paymentModel = token }
             if let token = activeAI_dict["isAi"] as? String { activeAI_isAi = token }
-            let userInfoActiveAI = KMMemberUserInfoActiveVIP(id: activeAI_id, userId: activeAI_userId, status: activeAI_status, endDate: activeAI_endDate, payType: activeAI_payType, productName: activeAI_productName, levels: activeAI_levels, platforms: activeAI_platforms, point: activeAI_point, maxDeviceNum: activeAI_maxDeviceNum, paymentModel: activeAI_paymentModel, isAi: activeAI_isAi)
+            if let token = activeAI_dict["cycle"] as? Int { activeAI_cycle = token }
+            let userInfoActiveAI = KMMemberUserInfoActiveVIP(id: activeAI_id, userId: activeAI_userId, status: activeAI_status, endDate: activeAI_endDate, payType: activeAI_payType, productName: activeAI_productName, levels: activeAI_levels, platforms: activeAI_platforms, point: activeAI_point, maxDeviceNum: activeAI_maxDeviceNum, paymentModel: activeAI_paymentModel, isAi: activeAI_isAi, cycle: activeAI_cycle)
 
 
             if let token = result_dict["aiPoint"] { aiPoint = token as! Int }

+ 2 - 1
PDF Office/PDF Master/MemberCenter/Model/KMMemberCenterResult.swift

@@ -199,7 +199,7 @@ class KMMemberUserInfoActiveVIP: NSObject {
     var isAi            : String = "" // 【可选】是否是ai产品(0否1是)
     var cycle           : Int    = 0  // 【必需】订阅周期:1、月(30天);2、季(90天);3、半年(183天);4、年(365天)
 
-    init(id: String = "", userId: String = "", status: Int = 0, endDate: String = "", payType: Int = 0, productName: String = "", levels: String = "", platforms: String = "", point: Int = 0, maxDeviceNum: Int = 0, paymentModel: String = "", isAi: String = "") {
+    init(id: String = "", userId: String = "", status: Int = 0, endDate: String = "", payType: Int = 0, productName: String = "", levels: String = "", platforms: String = "", point: Int = 0, maxDeviceNum: Int = 0, paymentModel: String = "", isAi: String = "", cycle: Int = 0) {
         self.id = id
         self.userId = userId
         self.status = status
@@ -212,6 +212,7 @@ class KMMemberUserInfoActiveVIP: NSObject {
         self.maxDeviceNum = maxDeviceNum
         self.paymentModel = paymentModel
         self.isAi = isAi
+        self.cycle = cycle
     }
 }
 

+ 84 - 84
PDF Office/PDF Master/MemberCenter/ViewController/KMUserInfoViewController.swift

@@ -74,7 +74,6 @@ class KMUserInfoViewController: NSViewController {
     
     private var viewModel = KMUserInfoVCModel()
     private var cancellables = Set<AnyCancellable>()
-    private var userState: KMUserState = .unPay_UnTrial
 
     override func viewDidLoad() {
         super.viewDidLoad()
@@ -82,7 +81,6 @@ class KMUserInfoViewController: NSViewController {
         
         self.view.wantsLayer = true
         self.view.layer?.backgroundColor = .white
-        userState = viewModel.refreshUserState()
         
         bindViewModel()
         languageLocalized()
@@ -103,57 +101,43 @@ class KMUserInfoViewController: NSViewController {
         } else {
             closeAccountLabel.stringValue = NSLocalizedString("Remove Account", tableName: "MemberCenterLocalizable", comment: "")
         }
-
         if KMMemberInfo.shared.vip_maxDeviceNum == 1 {
             number4Label.stringValue = String.localizedStringWithFormat(NSLocalizedString("%d devices", tableName: "MemberCenterLocalizable", comment: ""), KMMemberInfo.shared.vip_maxDeviceNum)
         } else {
             number4Label.stringValue = String.localizedStringWithFormat(NSLocalizedString("%d devices", tableName: "MemberCenterLocalizable", comment: ""), KMMemberInfo.shared.vip_maxDeviceNum)
         }
         if KMMemberInfo.shared.vip_levels == "2" {
+            number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
             number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
+            number3Label.stringValue = NSLocalizedString("Platform", tableName: "MemberCenterLocalizable", comment: "")
         } else if KMMemberInfo.shared.vip_levels == "3" {
+            number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
             number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
+            number3Label.stringValue = NSLocalizedString("Platform", tableName: "MemberCenterLocalizable", comment: "")
         } else {
-            number2Label.stringValue = NSLocalizedString("Benefits of Functions", tableName: "MemberCenterLocalizable", comment: "")
+            number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
+            number2Label.stringValue = NSLocalizedString("Benefits of functions", tableName: "MemberCenterLocalizable", comment: "")
+            number3Label.stringValue = NSLocalizedString("All-platform available", tableName: "MemberCenterLocalizable", comment: "")
         }
-        if KMMemberInfo.shared.vip_paymentModel == "2" {
+        if KMMemberInfo.shared.vip_paymentModel == "2" && KMMemberInfo.shared.vip_levels != "1" {
             lockedLabel.stringValue = NSLocalizedString("Permanent Plan", tableName: "MemberCenterLocalizable", comment: "")
-        } else if KMMemberInfo.shared.vip_paymentModel == "1" {
+        } else if KMMemberInfo.shared.vip_paymentModel == "1" && KMMemberInfo.shared.vip_levels != "1" {
             lockedLabel.stringValue = NSLocalizedString("Annual Plan", tableName: "MemberCenterLocalizable", comment: "")
         } else {
             lockedLabel.stringValue = NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "")
         }
-        if userState == .unPay_UnTrial {
-            number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
-            number3Label.stringValue = NSLocalizedString("All-platform Available", tableName: "MemberCenterLocalizable", comment: "")
-            number5Label.stringValue = NSLocalizedString("Devices Access", tableName: "MemberCenterLocalizable", comment: "")
-            buyNow1Label.stringValue = NSLocalizedString("Buy Now", tableName: "MemberCenterLocalizable", comment: "")
-            buyNow2Label.stringValue = NSLocalizedString("7-Day Free Trial", tableName: "MemberCenterLocalizable", comment: "")
-        } else if userState == .unPay_UnTrial_old {
-            number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
-            number3Label.stringValue = NSLocalizedString("Platform", tableName: "MemberCenterLocalizable", comment: "")
-            number5Label.stringValue = NSLocalizedString("Devices Access", tableName: "MemberCenterLocalizable", comment: "")
-            buyNow1Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
-        } else if userState == .permanentAccount {
-            number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
-            number3Label.stringValue = NSLocalizedString("Platform", tableName: "MemberCenterLocalizable", comment: "")
-            number5Label.stringValue = NSLocalizedString("Devices Access", tableName: "MemberCenterLocalizable", comment: "")
-            buyNow1Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
-        } else if userState == .subscribe {
-            number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
-            number3Label.stringValue = NSLocalizedString("Platform", tableName: "MemberCenterLocalizable", comment: "")
-            number5Label.stringValue = NSLocalizedString("Devices Access", tableName: "MemberCenterLocalizable", comment: "")
-            buyNow1Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
-        } else if userState == .unAutomatic_RemainValid {
-            number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
-            number3Label.stringValue = NSLocalizedString("Platform", tableName: "MemberCenterLocalizable", comment: "")
-            number5Label.stringValue = NSLocalizedString("Devices Access", tableName: "MemberCenterLocalizable", comment: "")
-            buyNow3Label.stringValue = NSLocalizedString("Renew now", tableName: "MemberCenterLocalizable", comment: "")
-        } else if userState == .expired {
-            number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
-            number3Label.stringValue = NSLocalizedString("All-platform Available", tableName: "MemberCenterLocalizable", comment: "")
-            number5Label.stringValue = NSLocalizedString("Devices Access", tableName: "MemberCenterLocalizable", comment: "")
-            buyNow2Label.stringValue = NSLocalizedString("Renew now", tableName: "MemberCenterLocalizable", comment: "")
+        number5Label.stringValue = NSLocalizedString("Devices Access", tableName: "MemberCenterLocalizable", comment: "")
+        if KMMemberInfo.shared.userScenarioType == .lite_type1 || KMMemberInfo.shared.userScenarioType == .lite_type9 {
+            buyNow1Label.stringValue = NSLocalizedString("开通会员", tableName: "MemberCenterLocalizable", comment: "")
+            buyNow2Label.stringValue = NSLocalizedString("立即试用", tableName: "MemberCenterLocalizable", comment: "")
+        } else if KMMemberInfo.shared.userScenarioType == .lite_type3 || KMMemberInfo.shared.userScenarioType == .lite_type11 {
+            buyNow3Label.stringValue = NSLocalizedString("开通会员", tableName: "MemberCenterLocalizable", comment: "")
+        } else if KMMemberInfo.shared.userScenarioType == .lite_type5 {
+            buyNow3Label.stringValue = NSLocalizedString("Upgrade", tableName: "MemberCenterLocalizable", comment: "")
+        } else if KMMemberInfo.shared.userScenarioType == .lite_type7 ||
+                    KMMemberInfo.shared.userScenarioType == .lite_type8 ||
+                    KMMemberInfo.shared.userScenarioType == .lite_type13 {
+            buyNow3Label.stringValue = NSLocalizedString("续费", tableName: "MemberCenterLocalizable", comment: "")
         }
     }
     
@@ -183,10 +167,8 @@ class KMUserInfoViewController: NSViewController {
         buyNow3ImageView.image = NSImage(named: "ButtonBackgroundImage2")
         buyNow1Label.textColor = NSColor(named: "FFFFFF")
         buyNow1Label.font = NSFont.SFProTextRegularFont(14)
-        buyNow1ImageView.image = NSImage(named: "BuyNewArrowImage1")
         buyNow2Label.textColor = NSColor(named: "FFFFFF")
         buyNow2Label.font = NSFont.SFProTextRegularFont(14)
-        buyNow2ImageView.image = NSImage(named: "BuyNewArrowImage1")
         buyNow3Label.textColor = NSColor(named: "000000")
         buyNow3Label.font = NSFont.SFProTextRegularFont(14)
         accountCenterBox.borderColor = NSColor(named: "3091FF") ?? .blue
@@ -201,59 +183,69 @@ class KMUserInfoViewController: NSViewController {
         closeAccountLabel.font = NSFont.SFProTextRegularFont(14)
         closeAccountImageView.image = NSImage(named: "CloseAccountImage")
         
-        if userState == .unPay_UnTrial {
+        if KMMemberInfo.shared.userScenarioType == .lite_type1 ||
+            KMMemberInfo.shared.userScenarioType == .lite_type2 ||
+            KMMemberInfo.shared.userScenarioType == .lite_type3 ||
+            KMMemberInfo.shared.userScenarioType == .lite_type9 ||
+            KMMemberInfo.shared.userScenarioType == .lite_type10 ||
+            KMMemberInfo.shared.userScenarioType == .lite_type11 {
             lockedImageView.image = NSImage(named: "LockedImage")
             centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
             rightsBox.fillColor = NSColor(named: "7094F6_0.1") ?? .white
             number1ImageView.isHidden = true
             number1Label.isHidden = false
-            buyBox.contentView = buyView1
-            buyNow1ImageView.isHidden = false
-            buyNow2ImageView.isHidden = false
-            arrow1ImageView.image = NSImage(named: "BuyNewArrowImage1")
-            arrow2ImageView.image = NSImage(named: "BuyNewArrowImage1")
-        } else if userState == .unPay_UnTrial_old {
-            lockedImageView.image = NSImage(named: "UpgradeImage2")
-            centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
-            rightsBox.fillColor = NSColor(named: "7094F6_0.1") ?? .white
-            number1ImageView.isHidden = true
-            number1Label.isHidden = false
-            buyBox.contentView = buyView2
-            buyNow1ImageView.isHidden = false
-            buyNow2ImageView.isHidden = false
-        } else if userState == .permanentAccount {
+            if KMMemberInfo.shared.userScenarioType == .lite_type1 ||
+                KMMemberInfo.shared.userScenarioType == .lite_type9 {
+                buyBox.contentView = buyView1
+                buyNow1ImageView.isHidden = false
+                buyNow2ImageView.isHidden = false
+                arrow1ImageView.image = NSImage(named: "BuyNewArrowImage1")
+                arrow2ImageView.image = NSImage(named: "BuyNewArrowImage1")
+            } else if KMMemberInfo.shared.userScenarioType == .lite_type3 ||
+                        KMMemberInfo.shared.userScenarioType == .lite_type11 {
+                buyNow3Label.textColor = NSColor(named: "FFFFFF")
+                buyBox.contentView = buyView2
+                buyNow3ImageView.isHidden = false
+                arrow3ImageView.image = NSImage(named: "BuyNewArrowImage1")
+            }
+        } else if KMMemberInfo.shared.userScenarioType == .lite_type4 ||
+                    KMMemberInfo.shared.userScenarioType == .lite_type5 ||
+                    KMMemberInfo.shared.userScenarioType == .lite_type6 ||
+                    KMMemberInfo.shared.userScenarioType == .lite_type12 {
+            membershipLabel.textColor = NSColor(named: "FFFFFF")
+            number2Label.textColor = NSColor(named: "FFFFFF")
+            number3Label.textColor = NSColor(named: "FFFFFF")
+            number4Label.textColor = NSColor(named: "FFFFFF")
+            number5Label.textColor = NSColor(named: "FFFFFF")
             lockedImageView.image = NSImage(named: "UpgradeImage2")
             centerBackgroud.image = NSImage(named: "ButtonBackgroundImage4")
             rightsBox.fillColor = NSColor(named: "FFFFFF_0.2") ?? .white
             number1ImageView.isHidden = false
             number1Label.isHidden = true
+            if KMMemberInfo.shared.userScenarioType == .lite_type5 {
+                buyBox.contentView = buyView2
+                buyNow3ImageView.isHidden = true
+                arrow3ImageView.image = NSImage(named: "BuyNewArrowImage2")
+            }
+        } else if KMMemberInfo.shared.userScenarioType == .lite_type7 {
+            lockedImageView.image = NSImage(named: "LockedImage")
+            centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
+            rightsBox.fillColor = NSColor(named: "7094F6_0.1") ?? .white
+            number1ImageView.isHidden = true
+            number1Label.isHidden = false
             buyBox.contentView = buyView2
+            buyNow3ImageView.isHidden = false
             arrow3ImageView.image = NSImage(named: "BuyNewArrowImage1")
-        } else if userState == .subscribe {
-            lockedImageView.image = NSImage(named: "UpgradeImage2")
-            centerBackgroud.image = NSImage(named: "ButtonBackgroundImage4")
-            rightsBox.fillColor = NSColor(named: "FFFFFF_0.2") ?? .white
-            number1ImageView.isHidden = false
-            number1Label.isHidden = true
-            buyBox.contentView = buyView2
-            buyNow3Box.fillColor = .white
-            buyNow3ImageView.isHidden = true
-            arrow3ImageView.image = NSImage(named: "BuyNewArrowImage2")
-        }else if userState == .unAutomatic_RemainValid {
+        } else if KMMemberInfo.shared.userScenarioType == .lite_type8 ||
+                    KMMemberInfo.shared.userScenarioType == .lite_type13 {
             lockedImageView.image = NSImage(named: "UpgradeImage2")
             centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
-            rightsBox.fillColor = NSColor(named: "FFFFFF_0.2") ?? .white
-            number1ImageView.isHidden = false
-            number1Label.isHidden = true
-            buyBox.isHidden = true
-        } else if userState == .expired {
-            lockedImageView.image = NSImage(named: "LockedImage")
-            centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
             rightsBox.fillColor = NSColor(named: "7094F6_0.1") ?? .white
             number1ImageView.isHidden = true
             number1Label.isHidden = false
             buyBox.contentView = buyView2
-            buyNow3ImageView.isHidden = true
+            buyNow3ImageView.isHidden = false
+            arrow3ImageView.image = NSImage(named: "BuyNewArrowImage1")
         }
         let platforms = viewModel.getPlatformsImages()
         if platforms.count == 4 {
@@ -286,9 +278,9 @@ class KMUserInfoViewController: NSViewController {
         }
         buyNow1Box.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
             guard let self = self else { return }
-            if self.userState == .unPay_UnTrial {
+            if KMMemberInfo.shared.userScenarioType == .lite_type1 {
                 self.viewModel.skipCompare(.lite_Base)
-            } else if self.userState == .unPay_UnTrial_old {
+            } else if KMMemberInfo.shared.userScenarioType == .lite_type9 {
                 self.viewModel.skipCompare(.lite_MacWindows)
             }
         }
@@ -303,24 +295,32 @@ class KMUserInfoViewController: NSViewController {
         }
         buyNow2Box.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
             guard let self = self else { return }
-            if self.userState == .unPay_UnTrial {
+            if KMMemberInfo.shared.userScenarioType == .lite_type1 || KMMemberInfo.shared.userScenarioType == .lite_type9 {
                 self.viewModel.skipCompare(.trial)
             }
         }
         
         buyNow3Box.moveCallback =  { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
             guard let self = self else { return }
+            if KMMemberInfo.shared.userScenarioType == .lite_type3 ||
+                KMMemberInfo.shared.userScenarioType == .lite_type11 {
+                if mouseEntered {
+                    self.buyNow3ImageView.image = NSImage(named: "ButtonBackgroundImage2_Hov")
+                } else {
+                    self.buyNow3ImageView.image = NSImage(named: "ButtonBackgroundImage2")
+                }
+            }
         }
         buyNow3Box.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
             guard let self = self else { return }
-            if self.userState == .permanentAccount {
-                self.viewModel.skipCompare(.lite_MacWindows)
-            } else if self.userState == .subscribe {
-                self.viewModel.skipCompare(.lite_MacWindows)
-            } else if self.userState == .unAutomatic_RemainValid {
-                self.viewModel.skipCompare(.lite_Base)
-            } else if self.userState == .expired {
+            if KMMemberInfo.shared.userScenarioType == .lite_type3 ||
+                KMMemberInfo.shared.userScenarioType == .lite_type7 ||
+                KMMemberInfo.shared.userScenarioType == .lite_type8 {
                 self.viewModel.skipCompare(.lite_Base)
+            } else if KMMemberInfo.shared.userScenarioType == .lite_type5 ||
+                        KMMemberInfo.shared.userScenarioType == .lite_type11 ||
+                        KMMemberInfo.shared.userScenarioType == .lite_type13 {
+                self.viewModel.skipCompare(.lite_MacWindows)
             }
         }
         

+ 2 - 41
PDF Office/PDF Master/MemberCenter/ViewModel/KMUserInfoVCModel.swift

@@ -8,15 +8,6 @@
 import Foundation
 import Combine
 
-@objc enum KMUserState : Int {
-    case unPay_UnTrial = 0      // 未付费且未试用
-    case unPay_UnTrial_old      // 未付费且未试用 但本机有权益
-    case permanentAccount       // 永久账户用户 买断
-    case subscribe              // 自动订阅中
-    case unAutomatic_RemainValid// 取消自动续费,但仍在有效期内
-    case expired                // 已到期用户
-}
-
 @objc enum memberEquityType : Int {
     case advancedSixMonthPlan = 0      // 高级版半年订阅
     case advancedYearMonthPlan      // 高级版年订阅
@@ -47,36 +38,6 @@ class KMUserInfoVCModel: ObservableObject {
         }
     }
     
-    /**
-     @abstract 刷新用户状态 0(未付费且未试用)、1(永久账户用户)、2(取消自动续费,但仍在有效期内)、3(已到期用户)
-     @param
-     */
-    func refreshUserState() -> KMUserState {
-        let dateFormatter = DateFormatter()
-        dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
-        var startTime = Date()
-        if KMMemberInfo.shared.vip_endDate.count > 0 {
-            startTime = dateFormatter.date(from: KMMemberInfo.shared.vip_endDate)!
-        }
-        let currentTime = Date()
-
-        if KMMemberInfo.shared.canTrail && KMMemberInfo.shared.vip_levels == "1" {
-            if IAPProductsManager.default().isAvailableAllFunction() {
-                return .unPay_UnTrial_old
-            }
-            return .unPay_UnTrial
-        } else if KMMemberInfo.shared.vip_paymentModel == "2" {
-            return .permanentAccount
-        } else if KMMemberInfo.shared.vip_status == 1 && KMMemberInfo.shared.vip_payType == 1 {
-            return .subscribe
-        } else if (currentTime >= startTime) && (KMMemberInfo.shared.vip_payType == 0) {
-            return .unAutomatic_RemainValid
-        } else if (currentTime < startTime) && (KMMemberInfo.shared.vip_status == 2) {
-            return .expired
-        }
-        return .unPay_UnTrial
-    }
-    
     /**
      @abstract 根据用户支持的平台返回外部视图需要的平台图片数组
      @param
@@ -84,8 +45,8 @@ class KMUserInfoVCModel: ObservableObject {
     func getPlatformsImages() -> [NSImage] {
         var images: [NSImage] = []
         for platform in userPlatforms() {
-            if refreshUserState() == .permanentAccount ||
-                refreshUserState() == .unAutomatic_RemainValid {
+            if KMMemberInfo.shared.userScenarioType == .lite_type4 ||
+                KMMemberInfo.shared.userScenarioType == .lite_type5 {
                 if platform == "mac" {
                     images.append(NSImage(named: "MacOSPlatformImage2")!)
                 } else if platform == "ios" {