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

Merge branch 'dev-v2-diyVideo' of http://hubgit.cn/zhouzhenshuai/AIEmoji into dev-v2-diyVideo

kailen 1 неделя назад
Родитель
Сommit
330d762844

+ 3 - 0
AIEmoji/Business2/DisCover/TSDiscoverVC/TSDiscoverVC.swift

@@ -275,6 +275,9 @@ extension TSDiscoverVC {
     }
     
     func clickSpecialBlock(cmd:String,data:Any?) {
+        if TSGenerateBasePhotoOperationQueue.isAvailabilityHandle(view: self.view)
+        { return }
+        
         if cmd == "ptv" {
             kPushVC(target: self, modelVC:TSAIDiyVideoVC(diyVideoType: 0))
         }else if cmd == "ttv" {

+ 54 - 48
AIEmoji/Common/Purchase/TSPurchaseManager+Free.swift

@@ -7,6 +7,32 @@
 
 
 let kFreeNumKey = "kFreeNumKey"
+extension PurchaseManager {
+    
+    /// 使用一次免费次数
+    func useOnceForFree(type: VipFreeNumType) {
+        if isVip {
+            return
+        }
+        
+        /// 总使用次数
+        saveForVipFreeNum(type: type)
+        saveForDayGeneratedNum(type: type)
+        saveForVipGeneratedNum(type: type)
+    }
+    
+    func saveForUserKeychain(data:[String:Any],key:String) {
+        UserDefaults.standard.set(data, forKey: key)
+        UserDefaults.standard.synchronize()
+        
+        //保存到钥匙串
+        if let jsonString = data.toJSONString() {
+            KeychainManager.save(jsonString, forKey: key)
+            dePrint("从钥匙串存入了key=\(key),jsonString=\(jsonString)")
+        }
+    }
+}
+
 
 /// 免费生成图片次数
 extension PurchaseManager {
@@ -16,23 +42,9 @@ extension PurchaseManager {
         if let jsonString = KeychainManager.load(forKey: kFreeNumKey, type: String.self),
            let jsonDict = jsonString.jsonDict() as? [String: Int]
         {
-            freeDict = jsonDict
-            saveForFree()
-            dePrint("从钥匙串取出了freeDict=\(freeDict)")
-        }else{
-            if let dict = UserDefaults.standard.dictionary(forKey: kFreeNumKey) as? [String: Int] {
-                freeDict = dict
-            } else {
-                freeDict = [
-                    VipFreeNumType.generatePic.rawValue: 1,
-                    VipFreeNumType.aichat.rawValue: 1,
-                    VipFreeNumType.textGeneratePic.rawValue: 1,
-                    VipFreeNumType.picToPic.rawValue: 1,
-                    VipFreeNumType.aiGenerate.rawValue: 1,
-                    VipFreeNumType.videoV2.rawValue: 1,
-                ]
-                saveForFree()
-            }
+            UserDefaults.standard.set(jsonDict, forKey: kFreeNumKey)
+            UserDefaults.standard.synchronize()
+            dePrint("从钥匙串取出了freeDict=\(jsonDict)")
         }
         
         if let jsonString = KeychainManager.load(forKey: kDayGeneratedNumKey, type: String.self),
@@ -53,48 +65,41 @@ extension PurchaseManager {
 
     }
 
-    
-    /// 使用一次免费次数
-    func useOnceForFree(type: VipFreeNumType) {
-        /// 总使用次数
-        if isVip {
-            saveForDayGeneratedNum(type: type)
-            saveForVipGeneratedNum(type: type)
-        }
-        
-        if isVip {
-            return
-        }
-
+    func saveForVipFreeNum(type: VipFreeNumType){
+        var freeDict = getFreeDict()
         var freeNum = freeDict[type.rawValue] ?? 0
         if freeNum > 0 {
-            freeNum -= 1
+            freeNum-=1
         }
-
+        
         if freeNum < 0 {
             freeNum = 0
         }
-
+        
         freeDict[type.rawValue] = freeNum
-        saveForFree()
-
+        saveForUserKeychain(data: freeDict,key: kFreeNumKey)
         NotificationCenter.default.post(name: .kVipFreeNumChanged, object: nil, userInfo: ["VipFreeNumType": type])
     }
 
-    func freeNum(type: VipFreeNumType) -> Int {
-        let freeNum = freeDict[type.rawValue] ?? 0
+    func freeNum(type:VipFreeNumType) -> Int{
+        let freeNum = getFreeDict()[type.rawValue] ?? 0
         return freeNum
     }
-
-    func saveForFree() {
-        UserDefaults.standard.set(freeDict, forKey: kFreeNumKey)
-        UserDefaults.standard.synchronize()
-        
-        //保存到钥匙串
-        if let jsonString = freeDict.toJSONString() {
-            KeychainManager.save(jsonString, forKey: kFreeNumKey)
-            dePrint("从钥匙串存入了jsonString kFreeNumKey=\(jsonString)")
-            KeychainManager.save(jsonString, forKey: kFreeNumKey)
+    
+    
+    func getFreeDict()->[String:Int]{
+        if let dict = UserDefaults.standard.dictionary(forKey: kFreeNumKey) as? [String:Int]{
+            return dict
+        }else{
+            let dict = [
+                VipFreeNumType.generatePic.rawValue: 1,
+                VipFreeNumType.aichat.rawValue: 1,
+                VipFreeNumType.textGeneratePic.rawValue: 1,
+                VipFreeNumType.picToPic.rawValue: 1,
+                VipFreeNumType.aiGenerate.rawValue: 1,
+                VipFreeNumType.videoV2.rawValue: 1,
+            ]
+            return dict
         }
     }
 
@@ -103,7 +108,7 @@ extension PurchaseManager {
         if isVip == true {
             return true
         } else {
-            if let freeNum = freeDict[type.rawValue], freeNum > 0 {
+            if let freeNum = getFreeDict()[type.rawValue], freeNum > 0 {
                 return true
             }
         }
@@ -118,3 +123,4 @@ extension PurchaseManager {
         return true
     }
 }
+

+ 2 - 20
AIEmoji/Common/Purchase/TSPurchaseManager+Limit.swift

@@ -20,9 +20,6 @@ extension PurchaseManager {
     //是否超出每天使用的次数
     public func isExceedsDayGeneratedNum(vipFreeNumType:VipFreeNumType) -> Bool {
         if isVip {
-//            #if DEBUG
-//            return false
-//            #endif
             let dayNum = loadDayGeneratedNum(type: vipFreeNumType)
             if vipFreeNumType == .videoV2 {
                 return dayNum >= vipType.dayGeneratedVideoNumber
@@ -44,13 +41,7 @@ extension PurchaseManager {
             dict = saveDict
         }
         dict[type.rawValue] = ["date": Date().dateDayString, "times": dayNum]
-        UserDefaults.standard.set(dict, forKey: kDayGeneratedNumKey)
-        UserDefaults.standard.synchronize()
-        //保存到钥匙串
-        if let jsonString = dict.toJSONString() {
-            dePrint("从钥匙串存入了jsonString kDayGeneratedNumKey=\(jsonString)")
-            KeychainManager.save(jsonString, forKey: kDayGeneratedNumKey)
-        }
+        saveForUserKeychain(data: dict,key: kDayGeneratedNumKey)
     }
 
     func loadDayGeneratedNum(type: VipFreeNumType)-> Int {
@@ -74,9 +65,6 @@ extension PurchaseManager {
     //是否超出Vip期间使用的次数
     public func isExceedsVipGeneratedNum(vipFreeNumType:VipFreeNumType) -> Bool {
         if isVip {
-//            #if DEBUG
-//            return false
-//            #endif
             let dayNum = loadVipGeneratedNum(type: vipFreeNumType)
             if vipFreeNumType == .videoV2 {
                 return dayNum >= vipType.creatVideoMaxNum
@@ -97,14 +85,8 @@ extension PurchaseManager {
             dict = saveDict
         }
         dict[type.rawValue] = ["times": dayNum,"expireTime":expireTime]
-        UserDefaults.standard.set(dict, forKey: kVipGeneratedNumKey)
-        UserDefaults.standard.synchronize()
-        //保存到钥匙串
-        if let jsonString = dict.toJSONString() {
-            dePrint("从钥匙串存入了jsonString kVipGeneratedNumKey=\(jsonString)")
-            KeychainManager.save(jsonString, forKey: kVipGeneratedNumKey)
-        }
         
+        saveForUserKeychain(data: dict,key: kVipGeneratedNumKey)
     }
 
     func loadVipGeneratedNum(type: VipFreeNumType)-> Int {

+ 1 - 1
AIEmoji/Common/Purchase/TSPurchaseManager.swift

@@ -48,7 +48,7 @@ public class PurchaseManager: NSObject {
     var vipInformation: [String: Any] = [:]
 
     // 免费使用会员的次数
-    var freeDict: [String: Int] = [:]
+//    var freeDict: [String: Int] = [:]
 
     // 原始订单交易id dict
     var originalTransactionIdentifierDict: [String: String] = [:]