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