fix
杨锴
2025-02-18 c5e51c0ec3cbf1016f3bfbd58b0f0a004aaa9900
XQMuse/Root/TreeGroup/TreeTeskVC.swift
@@ -57,6 +57,11 @@
            private var treeInfoModel:TreeInfoModel?
    private var ruleView:TreeTeskFirstRuleView?
    private var maxLevel:TreeLevel?
    private var currentLevel:TreeLevel?
    private lazy var voicePlayer:AVPlayer = {
        let p = AVPlayer()
        return p
@@ -105,9 +110,10 @@
                        if settingModel!.userFirstOpenTreeTask{
            DispatchQueue.main.asyncAfter(delay: 0.5) {
                                                let h = (JQ_ScreenW - 90) * 0.8766
                                                TreeTeskFirstRuleView.show(title: "生命之树", content:"亲爱的家人,生命之树的种子已植入这片沃土,请以农夫的心态用心浇灌,为你加油哦。",textAlignment: .left,height: h,textTopOffset: 22)
                self.ruleView = TreeTeskFirstRuleView.show(title: "生命之树", content:"亲爱的家人,生命之树的种子已植入这片沃土,请以农夫的心态用心浇灌,为你加油哦。",textAlignment: .left,height: h,textTopOffset: 22)
                self.voicePlayer.replaceCurrentItem(with: AVPlayerItem(url: URL(string: TreeLevel.level_1.sound)!))
                self.voicePlayer.play()
                self.ruleView?.setEnableBtn(state: false)
                                    }
                        }
@@ -153,7 +159,6 @@
                        }
            }
            private func getTreeData(){
                        //缓存的树苗信息
@@ -166,6 +171,9 @@
                                    if let m = data.data{
                                                self.taskListView.setTreeInfoModel(m)
                                                            self.treeInfoModel = m
                if self.currentLevel == nil{
                    self.currentLevel = m.treeLevelType
                }
                                                            self.updateTreeInfo()
                    self.updateAni(false)
                    try? self.cacheTreeInfoModel.save(m)
@@ -174,7 +182,7 @@
            }
            private func updateTreeInfo(){
        btn_seedingAgain.isHidden = treeInfoModel!.treeLevelType != .level_10
        btn_seedingAgain.isHidden = currentLevel != .level_10
                        icon_energy.text = String(format: "当前能量值:%ld", treeInfoModel!.energyValue)
                        setProgress(current: treeInfoModel!.growthValue, total: treeInfoModel!.nextLevel)
@@ -182,13 +190,17 @@
    @IBAction func sowAgainAction(_ sender: UIButton) {
        Services.sowAgain().subscribe(onNext: {[weak self] _ in
            self?.currentLevel = nil
            self?.getTreeData()
            if self?.treeInfoModel?.treeLevelType == .level_10{
                if let soundURL = URL(string:TreeLevel.level_1.sound){
                    self?.voicePlayer.replaceCurrentItem(with: AVPlayerItem(url: soundURL))
                    self?.voicePlayer.play()
                }
            let h = (JQ_ScreenW - 90) * 0.7729
            self?.ruleView = TreeTeskFirstRuleView.show(title: "生命之树", content:TreeLevel.level_1.titleContent,textAlignment: .center,height: h,textTopOffset: 57,clickClouse: {
            })
            if let soundURL = URL(string:TreeLevel.level_1.sound){
                self?.voicePlayer.replaceCurrentItem(with: AVPlayerItem(url: soundURL))
                self?.voicePlayer.play()
            }
        }).disposed(by: disposeBag)
    }
@@ -202,6 +214,13 @@
            if currentItem?.url == notifiUrl?.url{
                self?.player.seek(to: CMTime.zero)
                self?.player.play()
            }
            //播放音频完成
            if let voiceUrl = (self?.voicePlayer.currentItem?.asset as? AVURLAsset){
                if voiceUrl.url == notifiUrl?.url{
                    self?.ruleView?.setEnableBtn(state: true)
                }
            }
                        }
@@ -276,6 +295,32 @@
                        }
            }
    private func next(){
        currentLevel?.updateLevel()
        guard let currentL = currentLevel else {return}
        guard let maxL = maxLevel else {return}
        if currentL.rawValue > maxL.rawValue{return}
        let h = (JQ_ScreenW - 90) * 0.7729
        ruleView = TreeTeskFirstRuleView.show(title: "生命之树", content:currentL.titleContent,textAlignment: .center,height: h,textTopOffset: 57,clickClouse: {[weak self] () in
            if currentL.rawValue != maxL.rawValue || currentL != TreeLevel.level_10{
                self?.next()
            }
        })
        if let soundURL = URL(string:currentL.sound){
            voicePlayer.replaceCurrentItem(with: AVPlayerItem(url: soundURL))
            voicePlayer.play()
        }
        ruleView?.setEnableBtn(state: false)
        updateAni()
        getTreeData()
        updateTreeInfo()
    }
            //能量明细
            @IBAction func energyDetailAction(_ sender: TapBtn) {
        guard sceneDelegate!.checkisLoginState() else {return}
@@ -308,24 +353,15 @@
                                    if let m = data.data{
                sender.isUserInteractionEnabled = true
                if m.isNext{
                    weakSelf.maxLevel = m.treeLevelType
                    weakSelf.treeInfoModel!.treeLevelType = m.treeLevelType
                    let h = (JQ_ScreenW - 90) * 0.7729
                    TreeTeskFirstRuleView.show(title: "什么之树", content:weakSelf.treeInfoModel!.treeLevelType.titleContent,textAlignment: .center,height: h,textTopOffset: 57)
                    if let soundURL = URL(string:weakSelf.treeInfoModel?.treeLevelType.sound){
                        weakSelf.voicePlayer.replaceCurrentItem(with: AVPlayerItem(url: soundURL))
                        weakSelf.voicePlayer.play()
                    }
                    weakSelf.next()
                }
                weakSelf.updateAni()
                weakSelf.getTreeData()
                weakSelf.treeInfoModel?.growthValue = m.growthValue
                weakSelf.treeInfoModel?.energyValue = 0
                weakSelf.treeInfoModel?.nextLevel = m.nextLevel
                weakSelf.updateTreeInfo()
                NotificationCenter.default.post(name: UpdateUserProfile_Noti, object: nil)
                                    }
                        }).disposed(by: disposeBag)
@@ -370,7 +406,7 @@
            }
    private func updateAni(_ needAni:Bool = true){
                        let treeLevel = treeInfoModel?.treeLevelType ?? .level_1
        guard let treeLevel = currentLevel else {return}
                        guard let animateUrl = Bundle.main.url(forResource: treeLevel.aniResource, withExtension: "png") else {return}
                        guard let staticDroopUrl = Bundle.main.url(forResource: treeLevel.staticDroopResource, withExtension: "png") else {return}