// // MeTraineeSubjectViewModel.swift // JiaPeiManage // // Created by Ning.ge on 2023/7/12. // import UIKit import RxSwift class MeTraineeSubjectViewModel: NSObject { // MARK: 服务属性 private let cocahService: CoachServiceType = CoachService(networking: CoachNetworking()) private let itemsSubject = BehaviorSubject<[RowInfo]>(value: []) var items: Observable<[RowInfo]> { return itemsSubject.asObservable() } // MARK: 数据 var traineeDataModel:TraineeDataModel? var rows:[RowInfo] = [] var page:Int = 1 var pageSize:Int = 10 var state = "1" var schoolId:Int = 0 var type:TraineeType? override init() { super.init() // searchCoachInfoList() } func getCoachInfoList(vc:MeTraineeSubjectPageViewController) { page = 1 let coachId = schoolId > 0 ? "" : "\(LocalManager.userInfo.id)" if (self.type == .advancet){ //预报名 if state == "0" { self.cocahService.coachTempListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: "") .subscribe(onSuccess: {[unowned self] traineeDataModel in self.rows.removeAll() self.traineeDataModel = traineeDataModel self.rows += traineeDataModel.rows! itemsSubject.onNext(self.rows)//消息rx print("coachInfoListRequest成功") vc.isEmptyDisplay = true vc.hideLoadAnimation() vc.tableView.reloadData() vc.stopRefresh() NotificationCenter.default.post(name: Notification.updateItemTopTotalNameNotification, object: [traineeDataModel.total,Int(self.state)!]) }, onError: { error in vc.stopRefresh() }) .disposed(by: vc.disposeBag) }else { self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state) .subscribe(onSuccess: {[unowned self] traineeDataModel in self.rows.removeAll() self.traineeDataModel = traineeDataModel self.rows += traineeDataModel.rows! itemsSubject.onNext(self.rows)//消息rx print("coachInfoListRequest成功") vc.isEmptyDisplay = true vc.hideLoadAnimation() vc.tableView.reloadData() vc.stopRefresh() NotificationCenter.default.post(name: Notification.updateItemTopTotalNameNotification, object: [traineeDataModel.total,Int(self.state)!]) }, onError: { error in vc.stopRefresh() }) .disposed(by: vc.disposeBag) } return }else if(self.type == .biandstu){ //绑定学员 self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: coachId, coachId: "", field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state) .subscribe(onSuccess: {[unowned self] traineeDataModel in self.rows.removeAll() self.traineeDataModel = traineeDataModel self.rows += traineeDataModel.rows! itemsSubject.onNext(self.rows)//消息rx print("coachInfoListRequest成功") vc.isEmptyDisplay = true vc.hideLoadAnimation() vc.tableView.reloadData() vc.stopRefresh() NotificationCenter.default.post(name: Notification.updateItemTopTotalNameNotification, object: [traineeDataModel.total,Int(self.state)!-1]) }, onError: { error in vc.stopRefresh() }) .disposed(by: vc.disposeBag) return } self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state) .subscribe(onSuccess: {[unowned self] traineeDataModel in self.rows.removeAll() self.traineeDataModel = traineeDataModel self.rows += traineeDataModel.rows! itemsSubject.onNext(self.rows)//消息rx print("coachInfoListRequest成功") vc.isEmptyDisplay = true vc.hideLoadAnimation() vc.tableView.reloadData() vc.stopRefresh() NotificationCenter.default.post(name: Notification.updateItemTopTotalNameNotification, object: [traineeDataModel.total,Int(self.state)!-1]) }, onError: { error in vc.stopRefresh() }) .disposed(by: vc.disposeBag) } //更多 func getLoadMore(vc:MeTraineeSubjectPageViewController){ //计算-页数 if (traineeDataModel != nil){ let total = pageSize*self.page if(total<(traineeDataModel?.total)!){ self.page+=1 }else{ vc.stopLoad() return //已经显示完 } } let coachId = schoolId > 0 ? "" : "\(LocalManager.userInfo.id)" if (self.type == .advancet){ //预报名 if state == "0" { self.cocahService.coachTempListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: "") .subscribe(onSuccess: {[unowned self] traineeDataModel in self.traineeDataModel = traineeDataModel if(traineeDataModel.rows!.count>0){ self.rows += traineeDataModel.rows! } itemsSubject.onNext(self.rows)//消息rx print("coachInfoListRequest成功") // vc.tableView.reloadData() vc.stopLoad() }, onError: { error in vc.stopRefresh() }) .disposed(by: vc.disposeBag) }else { self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state) .subscribe(onSuccess: {[unowned self] traineeDataModel in self.traineeDataModel = traineeDataModel if(traineeDataModel.rows!.count>0){ self.rows += traineeDataModel.rows! } itemsSubject.onNext(self.rows)//消息rx print("coachInfoListRequest成功") // vc.tableView.reloadData() vc.stopLoad() }, onError: { error in vc.stopRefresh() }) .disposed(by: vc.disposeBag) } return }else if(self.type == .biandstu){ //绑定学员 self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: coachId, coachId: "", field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state) .subscribe(onSuccess: {[unowned self] traineeDataModel in self.traineeDataModel = traineeDataModel if(traineeDataModel.rows!.count>0){ self.rows += traineeDataModel.rows! } itemsSubject.onNext(self.rows)//消息rx print("coachInfoListRequest成功") // vc.tableView.reloadData() vc.stopLoad() }, onError: { error in vc.stopLoad() }) .disposed(by: vc.disposeBag) return } //请求网络-加载 self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state) .subscribe(onSuccess: {[unowned self] traineeDataModel in self.traineeDataModel = traineeDataModel if(traineeDataModel.rows!.count>0){ self.rows += traineeDataModel.rows! } itemsSubject.onNext(self.rows)//消息rx print("coachInfoListRequest成功") // vc.tableView.reloadData() vc.stopLoad() }, onError: { error in vc.stopLoad() }) .disposed(by: vc.disposeBag) } }