杨锴
2024-11-09 5415b6659e542b21058428bbc0d38e7f5783815b
XQMuse/Root/Home/HomeVC.swift
@@ -36,6 +36,7 @@
            private let topMenuView = HomeTopMenuView.jq_loadNibView()
            private var titleItems = [TitleItem]()
            private var viewModel = HomeViewModel()
    private var timer:Timer?
    private var cellularData:CTCellularData!
@@ -48,12 +49,16 @@
                if let m = data.data{UserViewModel.saveAvatarInfo(m)}
            }).disposed(by: disposeBag)
        }
        self.navigationController?.interactivePopGestureRecognizer?.isEnabled = true
    }
    override func viewDidLoad() {
        super.viewDidLoad()
                        titleItems.removeAll()
        timer = Timer.scheduledTimer(timeInterval: 60, target: self, selector: #selector(autoUpdate), userInfo: nil, repeats: true)
        RunLoop.current.add(timer!, forMode: .default)
                        titleItems.append(TitleItem(title: "每日疗愈", subTitle: "Daily Meditation"))
                        titleItems.append(TitleItem(title: "私人订制", subTitle: "Private Customization",hasMore: true))
@@ -70,7 +75,7 @@
        })
        if let m = UserDefaultSettingViewModel.getSetting()?.bgm {
            topMenuView.image_top.sd_setImage(with: URL(string: m.imageUrl))
            topMenuView.image_top.sd_setImage(with: URL(string: m.imageUrl.jq_urlEncoded()))
        }
                        getData()
@@ -89,8 +94,14 @@
                                if !state{
                                    exit(0)
                                }else{
                                    if var m = UserDefaultSettingViewModel.getSetting(){
                                        m.userFirstLaunch = false
                                        UserDefaultSettingViewModel.saveSetting(m)
                                    }
                                    //跳转计划引导
                                    let nav  = BaseNav(rootViewController: PlanGuideVC())
                                    let nav  = BaseNav(rootViewController: PlanGuideVC(isFromFist: true))
                                    nav.modalPresentationStyle = .fullScreen
                                    weakSelf.present(nav, animated: true)
                                }
@@ -178,7 +189,7 @@
            override func setRx() {
                        topMenuView.clickItemAt {[unowned self] item in
            let vc = HomeItemListVC(topTitle: item.title, id: item.id, showType:.horizontal)
            let vc = HomeItemListVC(topTitle: item.title, id: item.id, showType:.vertical)
                                    self.push(vc: vc)
                        }
@@ -193,8 +204,8 @@
            Services.isFirst().subscribe(onNext: {data in
                if data.data == true{
                    weakSelf.navigationController?.tabBarController?.selectedIndex = 2
                    var viewModel = UserDefaultSettingViewModel.getSetting()
                    viewModel?.userFirstOpenTreeTask = false
                    let viewModel = UserDefaultSettingViewModel.getSetting()
//                    viewModel?.userFirstOpenTreeTask = false
                    UserDefaultSettingViewModel.saveSetting(viewModel!)
                }
            }).disposed(by: weakSelf.disposeBag)
@@ -202,6 +213,10 @@
                        }).disposed(by: disposeBag)
        NotificationCenter.default.rx.notification(LoginSuccess_Noti).take(until: self.rx.deallocated).subscribe(onNext: {data in
            self.getData()
        }).disposed(by: disposeBag)
        NotificationCenter.default.rx.notification(LoginQuit_Noti).take(until: self.rx.deallocated).subscribe(onNext: {data in
            self.getData()
        }).disposed(by: disposeBag)
            }
@@ -239,18 +254,21 @@
                                    self.tableView.reloadRows(at: [IndexPath(row: 0, section: 0)], with: .none)
                        }).disposed(by: disposeBag)
                        Services.getPersonalityPlan().subscribe(onNext: { data in
            if let m = data.data{
                if m.count > 0{
                    self.viewModel.privateTodyModels = m
                }else{
                    let m = MeditationModel()
                    m.id = 0
                    self.viewModel.privateTodyModels = [m]
        if !(UserViewModel.getLoginInfo()?.accessToken.isEmpty ?? true){
            Services.getPersonalityPlan().subscribe(onNext: { data in
                if let m = data.data{
                    if m.count > 0{
                        self.viewModel.privateTodyModels = m
                    }else{
                        let m = MeditationModel()
                        m.id = 0
                        self.viewModel.privateTodyModels = [m]
                    }
                    self.tableView.reloadRows(at: [IndexPath(row: 1, section: 0)], with: .none)
                }
                                                self.tableView.reloadRows(at: [IndexPath(row: 1, section: 0)], with: .none)
            }
                        }).disposed(by: disposeBag)
            }).disposed(by: disposeBag)
        }
                        Services.getMeditationAndCateList().subscribe(onNext: { data in
                                    if let m = data.data{
@@ -296,22 +314,30 @@
        }).disposed(by: disposeBag)
            }
    @objc func autoUpdate(){
        print("--->")
        Services.getTopdayMedita().subscribe(onNext: { data in
            self.viewModel.todyModel = data.data?.clientMeditationVO
            self.tableView.reloadRows(at: [IndexPath(row: 0, section: 0)], with: .none)
        }).disposed(by: disposeBag)
    }
            @objc func searchAction(){
        let vc = SearchVC(serchType: .muse)
                        push(vc: vc)
            }
            @objc func settingvoiceAction(){
                        let vc = BackgroundVoiceVC()
        let vc = BackgroundVoiceVC(isFromFist: false)
                        push(vc: vc)
            }
            @objc func jumpMoreAction(_ sender:UIButton){
                        switch sender.tag {
                                    case 201:
                guard sceneDelegate!.checkisLoginState() else {return}
                                                //跳转计划引导
                                                let nav   = BaseNav(rootViewController: PlanGuideVC())
                let nav   = BaseNav(rootViewController: PlanGuideVC(isFromFist: false))
                                                nav.modalPresentationStyle = .fullScreen
                                                present(nav, animated: true)
                                                break
@@ -332,8 +358,19 @@
        if indexPath.section == 0{
            if let m = viewModel.todyModel{
                let vc = HomeItemDetailVC(id: m.id)
                push(vc: vc)
                Services.getMeditationDetail(id: m.id).subscribe(onNext: {[weak self]data in
                    guard let weakSelf = self else { return }
                    if let m = data.data{
                        if AudioPlayer.getSharedInstance().meditationModel?.id == m.id && AudioPlayer.getSharedInstance().bgmPlayer?.timeControlStatus == .playing{
                            return
                        }
                        AudioPlayer.getSharedInstance().playBGMAt(firstPlayIndex: 0, model: m, delegate: self)
                        PayMusicVC.show(model: m,isHidden: false)
                        self?.tableView.reloadData()
                    }
                }).disposed(by: disposeBag)
            }else{
                alert(msg: "平台暂未设置今日疗愈")
            }
@@ -341,7 +378,7 @@
                        if indexPath.section == 2{
                                    let vc = WebVC(type: .guide)
                                    vc.title = "心泉·疗愈"
                                    vc.title = "泉疗愈"
                                    push(vc: vc)
                        }
            }
@@ -353,6 +390,8 @@
            if viewModel.todyModel?.id != 0{
                cell.model = viewModel.todyModel
                cell.view_data.isHidden = false
                cell.img_play.isHidden = AudioPlayer.getSharedInstance().meditationModel?.id == viewModel.todyModel?.id
            }else{
                cell.img_cover.image = UIImage(named: "bg_today")
                cell.view_data.isHidden = true
@@ -455,3 +494,11 @@
        navigationController?.navigationBar.scrollEdgeAppearance?.backgroundColor = .white
            }
}
extension HomeVC:PayMusicDelegate{
    func playState(_ state: PlayMusicState) {
    }
}