//
|
// HomeStudyCompleteVC.swift
|
// DolphinEnglishLearnStudent
|
//
|
// Created by 无故事王国 on 2024/5/24.
|
//
|
|
import UIKit
|
|
let StudyCompleteNextLession_Noti = Notification.Name.init("StudyCompleteNextLession_Noti")
|
let StudyCompleteCoinUpdate_Noti = Notification.Name.init("StudyCompleteCoinUpdate_Noti")
|
|
class HomeStudyCompleteVC: BaseVC {
|
@IBOutlet weak var label_coin: UILabel!
|
@IBOutlet weak var label_correctNum: UILabel!
|
@IBOutlet weak var label_title_correctNum: UILabel!
|
@IBOutlet weak var label_totalNum: UILabel!
|
@IBOutlet weak var label_title_totalNum: UILabel!
|
@IBOutlet weak var label_errorNum: UILabel!
|
@IBOutlet weak var label_title_errorNum: UILabel!
|
@IBOutlet weak var label_ratioNum: UILabel!
|
@IBOutlet weak var btn_next: UIButton!
|
@IBOutlet weak var stackView: UIStackView!
|
@IBOutlet weak var btn_back: UIButton!
|
|
// private var totalCoin:Int = 0
|
private var totalNum:Int? //总题目数量
|
|
var viewModel:HomeListenFightViewModel!
|
var studyScheduleModel:StudyScheduleModel!
|
|
required init(totalNum:Int? = nil,viewModel:HomeListenFightViewModel,studyScheduleModel:StudyScheduleModel){
|
super.init(nibName: nil, bundle: nil)
|
// self.totalCoin = totalCoin
|
self.totalNum = totalNum
|
self.viewModel = viewModel
|
self.studyScheduleModel = studyScheduleModel
|
}
|
|
required init?(coder: NSCoder) {
|
fatalError("init(coder:) has not been implemented")
|
}
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
|
navigationController?.viewControllers.removeAll(where: { vc in
|
return vc is HomeListenFightVC
|
})
|
|
|
|
yy_popBlock = {[weak self] () in
|
self?.backAction()
|
}
|
|
label_coin.text = "恭喜您,已完成全部答题!获得0积分!"
|
label_correctNum.text = "\(viewModel.correctNum)次"
|
label_errorNum.text = "\(viewModel.errorNum)次"
|
label_totalNum.text = "\(viewModel.correctNum + viewModel.errorNum)次"
|
|
if viewModel.correctNum + viewModel.errorNum == 0{
|
label_ratioNum.text = String(format: "正确率:0%%")
|
}else{
|
label_ratioNum.text = String(format: "正确率:%ld%%", floor(Double(viewModel.correctNum) / Double(viewModel.correctNum + viewModel.errorNum) * 100).int)
|
}
|
|
if totalNum != nil && viewModel.listenType.value == .game2{
|
label_title_totalNum.text = "总题目:"
|
label_title_correctNum.text = "正确题目:"
|
label_title_errorNum.text = "错误题目:"
|
label_coin.text = "恭喜您,已完成游戏!获得0积分!"
|
|
label_totalNum.text = "\(totalNum!)"
|
label_correctNum.text = "\(viewModel.correctNum)"
|
label_errorNum.text = "\(viewModel.errorNum)"
|
}
|
|
switch viewModel.listenType.value{
|
case .lesson5,.game1,.game2,.story1,.story2:btn_next.isHidden = true
|
default:btn_next.isHidden = false
|
}
|
|
stackView.isHidden = viewModel.listenType.value == .story2
|
label_ratioNum.isHidden = viewModel.listenType.value == .story2
|
|
NotificationCenter.default.post(name: MeUserInfoUpdate_Noti, object: nil)
|
}
|
|
override func setUI() {
|
super.setUI()
|
}
|
|
override func setRx() {
|
NotificationCenter.default.rx.notification(StudyCompleteCoinUpdate_Noti).take(until: self.rx.deallocated).subscribe(onNext: {[weak self] data in
|
guard let weakSelf = self else { return }
|
|
if let coin = data.object as? Int{
|
switch weakSelf.viewModel.listenType.value {
|
case .game2:weakSelf.label_coin.text = "恭喜您,已完成游戏!获得\(coin)积分!"
|
default:weakSelf.label_coin.text = "恭喜您,已完成全部答题!获得\(coin)积分!"
|
}
|
}
|
}).disposed(by: disposeBag)
|
}
|
|
@IBAction func backHomeAction(_ sender: UIButton) {
|
backAction()
|
}
|
|
@IBAction func nextAction(_ sender: UIButton) {
|
|
|
var toVC:UIViewController?
|
for subv in self.navigationController?.viewControllers ?? []{
|
if subv is HomeListenVC{
|
toVC = subv;break
|
}
|
}
|
|
if toVC == nil{
|
self.navigationController?.popToRootViewController(animated: true)
|
}else{
|
let nextType = ListenType(rawValue: viewModel.listenType.value.rawValue + 1)!
|
|
sceneDelegate?.startTimer()
|
|
switch nextType {
|
case .lesson2:
|
Services.pictureSelectVoice(day:viewModel.day.value!, quarter: viewModel.quarter.value!, week: viewModel.week.value!).subscribe(onNext: {[weak self] result in
|
guard let weakSelf = self else { return }
|
if let data = result.data{
|
let fightVC = HomeListenFightVC(listenType: .lesson2,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!)
|
fightVC.title = ListenType.lesson2.rawTitle
|
fightVC.data = data
|
fightVC.studyScheduleModel = weakSelf.studyScheduleModel
|
weakSelf.push(vc: fightVC)
|
}
|
}).disposed(by: disposeBag)
|
|
|
case .lesson3:
|
Services.induceExclude(day: viewModel.day.value!, quarter: viewModel.quarter.value!, week: viewModel.week.value!).subscribe(onNext: {[weak self] result in
|
guard let weakSelf = self else { return }
|
if let data = result.data{
|
let fightVC = HomeListenFightVC(listenType: .lesson3,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!)
|
fightVC.title = ListenType.lesson3.rawTitle
|
fightVC.data = data
|
fightVC.studyScheduleModel = weakSelf.studyScheduleModel
|
weakSelf.push(vc: fightVC)
|
}
|
}).disposed(by: disposeBag)
|
|
case .lesson4:
|
Services.questionsAndAnswers(day: viewModel.day.value!, quarter: viewModel.quarter.value!, week: viewModel.week.value!).subscribe(onNext: {[weak self] result in
|
guard let weakSelf = self else { return }
|
if let data = result.data{
|
let fightVC = HomeListenFightVC(listenType: .lesson4,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!)
|
fightVC.title = ListenType.lesson4.rawTitle
|
fightVC.data = data
|
fightVC.studyScheduleModel = weakSelf.studyScheduleModel
|
weakSelf.push(vc: fightVC)
|
}
|
}).disposed(by: disposeBag)
|
|
case .lesson5:
|
Services.pictureMateVoice(day: viewModel.day.value!, quarter: viewModel.quarter.value!, week: viewModel.week.value!).subscribe(onNext: {[weak self] result in
|
guard let weakSelf = self else { return }
|
if let data = result.data{
|
let fightVC = HomeListenFightVC(listenType: .lesson5,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!)
|
fightVC.title = ListenType.lesson5.rawTitle
|
fightVC.data = data
|
fightVC.studyScheduleModel = weakSelf.studyScheduleModel
|
weakSelf.push(vc: fightVC)
|
}
|
}).disposed(by: disposeBag)
|
|
default:break
|
}
|
}
|
}
|
|
private func backAction(){
|
for vc in navigationController?.viewControllers ?? []{
|
if vc.isKind(of: HomeListenVC.self){
|
navigationController?.popToViewController(vc, animated: true);break
|
}
|
}
|
}
|
}
|