From f2e891eecfac25bf6aed38c8eadfdf05704b16b6 Mon Sep 17 00:00:00 2001 From: 无故事王国 <841720330@qq.com> Date: 星期四, 20 六月 2024 18:48:39 +0800 Subject: [PATCH] fix --- DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift | 33 +++++++++++++++++++++------------ 1 files changed, 21 insertions(+), 12 deletions(-) diff --git a/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift b/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift index 65014de..c8b282f 100644 --- a/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift +++ b/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) } -- Gitblit v1.7.1