Browse Source

【会员系统】AppStore版本会员权益拆分

wanjun 4 months ago
parent
commit
4c60869c08

+ 19 - 25
PDF Office/PDF Master/MemberCenter/Model/KMMemberInfo.swift

@@ -18,10 +18,13 @@ import Cocoa
     case lite_type7     // 免费版 无旧买断 会员到期 (右上角导航栏按钮 - “登录领福利” + 续费)
     case lite_type8     // 免费版 无旧买断 订阅中取消 (右上角导航栏按钮 - “登录领福利” + 续费)
     case lite_type9     // 免费版 有旧买断 免费未试用 (右上角导航栏按钮 - “登录领福利” + “升级至Pro” + 立即试用)
-    case lite_type10     // 免费版 有旧买断 免费试用中 (右上角导航栏按钮 - “登录领福利”)
-    case lite_type11     // 免费版 有旧买断 试用过期或取消 (右上角导航栏按钮 - “登录领福利” + 开通会员)
-    case lite_type12     // 免费版 有旧买断 全平台高级版年订阅 (右上角导航栏按钮 - “登录领福利”)
-    case lite_type13     // 免费版 有旧买断 订阅中取消 (右上角导航栏按钮 - “登录领福利” + 续费)
+    case lite_type10    // 免费版 有旧买断 免费试用中 (右上角导航栏按钮 - “登录领福利”)
+    case lite_type11    // 免费版 有旧买断 试用过期或取消 (右上角导航栏按钮 - “登录领福利” + 开通会员)
+    case lite_type12    // 免费版 有旧买断 全平台高级版年订阅 (右上角导航栏按钮 - “登录领福利”)
+    case lite_type13    // 免费版 有旧买断 订阅中取消 (右上角导航栏按钮 - “登录领福利” + 续费)
+    case pro_type1      // 付费版 有旧PDF To Office (右上角导航栏按钮 - “登录领福利” + 升级(全平台))
+    case pro_type2      // 付费版 无旧PDF To Office (右上角导航栏按钮 - “登录领福利” + 升级(全平台/高级版永久))
+    case pro_type3      // 付费版 无旧PDF To Office 高级版永久 (右上角导航栏按钮 - Info + 升级(全平台))
 }
 
 // 当前权益类型
@@ -241,20 +244,6 @@ import Cocoa
             }
 #else
     // AppStore 免费版本
-//        case lite_type1 = 0 // 免费版 无旧买断 免费未试用 (右上角导航栏按钮 - “登录领福利” + “试用”)
-//        case lite_type2     // 免费版 无旧买断 免费试用中 (右上角导航栏按钮 - “登录领福利”)
-//        case lite_type3     // 免费版 无旧买断 试用过期或取消 (右上角导航栏按钮 - “登录领福利” + 开通会员)
-//        case lite_type4     // 免费版 无旧买断 可升级订阅 (右上角导航栏按钮 - “登录领福利”)
-//        case lite_type5     // 免费版 无旧买断 多平台永久 (右上角导航栏按钮 - “登录领福利” + 升级全平台)
-//        case lite_type6     // 免费版 无旧买断 全平台高级年订阅 (右上角导航栏按钮 - “登录领福利”)
-//        case lite_type7     // 免费版 无旧买断 会员到期 (右上角导航栏按钮 - “登录领福利” + 续费)
-//        case lite_type8     // 免费版 无旧买断 订阅中取消 (右上角导航栏按钮 - “登录领福利” + 续费)
-//        case lite_type9     // 免费版 有旧买断 免费未试用 (右上角导航栏按钮 - “登录领福利” + “升级至Pro” + 立即试用)
-//        case lite_type10     // 免费版 有旧买断 免费试用中 (右上角导航栏按钮 - “登录领福利”)
-//        case lite_type11     // 免费版 有旧买断 试用过期或取消 (右上角导航栏按钮 - “登录领福利” + 开通会员)
-//        case lite_type12     // 免费版 有旧买断 全平台高级版年订阅 (右上角导航栏按钮 - “登录领福利”)
-//        case lite_type13     // 免费版 有旧买断 订阅中取消 (右上角导航栏按钮 - “登录领福利” + 续费)
-
             if IAPProductsManager.default().allAccessProduct.isSubscribed == true {
                 // 有旧买断
                 if KMMemberInfo.shared.canTrail {
@@ -264,15 +253,16 @@ import Cocoa
                     return .lite_type10
                 } else if KMMemberInfo.shared.vip_status == 4 {
                     return .lite_type11
-                } else if KMMemberInfo.shared.vip_status == 1 && KMMemberInfo.shared.vip_payType == 0 {
-                    return .lite_type13
                 }
                 if KMMemberInfo.shared.vip_paymentModel == "1" && KMMemberInfo.shared.vip_cycle == 4 && platformsArray.count == 4 {
                     return .lite_type12
                 } 
+                if KMMemberInfo.shared.vip_paymentModel == "1" && KMMemberInfo.shared.vip_payType == 0 {
+                    return .lite_type13
+                }
             } else {
                 // 无旧买断
-                if KMMemberInfo.shared.canTrail {
+                if KMMemberInfo.shared.canTrail && KMMemberInfo.shared.vip_levels == "1" {
                     return .lite_type1
                 }
                 if KMMemberInfo.shared.vip_status == 3 {
@@ -281,7 +271,7 @@ import Cocoa
                     return .lite_type3
                 } else if KMMemberInfo.shared.vip_status == 2 {
                     return .lite_type7
-                } else if KMMemberInfo.shared.vip_status == 1 && KMMemberInfo.shared.vip_payType == 0 {
+                } else if KMMemberInfo.shared.vip_paymentModel == "1" && KMMemberInfo.shared.vip_payType == 0 {
                     return .lite_type8
                 }
                 if KMMemberInfo.shared.vip_paymentModel == "2" {
@@ -297,10 +287,14 @@ import Cocoa
 #endif
 #else
     // AppStore 付费版
-            if KMMemberInfo.shared.isLogin {
-                
+            if IAPProductsManager.default().pdfToOfficeProduct.isSubscribed == true {
+                return .pro_type1
             } else {
-                
+                if KMMemberInfo.shared.vip_paymentModel == "2" {
+                    return .pro_type3
+                } else {
+                    return .pro_type2
+                }
             }
 #endif
             return .lite_type1

+ 28 - 6
PDF Office/PDF Master/MemberCenter/ViewController/KMUserInfoViewController.swift

@@ -132,7 +132,10 @@ class KMUserInfoViewController: NSViewController {
             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 {
+        } else if KMMemberInfo.shared.userScenarioType == .lite_type5 ||
+                    KMMemberInfo.shared.userScenarioType == .pro_type1 ||
+                    KMMemberInfo.shared.userScenarioType == .pro_type2 ||
+                    KMMemberInfo.shared.userScenarioType == .pro_type3 {
             buyNow3Label.stringValue = NSLocalizedString("Upgrade", tableName: "MemberCenterLocalizable", comment: "")
         } else if KMMemberInfo.shared.userScenarioType == .lite_type7 ||
                     KMMemberInfo.shared.userScenarioType == .lite_type8 ||
@@ -182,6 +185,7 @@ class KMUserInfoViewController: NSViewController {
         closeAccountLabel.textColor = NSColor(named: "065CBC")
         closeAccountLabel.font = NSFont.SFProTextRegularFont(14)
         closeAccountImageView.image = NSImage(named: "CloseAccountImage")
+        buyNow3Box.fillColor = NSColor(named: "FFFFFF") ?? .white
         
         if KMMemberInfo.shared.userScenarioType == .lite_type1 ||
             KMMemberInfo.shared.userScenarioType == .lite_type2 ||
@@ -211,7 +215,10 @@ class KMUserInfoViewController: NSViewController {
         } else if KMMemberInfo.shared.userScenarioType == .lite_type4 ||
                     KMMemberInfo.shared.userScenarioType == .lite_type5 ||
                     KMMemberInfo.shared.userScenarioType == .lite_type6 ||
-                    KMMemberInfo.shared.userScenarioType == .lite_type12 {
+                    KMMemberInfo.shared.userScenarioType == .lite_type12 ||
+                    KMMemberInfo.shared.userScenarioType == .pro_type1 ||
+                    KMMemberInfo.shared.userScenarioType == .pro_type2 ||
+                    KMMemberInfo.shared.userScenarioType == .pro_type3 {
             membershipLabel.textColor = NSColor(named: "FFFFFF")
             number2Label.textColor = NSColor(named: "FFFFFF")
             number3Label.textColor = NSColor(named: "FFFFFF")
@@ -222,7 +229,10 @@ class KMUserInfoViewController: NSViewController {
             rightsBox.fillColor = NSColor(named: "FFFFFF_0.2") ?? .white
             number1ImageView.isHidden = false
             number1Label.isHidden = true
-            if KMMemberInfo.shared.userScenarioType == .lite_type5 {
+            if KMMemberInfo.shared.userScenarioType == .lite_type5 ||
+                KMMemberInfo.shared.userScenarioType == .pro_type1 ||
+                KMMemberInfo.shared.userScenarioType == .pro_type2 ||
+                KMMemberInfo.shared.userScenarioType == .pro_type3 {
                 buyBox.contentView = buyView2
                 buyNow3ImageView.isHidden = true
                 arrow3ImageView.image = NSImage(named: "BuyNewArrowImage2")
@@ -235,17 +245,24 @@ class KMUserInfoViewController: NSViewController {
             number1Label.isHidden = false
             buyBox.contentView = buyView2
             buyNow3ImageView.isHidden = false
+            buyNow3Label.textColor = NSColor(named: "FFFFFF")
             arrow3ImageView.image = NSImage(named: "BuyNewArrowImage1")
         } else if KMMemberInfo.shared.userScenarioType == .lite_type8 ||
                     KMMemberInfo.shared.userScenarioType == .lite_type13 {
+            membershipLabel.textColor = NSColor(named: "FFFFFF")
+            number1Label.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: "ButtonBackgroundImage5")
             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")
+//            buyBox.contentView = buyView2
+//            buyNow3ImageView.isHidden = true
+//            arrow3ImageView.image = NSImage(named: "BuyNewArrowImage2")
         }
         let platforms = viewModel.getPlatformsImages()
         if platforms.count == 4 {
@@ -321,6 +338,11 @@ class KMUserInfoViewController: NSViewController {
                         KMMemberInfo.shared.userScenarioType == .lite_type11 ||
                         KMMemberInfo.shared.userScenarioType == .lite_type13 {
                 self.viewModel.skipCompare(.lite_MacWindows)
+            } else if KMMemberInfo.shared.userScenarioType == .pro_type1 ||
+                        KMMemberInfo.shared.userScenarioType == .pro_type3 {
+                self.viewModel.skipCompare(.pro_Advanced)
+            } else if KMMemberInfo.shared.userScenarioType == .pro_type2 {
+                self.viewModel.skipCompare(.pro_Base)
             }
         }
         

+ 19 - 19
PDF Office/PDF Master/MemberCenter/ViewController/KMUserInfoViewController.xib

@@ -415,28 +415,28 @@
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
             <subviews>
                 <customView translatesAutoresizingMaskIntoConstraints="NO" id="ifF-hz-xZ3">
-                    <rect key="frame" x="98" y="0.0" width="178" height="39"/>
+                    <rect key="frame" x="94" y="0.0" width="186" height="39"/>
                     <subviews>
                         <box boxType="custom" borderWidth="0.0" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="ASn-b5-7AK" customClass="KMBox" customModule="PDF_Reader_Pro" customModuleProvider="target">
-                            <rect key="frame" x="0.0" y="0.0" width="77" height="39"/>
+                            <rect key="frame" x="0.0" y="0.0" width="81" height="39"/>
                             <view key="contentView" id="ZXo-Sc-FgD">
-                                <rect key="frame" x="0.0" y="0.0" width="77" height="39"/>
+                                <rect key="frame" x="0.0" y="0.0" width="81" height="39"/>
                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                 <subviews>
                                     <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="9G5-Lj-IYo">
-                                        <rect key="frame" x="0.0" y="0.0" width="77" height="39"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="81" height="39"/>
                                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="7cy-fL-Pht"/>
                                     </imageView>
                                     <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="6va-5C-3xj">
-                                        <rect key="frame" x="10" y="12" width="37" height="16"/>
-                                        <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="xAk-F7-0sK">
+                                        <rect key="frame" x="10" y="12" width="41" height="16"/>
+                                        <textFieldCell key="cell" lineBreakMode="clipping" alignment="center" title="Label" id="xAk-F7-0sK">
                                             <font key="font" metaFont="system"/>
                                             <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
                                             <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                         </textFieldCell>
                                     </textField>
                                     <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="YXg-Wy-AlP">
-                                        <rect key="frame" x="49" y="12" width="16" height="16"/>
+                                        <rect key="frame" x="53" y="12" width="16" height="16"/>
                                         <constraints>
                                             <constraint firstAttribute="width" constant="16" id="gRO-vd-TUw"/>
                                             <constraint firstAttribute="height" constant="16" id="tQ7-Pl-y0s"/>
@@ -460,25 +460,25 @@
                             </constraints>
                         </box>
                         <box boxType="custom" borderWidth="0.0" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="DYW-qh-I2i" customClass="KMBox" customModule="PDF_Reader_Pro" customModuleProvider="target">
-                            <rect key="frame" x="101" y="0.0" width="77" height="39"/>
+                            <rect key="frame" x="105" y="0.0" width="81" height="39"/>
                             <view key="contentView" id="Mxw-Dr-xL2">
-                                <rect key="frame" x="0.0" y="0.0" width="77" height="39"/>
+                                <rect key="frame" x="0.0" y="0.0" width="81" height="39"/>
                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                 <subviews>
                                     <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="2ad-iW-IbH">
-                                        <rect key="frame" x="0.0" y="0.0" width="77" height="39"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="81" height="39"/>
                                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="yTz-cf-0Xc"/>
                                     </imageView>
                                     <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="hWh-o1-eZT">
-                                        <rect key="frame" x="10" y="12" width="37" height="16"/>
-                                        <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="Wdy-30-3d8">
+                                        <rect key="frame" x="10" y="12" width="41" height="16"/>
+                                        <textFieldCell key="cell" lineBreakMode="clipping" alignment="center" title="Label" id="Wdy-30-3d8">
                                             <font key="font" metaFont="system"/>
                                             <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
                                             <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                         </textFieldCell>
                                     </textField>
                                     <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="ZjS-Jq-t3d">
-                                        <rect key="frame" x="49" y="12" width="16" height="16"/>
+                                        <rect key="frame" x="53" y="12" width="16" height="16"/>
                                         <constraints>
                                             <constraint firstAttribute="width" constant="16" id="pkl-u5-aC4"/>
                                             <constraint firstAttribute="height" constant="16" id="yEi-Vn-kGa"/>
@@ -526,25 +526,25 @@
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
             <subviews>
                 <box boxType="custom" borderWidth="0.0" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="AGm-Dz-UgL" customClass="KMBox" customModule="PDF_Reader_Pro" customModuleProvider="target">
-                    <rect key="frame" x="149" y="0.0" width="77" height="39"/>
+                    <rect key="frame" x="147" y="0.0" width="81" height="39"/>
                     <view key="contentView" id="Mmy-vo-I4w">
-                        <rect key="frame" x="0.0" y="0.0" width="77" height="39"/>
+                        <rect key="frame" x="0.0" y="0.0" width="81" height="39"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="xbI-Sr-E2G">
-                                <rect key="frame" x="0.0" y="0.0" width="77" height="39"/>
+                                <rect key="frame" x="0.0" y="0.0" width="81" height="39"/>
                                 <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="5ot-4m-K7m"/>
                             </imageView>
                             <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="t8m-r3-wJE">
-                                <rect key="frame" x="10" y="12" width="37" height="16"/>
-                                <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="fcE-yv-vuf">
+                                <rect key="frame" x="10" y="12" width="41" height="16"/>
+                                <textFieldCell key="cell" lineBreakMode="clipping" alignment="center" title="Label" id="fcE-yv-vuf">
                                     <font key="font" metaFont="system"/>
                                     <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
                                     <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                 </textFieldCell>
                             </textField>
                             <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="kWk-i6-sxc">
-                                <rect key="frame" x="49" y="12" width="16" height="16"/>
+                                <rect key="frame" x="53" y="12" width="16" height="16"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="16" id="PDg-mK-ZTN"/>
                                     <constraint firstAttribute="width" constant="16" id="nif-Hm-u7W"/>

+ 8 - 1
PDF Office/PDF Master/MemberCenter/ViewModel/KMUserInfoVCModel.swift

@@ -46,7 +46,14 @@ class KMUserInfoVCModel: ObservableObject {
         var images: [NSImage] = []
         for platform in userPlatforms() {
             if KMMemberInfo.shared.userScenarioType == .lite_type4 ||
-                KMMemberInfo.shared.userScenarioType == .lite_type5 {
+                KMMemberInfo.shared.userScenarioType == .lite_type5 ||
+                KMMemberInfo.shared.userScenarioType == .lite_type6 ||
+                KMMemberInfo.shared.userScenarioType == .lite_type8 ||
+                KMMemberInfo.shared.userScenarioType == .lite_type12 ||
+                KMMemberInfo.shared.userScenarioType == .lite_type13 ||
+                KMMemberInfo.shared.userScenarioType == .pro_type1 ||
+                KMMemberInfo.shared.userScenarioType == .pro_type2 ||
+                KMMemberInfo.shared.userScenarioType == .pro_type3 {
                 if platform == "mac" {
                     images.append(NSImage(named: "MacOSPlatformImage2")!)
                 } else if platform == "ios" {