fix
无故事王国
2024-06-14 e2c245035a515bb7f623706b66f05e8dfc2c2fef
fix
9个文件已修改
136 ■■■■■ 已修改文件
DolphinEnglishLearnStudent/Models/CommonModel.swift 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_4_VC.swift 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_5_VC.swift 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenGame_1_VC.swift 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenStory_1_VC.swift 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/View/ChooseLevelView.swift 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Services/Services.swift 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Podfile 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Models/CommonModel.swift
@@ -318,10 +318,14 @@
                var updateTime: String = ""
                //学习类型四专用
                var isQuestion:Int = 0
                //游戏类型2专用
                var isOpen:Bool = false
}
@available(*,deprecated,message: "废弃")
struct Listen4Model:HandyJSON{
                var data = [Listen4DataModel]()
}
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift
@@ -262,7 +262,8 @@
                                                let nextPage = weakSelf.viewModel.currentPage.value + 1
                                                var asComplete:Bool = false
                                                switch weakSelf.viewModel.listenType.value {
                                                                case .lesson1,.lesson2:asComplete = nextPage >= (weakSelf.data as! ListenNewModel).subjectList.count
                                                                case .lesson1,.lesson2,.lesson3,.lesson4,.lesson5:asComplete = nextPage >= (weakSelf.data as! ListenNewModel).subjectList.count
                                                                case .story1,.story2: asComplete = nextPage >= (weakSelf.data as! Listen1Model).storyList.count
                                                                default:break
                                                }
@@ -283,14 +284,16 @@
                                                                return
                                                }
                                                if weakSelf.viewModel.listenType.value == .story2{
                                                                weakSelf.btn_next.isHidden = (nextPage + 1) == weakSelf.viewModel.maxPage.value
                                                                if weakSelf.btn_next.isHidden{
                                                                                weakSelf.btn_exit.setTitle("完成", for: .normal)
                                                                }
                                                }
                                                //以下无效代码
//                                                if weakSelf.viewModel.listenType.value == .story2{
//                                                                weakSelf.btn_next.isHidden = (nextPage + 1) == weakSelf.viewModel.maxPage.value
//                                                                if weakSelf.btn_next.isHidden{
//                                                                                weakSelf.btn_exit.setTitle("完成", for: .normal)
//                                                                }
//                                                }
//
//
//                                                //完成
//                                                if nextPage >= weakSelf.viewModel.maxPage.value{
@@ -327,8 +330,11 @@
                private func setPages(){
                                switch viewModel.listenType.value{
                                                case .lesson1,.lesson2,.lesson3:
                                                case .lesson1,.lesson2,.lesson3,.lesson5:
                                                                label_pageNum.text = "已完成:\(viewModel.answerCount.value)/\((data as! ListenNewModel).subjectList.flatMap({$0}).count)"
                                                case .lesson4:
                                                                //两题为一组:需要/2
                                                                label_pageNum.text = "已完成:\(viewModel.answerCount.value)/\((data as! ListenNewModel).subjectList.flatMap({$0}).count / 2)"
                                                case .game1,.game2:
                                                                btn_forward.isHidden = true
                                                                label_pageNum.isHidden = true
@@ -339,7 +345,7 @@
                                                case .story1,.story2:
                                                                let count = (data as! Listen1Model).storyList.count
                                                                viewModel.maxPage.accept(count)
                                                                label_pageNum.text = "已完成:\(viewModel.currentPage.value + 1)/\(0)"
                                                                label_pageNum.text = "已完成:\(viewModel.currentPage.value + 1)/\(count)"
                                                default:break
                                }
                }
@@ -352,7 +358,7 @@
                                var ids:String = ""
                                switch viewModel.listenType.value {
                                                case .lesson1,.lesson2:
                                                case .lesson1,.lesson2,.lesson3,.lesson4,.lesson5:
                                                                let data = (data as! ListenNewModel).data
                                                                ids = data?.id ?? ""
                                                                toalIntegral = data?.integral ?? 0
@@ -486,7 +492,9 @@
                func totalPagesOfpageViewController(_ pageViewConteoller: FFPageViewController) -> UInt {
                                switch viewModel.listenType.value {
                                                case .lesson1,.lesson2,.lesson3:return UInt((data as! ListenNewModel).subjectList.count)
                                                case .lesson1,.lesson2,.lesson3,.lesson4,.lesson5:return UInt((data as! ListenNewModel).subjectList.count)
                                                case .story1,.story2:
                                                                return UInt((data as! Listen1Model).storyList.count)
                                                default:break
                                }
@@ -494,10 +502,6 @@
                                //超级听力,只有一页
                                if viewModel.listenType.value == .game1 || viewModel.listenType.value == .game2{
                                                return 1
                                }
                                if viewModel.listenType.value == .story1 || viewModel.listenType.value == .story2{
                                                return UInt((data as! Listen1Model).storyList.count)
                                }
                                return UInt(viewModel.maxPage.value)
                }
@@ -550,13 +554,13 @@
                                }
                                if viewModel.listenType.value == .lesson4{
                                                let vc = HomeListenFight_lesson_4_VC(page: page, listen4Model: data as! Listen4Model)
                                                let vc = HomeListenFight_lesson_4_VC(page: page, listenNewModel: data as! ListenNewModel)
                                                vc.rootViewModel = viewModel
                                                return vc
                                }
                                if viewModel.listenType.value == .lesson5{
                                                let vc = HomeListenFight_lesson_5_VC(page: page, listen1Model: data as! Listen1Model)
                                                let vc = HomeListenFight_lesson_5_VC(page: page, listenNewModel: data as! ListenNewModel)
                                                vc.rootViewModel = viewModel
                                                return vc
                                }
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_4_VC.swift
@@ -11,12 +11,13 @@
                private var viewModel = FightAnswerViewModel()
                private var listen4Model:Listen4Model!
                private var listenNewModel:ListenNewModel!
                private var page:Int!
                var rootViewModel:HomeListenFightViewModel!
                private var answerIndex:IndexPath? //答案的Index
                private var answerCount:Int = 0 //回答计数
                private var filterItems = [[Listen1SubModel]]() //此类型特殊,需要数据清理
                private lazy var stackView:UIStackView = {
                                let sta = UIStackView()
@@ -41,11 +42,15 @@
                private var voicePlayer = VoicePlayer.share()
                required init(page:Int,listen4Model:Listen4Model){
                required init(page:Int,listenNewModel:ListenNewModel){
                                super.init(nibName: nil, bundle: nil)
                                self.page = page
                                self.listen4Model = listen4Model
                                self.listen4Model.data.shuffle()
                                self.listenNewModel = listenNewModel
                                let temp1 = Array(listenNewModel.subjectList[page][0...1])
                                let temp2 = Array(listenNewModel.subjectList[page][2...3])
                                filterItems.append(temp1)
                                filterItems.append(temp2)
                }
                required init?(coder: NSCoder) {
@@ -102,7 +107,7 @@
                private func setAnswerStackView(){
                                guard viewModel.selectIndex.value != nil else{
                                guard let selectIndex = viewModel.selectIndex.value else{
                                                alertError(msg: "请先听题");return
                                }
@@ -118,10 +123,11 @@
                                                }
                                }
                                let answerModel = filterItems[selectIndex.section].filter({$0.isQuestion == 0}).first!
                                let answerId = answerModel.id
                                let answerId = listen4Model.data[viewModel.selectIndex.value!.section].subject
                                var tempVoiceArray = [String]()
                                for v in listen4Model.data[viewModel.selectIndex.value!.section].subjectList{
                                for v in filterItems[selectIndex.section]{
                                                if v.id == answerId{
                                                                tempVoiceArray.append(v.correct)
                                                                tempVoiceArray.append(v.error.components(separatedBy: ",").first ?? "")
@@ -152,6 +158,11 @@
                }
                @objc func answerAction(btn:UIButton){
                                guard let selectIndex = viewModel.selectIndex.value else{
                                                alertError(msg: "请先听题");return
                                }
                                var tempSubV:Lesson_4_AnswerView?
                                for subV in stackView.arrangedSubviews{
@@ -162,8 +173,9 @@
                                }
                                var answerModel:Listen1SubModel?
                                for (index,v) in (listen4Model.data[viewModel.selectIndex.value!.section].subjectList).enumerated(){
                                                if v.id == listen4Model.data[viewModel.selectIndex.value!.section].subject{
                                for (index,v) in filterItems[selectIndex.section].enumerated(){
                                                let m = filterItems[selectIndex.section].filter({$0.isQuestion == 0}).first
                                                if v.id == m?.id{
                                                                answerModel = v
                                                                answerIndex = IndexPath(row: index, section: viewModel.selectIndex.value!.section)
                                                }
@@ -174,6 +186,8 @@
                                                answerType = .success
                                                answerCount += 1
                                                rootViewModel.correctNum += 1
                                                let v = rootViewModel.answerCount.value + 1
                                                rootViewModel.answerCount.accept(v)
                                }else{
                                                answerType = .fail
                                                rootViewModel.errorNum += 1
@@ -209,7 +223,9 @@
                                                                                                                                //回答完成,下一答题
                                                                                                                                if self.answerCount == 2{
                                                                                                                                                self.rootViewModel.answerItems[self.page] = self.listen4Model
                                                                                                                                                let v = self.rootViewModel.answerCount.value + 1
                                                                                                                                                self.rootViewModel.answerCount.accept(v)
                                                                                                                                                self.rootViewModel.answerItems[self.page] = self.listenNewModel.subjectList[self.page]
                                                                                                                                                self.voicePlayer.playerEnd()
                                                                                                                                                NotificationCenter.default.post(name: NextLession_Noti, object: nil)
                                                                                                                                                self.voicePlayer.playerEnd()
@@ -267,8 +283,7 @@
                                                                weakSelf.setAnswerStackView()
                                                }
                                }
                                let m = listen4Model.data[indexPath.section].subjectList[indexPath.row]
                                let m = filterItems[indexPath.section][indexPath.row]
                                if indexPath == answerIndex{
                                                UIView.animate(withDuration: 0.4, delay: 0, usingSpringWithDamping: 0.4, initialSpringVelocity: 0.4,options: .layoutSubviews) {
                                                                cell.img_state.alpha = 1
@@ -279,7 +294,7 @@
                                                cell.img_state.transform = .init(scaleX: 0.1, y: 0.1)
                                }
                                //问题
                                if listen4Model.data[indexPath.section].subject == m.id{
                                if filterItems[indexPath.section][indexPath.row].isQuestion == 0{
                                                cell.btn_handle.setImage(UIImage(named: "icon_question"), for: .normal)
                                                cell.view_handle.isHidden = true
                                }else{
@@ -296,11 +311,11 @@
                }
                func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
                                return listen4Model.data[section].subjectList.count
                                return filterItems[section].count
                }
                func numberOfSections(in collectionView: UICollectionView) -> Int {
                                return listen4Model.data.count
                                return filterItems.count
                }
}
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_5_VC.swift
@@ -10,7 +10,7 @@
class HomeListenFight_lesson_5_VC: BaseVC {
                private var viewModel = FightAnswerViewModel()
                private var listen1Model:Listen1Model!
                private var listenNewModel:ListenNewModel!
                private var page:Int!
                private var answterCount:Int = 0 //回答计数,用于确定角标
                private var playVoiceAt:Int? //播放声音的View
@@ -48,11 +48,11 @@
                                return label
                }()
                required init(page:Int,listen1Model:Listen1Model){
                required init(page:Int,listenNewModel:ListenNewModel){
                                super.init(nibName: nil, bundle: nil)
                                self.page = page
                                self.listen1Model = listen1Model
                                self.listen1Model.subjectList.shuffle()
                                self.listenNewModel = listenNewModel
//                                self.listen1Model.subjectList.shuffle()
                }
                required init?(coder: NSCoder) {
@@ -145,7 +145,7 @@
                                }
                                var tempArray = [VoiceHandleView]()
                                for (i,value) in listen1Model.subjectList.enumerated(){
                                for (i,value) in listenNewModel.subjectList[page].enumerated(){
                                                let answerView = VoiceHandleView()
                                                answerView.listenType = .lesson5
                                                answerView.tag = 1000+i
@@ -172,7 +172,7 @@
                private func showHintText(_ state:Bool){
                                if let at = playVoiceAt{
                                                label_hint.text = listen1Model.subjectList[at].name
                                                label_hint.text = listenNewModel.subjectList[page][at].name
                                                UIView.animate(withDuration: 0.5) {
                                                                if state{
                                                                                self.label_hint.snp.remakeConstraints { make in
@@ -202,8 +202,8 @@
                                viewModel.selectIndex.accept(indexPath)
                                let answer = listen1Model.subjectList[playVoiceAt!]
                                let selectAnswer = listen1Model.subjectList[indexPath.row]
                                let answer = listenNewModel.subjectList[page][playVoiceAt!]
                                let selectAnswer = listenNewModel.subjectList[page][indexPath.row]
                                var answerType:Fight_lessonType = .none
@@ -269,7 +269,7 @@
extension HomeListenFight_lesson_5_VC:UICollectionViewDataSource{
                func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
                                let model = listen1Model.subjectList[indexPath.row]
                                let model = listenNewModel.subjectList[page][indexPath.row]
                                let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_ListenFight_lesson_1_CCell", for: indexPath) as! ListenFight_lesson_1_CCell
                                cell.jq_addShadows(shadowColor: .black.withAlphaComponent(0.31), corner: 8, radius: 3, offset: CGSize(width: 0, height: 1), opacity: 1)
                                if viewModel.selectIndex.value == indexPath{
@@ -288,7 +288,7 @@
                }
                func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
                                return listen1Model.subjectList.count
                                return listenNewModel.subjectList[page].count
                }
                func numberOfSections(in collectionView: UICollectionView) -> Int {
@@ -303,9 +303,15 @@
                                                subV.resetView()
                                }
                                if viewModel.answerType.value == .success{
                                                let v = rootViewModel.answerCount.value + 1
                                                rootViewModel.answerCount.accept(v)
                                                viewModel.answerType.accept(.none)
                                }
                                DispatchQueue.main.asyncAfter(deadline: .now()+0.4) {
                                                if self.answterCount >= 4{
                                                                self.rootViewModel.answerItems[self.page] = self.listen1Model
                                                                self.rootViewModel.answerItems[self.page] = self.listenNewModel.subjectList[self.page]
                                                                self.voicePlayer.playerEnd()
                                                                NotificationCenter.default.post(name: NextLession_Noti, object: nil)
                                                }
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenGame_1_VC.swift
@@ -80,9 +80,15 @@
                                fatalError("init(coder:) has not been implemented")
                }
                override func viewDidAppear(_ animated: Bool) {
                                super.viewDidAppear(animated)
                                voicePlayer.delegate = self
                }
                override func viewDidDisappear(_ animated: Bool) {
                                super.viewDidDisappear(animated)
                                timer?.invalidate()
                                voicePlayer.delegate = nil
                                voicePlayer.playerEnd()
                }
@@ -111,7 +117,6 @@
                                                }
                                }
                                voicePlayer.delegate = self
    }
                override func setUI() {
@@ -177,6 +182,7 @@
                }
                @objc private func runloopTime(){
                                print("进入。。。")
                                times -= 1
                                label_hint.text = "请在\(times)s内选择答案!"
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenStory_1_VC.swift
DolphinEnglishLearnStudent/Moudle/Home/Listen/View/ChooseLevelView.swift
@@ -25,6 +25,14 @@
                }
                static func show(clouse:@escaping (Int)->Void){
                                var needLoad:Bool = true
                                for v in sceneDelegate?.window?.subviews ?? []{
                                                if v is ChooseLevelView{needLoad = false}
                                }
                                guard needLoad else {return}
                                let levelView = ChooseLevelView.jq_loadNibView()
                                levelView.clouseLevel = clouse
                                sceneDelegate?.window?.addSubview(levelView)
DolphinEnglishLearnStudent/Services/Services.swift
@@ -62,7 +62,7 @@
                }
                /// 自主学习4-有问有答
                class func questionsAndAnswers(day:Int,quarter:Int,week:Int)->Observable<BaseResponse<Listen4Model>>{
                class func questionsAndAnswers(day:Int,quarter:Int,week:Int)->Observable<BaseResponse<ListenNewModel>>{
                                let params = ParamsAppender.build(url: All_Url)
                                params.interface(url: "/study/base/study/questionsAndAnswers")
                                params.append(key: "quarter", value: quarter)
@@ -72,7 +72,7 @@
                }
                /// 自主学习5-音图相配
                class func pictureMateVoice(day:Int,quarter:Int,week:Int)->Observable<BaseResponse<Listen1Model>>{
                class func pictureMateVoice(day:Int,quarter:Int,week:Int)->Observable<BaseResponse<ListenNewModel>>{
                                let params = ParamsAppender.build(url: All_Url)
                                params.interface(url: "/study/base/study/pictureMateVoice")
                                params.append(key: "quarter", value: quarter)
Podfile
@@ -14,5 +14,6 @@
  pod 'SVProgressHUD' # 提示框组件
  pod 'CryptoSwift' # 常用加密算法
    pod 'Alamofire' # 网络请求框架
    pod 'Lantern' # 图片浏览器
end