Переглянути джерело

viewModel:点赞,评论

Chris 5 роки тому
батько
коміт
29f601e0cd

+ 34 - 5
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityVideoContent/View/CommunityVideoCoverCollectionCell.swift

@@ -33,9 +33,20 @@ class CommunityVideoCoverCollectionCell: UICollectionViewCell {
             avatarButton.kf.setImage(with: kURLImage(name: self.videoItemMdl?.avatar ?? ""), for: .normal, placeholder: kImage(name: "default_avatar"))
             personLabel.text = self.videoItemMdl?.username
             
-            commentBtn.titleLabel?.text = "\(self.videoItemMdl?.commentCount ?? 0)"
-            collectBtn.titleLabel?.text = "\(self.videoItemMdl?.collectCount ?? 0)"
-            likeBtn.titleLabel?.text = "\(self.videoItemMdl?.praiseCount ?? 0)"
+            // 点赞
+            if self.videoItemMdl?.isLike == 0 {
+                likeBtn.setTitle("\(self.videoItemMdl?.praiseCount ?? 0)", for: .normal)
+            } else {
+                likeBtn.setTitle("\(self.videoItemMdl?.praiseCount ?? 0)", for: .selected)
+            }
+            // 收藏
+            if self.videoItemMdl?.isCollect == 0 {
+                collectBtn.setTitle("\(self.videoItemMdl?.collectCount ?? 0)", for: .normal)
+            } else {
+                collectBtn.setTitle("\(self.videoItemMdl?.collectCount ?? 0)", for: .selected)
+            }
+            // 评论
+            commentBtn.setTitle("\(self.videoItemMdl?.commentCount ?? 0)", for: .normal)
             
             collectBtn.isSelected = self.videoItemMdl?.isCollect == 0 ? false : true
             likeBtn.isSelected = self.videoItemMdl?.isLike == 0 ? false : true
@@ -436,13 +447,22 @@ class CommunityVideoCoverCollectionCell: UICollectionViewCell {
     
     private lazy var collectBtn: UIButton = {
         let collectBtn = UIButton(type: UIButton.ButtonType.custom)
-        collectBtn.setTitle("0", for: UIControl.State.normal)
         collectBtn.setTitleColor(kffffffColor, for: UIControl.State.normal)
         collectBtn.setImage(kImage(name: "video_btn_collect_white"), for: UIControl.State.normal)
         collectBtn.setImage(kImage(name: "btn_collect_pre"), for: UIControl.State.selected)        
         collectBtn.titleLabel?.font = kRegularFont14
         collectBtn.rx.tap.subscribe(onNext: { [weak self] (data) in
             collectBtn.isSelected = !collectBtn.isSelected
+            // 本地修改收藏数据
+            var collectCount = self?.videoItemMdl?.collectCount ?? 0
+            if self?.videoItemMdl?.isCollect == 0 {
+                collectBtn.setTitle("\(collectCount)", for: .normal)
+                collectBtn.setTitle("\(collectCount+1)", for: .selected)
+            } else {
+                collectBtn.setTitle("\(collectCount)", for: .selected)
+                collectBtn.setTitle("\(collectCount-1)", for: .normal)
+            }
+            // 点击回调
             if let buttonClickClosure = self?.buttonClickClosure {
                 buttonClickClosure(videoBtnClickType.typeCollect, self?.videoItemMdl?.uid ?? 0)
             }
@@ -452,13 +472,22 @@ class CommunityVideoCoverCollectionCell: UICollectionViewCell {
     
     private lazy var likeBtn: UIButton = {
         let likeBtn = UIButton(type: UIButton.ButtonType.custom)
-        likeBtn.setTitle("0", for: UIControl.State.normal)
         likeBtn.setTitleColor(kffffffColor, for: UIControl.State.normal)
         likeBtn.setImage(kImage(name: "video_btn_praise_white"), for: UIControl.State.normal)
         likeBtn.setImage(kImage(name: "btn_praise_pre_36px"), for: UIControl.State.selected)
         likeBtn.titleLabel?.font = kRegularFont14
         likeBtn.rx.tap.subscribe(onNext: { [weak self] (data) in
             likeBtn.isSelected = !likeBtn.isSelected
+            // 本地修改点赞数据
+            var praiseCount = self?.videoItemMdl?.praiseCount ?? 0
+            if self?.videoItemMdl?.isLike == 0 {
+                likeBtn.setTitle("\(praiseCount)", for: .normal)
+                likeBtn.setTitle("\(praiseCount+1)", for: .selected)
+            } else {
+                likeBtn.setTitle("\(praiseCount)", for: .selected)
+                likeBtn.setTitle("\(praiseCount-1)", for: .normal)
+            }
+            // 点击回调
             if let buttonClickClosure = self?.buttonClickClosure {
                 buttonClickClosure(videoBtnClickType.typeLike, self?.videoItemMdl?.uid ?? 0)
             }

+ 4 - 3
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityVideoContent/ViewController/CommunityVideoListController.swift

@@ -142,9 +142,10 @@ extension CommunityVideoListController: UICollectionViewDelegateFlowLayout,UICol
                 self?.showCommentView(uid: uid)
                 
             case videoBtnClickType.typeLike:
-                print("添加喜欢")
-            case videoBtnClickType.typeCollect:
-                print("添加收藏")
+                VirusViewModel.shared.praise(communityVideoItemModel: (self?.videoItemList?[indexPath.row])!)
+                
+            case videoBtnClickType.typeCollect:                VirusViewModel.shared.collection(communityVideoItemModel: (self?.videoItemList?[indexPath.row])!)
+                
             case videoBtnClickType.typePerson:
                 let vc = OtherPersonalCenterViewController()
                 vc.uid = uid

+ 104 - 0
RainbowPlanet/RainbowPlanet/ViewModel/Virus/VirusViewModel.swift

@@ -328,3 +328,107 @@ extension VirusViewModel {
         })
     }
 }
+
+
+// MARK: - CommunityVideoItemModel
+extension VirusViewModel {
+    
+    /// 点赞
+    ///
+    /// - Parameters:
+    ///   - communityVideoItemModel: 帖子模型
+    ///   - completion: 回调
+    func virueRecordAddApiPraise(communityVideoItemModel:CommunityVideoItemModel,completion: @escaping (Int) -> Void) {
+        let virueRecordAddParameterModel = VirueRecordAddParameterModel()
+        virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.like ?? "")
+        virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.like.rawValue
+        if communityVideoItemModel.isLike == 0 {
+            virueRecordAddParameterModel.behaviorValue = 1
+        }else {
+            virueRecordAddParameterModel.behaviorValue = 0
+        }
+        virueRecordAddParameterModel.postId = communityVideoItemModel.id
+        virueRecordAddParameterModel.postAuthorUid = "\(communityVideoItemModel.uid!)"
+        if communityVideoItemModel.title == nil ||  communityVideoItemModel.title == "" {
+            virueRecordAddParameterModel.postDesc = String(describing: communityVideoItemModel.content!.prefix(20))
+        }else {
+            virueRecordAddParameterModel.postDesc = communityVideoItemModel.title
+        }
+        virueRecordAddParameterModel.postType = communityVideoItemModel.type
+        virueRecordAddParameterModel.postCover = communityVideoItemModel.img
+        virueRecordAddParameterModel.actionId = "\(communityVideoItemModel.id!)"
+        
+        SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
+            if communityVideoItemModel.isLike == 0 {
+                completion(1)
+            }else {
+                completion(0)
+            }
+        })
+    }
+    
+    /// 点赞
+    ///
+    /// - Parameters:
+    ///   - communityVideoItemModel: 帖子模型
+    func praise(communityVideoItemModel: CommunityVideoItemModel) {
+        virueRecordAddApiPraise(communityVideoItemModel: communityVideoItemModel, completion: {(isLike) in
+            let isLike = isLike as Int
+            var praiseCount : Int = communityVideoItemModel.praiseCount ?? 0
+            if isLike == 0 {
+                praiseCount = (communityVideoItemModel.praiseCount ?? 0) - 1
+            }else {
+                praiseCount = (communityVideoItemModel.praiseCount ?? 0) + 1
+            }
+            communityVideoItemModel.praiseCount = praiseCount
+            communityVideoItemModel.isLike = isLike
+        })
+    }
+    
+    
+    /// 收藏
+    ///
+    /// - Parameters:
+    ///   - communityVideoItemModel: 帖子模型
+    ///   - completion: 回调
+    func virueRecordAddApiCollection(communityVideoItemModel:CommunityVideoItemModel,completion: @escaping (Int) -> Void) {
+        let virueRecordAddParameterModel = VirueRecordAddParameterModel()
+        virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.collect ?? "")
+        virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.collect.rawValue
+        if communityVideoItemModel.isCollect == 0 {
+            virueRecordAddParameterModel.behaviorValue = 1
+        }else {
+            virueRecordAddParameterModel.behaviorValue = 0
+        }
+        virueRecordAddParameterModel.postId = communityVideoItemModel.id
+        virueRecordAddParameterModel.postAuthorUid = "\(communityVideoItemModel.uid!)"
+        if communityVideoItemModel.title == nil ||  communityVideoItemModel.title == "" {
+            virueRecordAddParameterModel.postDesc = String(describing: communityVideoItemModel.content!.prefix(20))
+        }else {
+            virueRecordAddParameterModel.postDesc = communityVideoItemModel.title
+        }
+        virueRecordAddParameterModel.postType = communityVideoItemModel.type
+        virueRecordAddParameterModel.postCover = communityVideoItemModel.img
+        virueRecordAddParameterModel.actionId = "\(communityVideoItemModel.id!)"
+        virueRecordAddParameterModel.targetId = "\((UserModel.shared().getModel()?.uid)!)"
+        
+        SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
+            if communityVideoItemModel.isCollect == 0 {
+                completion(1)
+            }else {
+                completion(0)
+            }
+        })
+    }
+    
+    /// 收藏
+    ///
+    /// - Parameters:
+    ///   - communityVideoItemModel: 帖子模型
+    func collection(communityVideoItemModel: CommunityVideoItemModel) {
+        virueRecordAddApiCollection(communityVideoItemModel: communityVideoItemModel, completion: {(isCollect) in
+            let isCollect = isCollect as Int
+            communityVideoItemModel.isCollect = isCollect
+        })
+    }
+}