fix
无故事王国
2024-06-20 f2e891eecfac25bf6aed38c8eadfdf05704b16b6
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift
@@ -44,6 +44,12 @@
            case none
}
//中途退出所需要
class ExitLearnModel{
            var topicsIds = Set<Int>()
}
class HomeListenFightViewModel{
            /// 当前页数
@@ -75,6 +81,17 @@
            //所有回答的
            var answerItems = Dictionary<Int,Any>() //{page:0,data:String,currectAt:0}
            var answerCount = BehaviorRelay<Int>(value: 1)
            var answerItems_1 = Dictionary<String,Set<Int>>()
            //回答正确的题
            func insertCorrectAnswer(teamId:String?,answerId:Int){
                        guard teamId != nil else {return}
                        if answerItems_1[teamId!] == nil{
                                    answerItems_1[teamId!] = Set<Int>()
                        }
                        answerItems_1[teamId!]!.insert(answerId)
            }
}
class HomeListenFightVC: BaseVC {
@@ -328,7 +345,6 @@
                        switch viewModel.listenType.value {
                                    case .lesson1,.lesson2,.lesson3,.lesson4,.lesson5:
                                                let data = (data as! ListenNewModel).data
                                                ids = data?.id ?? ""
                                                toalIntegral = data?.integral ?? 0
                                    default:break
                        }
@@ -396,21 +412,14 @@
                                    CommonAlertView.show(content: "未完成全部答题,确认退出吗?") {[weak self] () in
                                                guard let weakSelf = self else { return }
                                                var temIds = [String]()
                                                var topicIds = [String]()
                                                for v in weakSelf.viewModel.answerItems.values{
                                                            if let v =  v as? Listen1Model{
                                                                        temIds.append("\(v.data?.id ?? 0)")
                                                                        for sV in v.subjectList{
                                                                                    topicIds.append("\(sV.id)")
                                                                        }
                                                            }
                                                }
                                                let topicIds = weakSelf.viewModel.answerItems_1.keys.sorted()
                                                let temIds = weakSelf.viewModel.answerItems_1.values.flatMap({$0}).map({"\($0)"})
                                                switch weakSelf.viewModel.listenType.value{
                                                            case .lesson1,.lesson2,.lesson3,.lesson4,.lesson5:
                                                                        if temIds.count > 0 && topicIds.count > 0{
                                                                                    Services.exitLearning(type:weakSelf.viewModel.listenType.value.rawValue,week: weakSelf.viewModel.week.value!, day: weakSelf.viewModel.day.value!, teamIds: temIds, topicIds: topicIds).subscribe(onNext: { data in
                                                                                    let totalNum = weakSelf.viewModel.correctNum + weakSelf.viewModel.errorNum
                                                                                    Services.exitLearning(type:weakSelf.viewModel.listenType.value.rawValue,week: weakSelf.viewModel.week.value!, day: weakSelf.viewModel.day.value!, teamIds: temIds, topicIds: topicIds,answerNumber: totalNum,correctNumber:weakSelf.viewModel.correctNum,studyTime:weakSelf.viewModel.times).subscribe(onNext: { data in
                                                                                    }).disposed(by: weakSelf.disposeBag)
                                                                        }