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

【订阅】移除服务器返回数据中的null数据

lizhe преди 1 година
родител
ревизия
04fc339a89

+ 48 - 8
PDF Office/PDF Master/Class/KMLightMember/Cache/KMLightMemberCache.swift

@@ -28,15 +28,22 @@ class KMLightMemberCache: NSObject {
         }
         
         //获取有用的参数
-        let dic: NSMutableDictionary = [:]
-        for key in data.allKeys {
-            let object = data.object(forKey: key)
-            if ( !(object is NSNull)) {
-                dic.setObject(object as Any, forKey: key as! NSCopying)
-            }
-        }
+//        let dic: NSMutableDictionary = [:]
+//        for key in data.allKeys {
+//            let object = data.object(forKey: key)
+//            if let subDictionary = object as? [NSDictionary] {
+//
+//            } else if (!(object is NSNull)) {
+//                dic.setObject(object as Any, forKey: key as! NSCopying)
+//            }
+//        }
         
-        let saveData: NSArray = [dic]
+//        let dic: [String: Any] = data.allKeys // 待处理的字典数据
+        let result = removeNullValuesFromDictionary(data as! [String : Any])
+        
+//        dic.removeObject(forKey: "subscriptionInfoList")
+        
+        let saveData: NSArray = [result]
         let success = saveData.write(toFile: string.expandingTildeInPath as String, atomically: true)
 
         if (success == true) {
@@ -64,3 +71,36 @@ class KMLightMemberCache: NSObject {
         }
     }
 }
+
+extension KMLightMemberCache {
+    /**
+     */
+    func removeNullValuesFromDictionary(_ dictionary: [String: Any]) -> [String: Any] {
+        var result: [String: Any] = [:]
+
+        for (key, value) in dictionary {
+            if let subDictionary = value as? [NSDictionary] {
+                // 子集为数组,则递归遍历子字典并进行处理
+                var array: [Any] = []
+                for item in subDictionary {
+                    let cleanedSubDictionary = removeNullValuesFromDictionary(item as! [String : Any])
+                    array.append(cleanedSubDictionary)
+                }
+                if !array.isEmpty {
+                    result[key] = array
+                }
+            } else if let subDictionary = value as? [String: Any] {
+                // 子集为字典,则递归遍历子字典并进行处理
+                let cleanedSubDictionary = removeNullValuesFromDictionary(subDictionary)
+                if !cleanedSubDictionary.isEmpty {
+                    result[key] = cleanedSubDictionary
+                }
+            } else if !(value is NSNull) {
+                // 子集不为 null,则将键值对添加到结果字典中
+                result[key] = value
+            }
+        }
+
+        return result
+    }
+}

+ 5 - 1
PDF Office/PDF Master/Class/KMLightMember/InAppPurchase/Appstore/KMInAppPurchaseManager.swift

@@ -96,7 +96,9 @@ class KMInAppPurchaseManager: NSObject {
         if SKPaymentQueue.canMakePayments() {
             if let product = availableProducts.first(where: { $0.productIdentifier == productIdentifier }) {
                 print("\("购买产品") + \(productIdentifier)")
-                let payment = SKPayment(product: product)
+                let payment = SKMutablePayment(product: product)
+                let uuid: String = GetHardwareUUID() ?? ""
+                payment.applicationUsername = uuid
                 SKPaymentQueue.default().add(payment)
             } else {
                 // 未找到匹配的产品
@@ -180,6 +182,8 @@ extension KMInAppPurchaseManager: SKPaymentTransactionObserver {
     
     func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
         print("服务器返回数据")
+        let hasPurchased = false
+        let hasFailed = false
         for transaction in transactions {
             switch transaction.transactionState {
             case .purchased:

+ 1 - 8
PDF Office/PDF Master/Class/KMLightMember/Model/KMLightMemberUserInfo.swift

@@ -17,7 +17,7 @@ class KMLightMemberUserInfo: NSObject, Codable {
     var accountType: Int = 0
     var createdAt: String = ""
     var validFlag: String = "" // 0是已注销 5是注销中
-    var subscriptionInfoList: [KMLightMemberUserSubscriptionInfo] = []
+//    var subscriptionInfoList: [KMLightMemberUserSubscriptionInfo] = []
     
 //    var companyId: String = ""
 //    var fullName: String = ""
@@ -49,13 +49,6 @@ class KMLightMemberUserSubscriptionInfo: NSObject, Codable {
     var userId: String?
 }
 
-//(0已注册1订阅中2订阅过期3试用中4试用过期)
-//REGISTER(0),
-//SUBSCRIPTION_IN_PROGRESS(1),
-//SUBSCRIPTION_EXPIRED(2),
-//TRIAL(3),
-//TRIAL_EXPIRED(4);
-
 extension KMLightMemberUserInfo {
     //MARK: data
     /**