MeTraineeSubjectViewModel.swift 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. //
  2. // MeTraineeSubjectViewModel.swift
  3. // JiaPeiManage
  4. //
  5. // Created by Ning.ge on 2023/7/12.
  6. //
  7. import UIKit
  8. import RxSwift
  9. class MeTraineeSubjectViewModel: NSObject {
  10. // MARK: 服务属性
  11. private let cocahService: CoachServiceType = CoachService(networking: CoachNetworking())
  12. private let itemsSubject = BehaviorSubject<[RowInfo]>(value: [])
  13. var items: Observable<[RowInfo]> {
  14. return itemsSubject.asObservable()
  15. }
  16. // MARK: 数据
  17. var traineeDataModel:TraineeDataModel?
  18. var rows:[RowInfo] = []
  19. var page:Int = 1
  20. var pageSize:Int = 10
  21. var state = "1"
  22. var schoolId:Int = 0
  23. var type:TraineeType?
  24. override init() {
  25. super.init()
  26. // searchCoachInfoList()
  27. }
  28. func getCoachInfoList(vc:MeTraineeSubjectPageViewController)
  29. {
  30. page = 1
  31. if (self.type == .advancet){ //预报名
  32. self.cocahService.coachTempListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: "\(LocalManager.userInfo.id)", field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  33. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  34. self.rows.removeAll()
  35. self.traineeDataModel = traineeDataModel
  36. self.rows += traineeDataModel.rows!
  37. itemsSubject.onNext(self.rows)//消息rx
  38. print("coachInfoListRequest成功")
  39. vc.isEmptyDisplay = true
  40. vc.hideLoadAnimation()
  41. vc.tableView.reloadData()
  42. vc.stopRefresh()
  43. }, onError: { error in
  44. vc.stopRefresh()
  45. })
  46. .disposed(by: vc.disposeBag)
  47. return
  48. }else if(self.type == .biandstu){ //绑定学员
  49. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "\(LocalManager.userInfo.id)", coachId: "", field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  50. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  51. self.rows.removeAll()
  52. self.traineeDataModel = traineeDataModel
  53. self.rows += traineeDataModel.rows!
  54. itemsSubject.onNext(self.rows)//消息rx
  55. print("coachInfoListRequest成功")
  56. vc.isEmptyDisplay = true
  57. vc.hideLoadAnimation()
  58. vc.tableView.reloadData()
  59. vc.stopRefresh()
  60. NotificationCenter.default.post(name: Notification.updateItemTopTotalNameNotification, object: [traineeDataModel.total,Int(self.state)!-1])
  61. }, onError: { error in
  62. vc.stopRefresh()
  63. })
  64. .disposed(by: vc.disposeBag)
  65. return
  66. }
  67. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: "\(LocalManager.userInfo.id)", field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  68. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  69. self.rows.removeAll()
  70. self.traineeDataModel = traineeDataModel
  71. self.rows += traineeDataModel.rows!
  72. itemsSubject.onNext(self.rows)//消息rx
  73. print("coachInfoListRequest成功")
  74. vc.isEmptyDisplay = true
  75. vc.hideLoadAnimation()
  76. vc.tableView.reloadData()
  77. vc.stopRefresh()
  78. NotificationCenter.default.post(name: Notification.updateItemTopTotalNameNotification, object: [traineeDataModel.total,Int(self.state)!-1])
  79. }, onError: { error in
  80. vc.stopRefresh()
  81. })
  82. .disposed(by: vc.disposeBag)
  83. }
  84. //更多
  85. func getLoadMore(vc:MeTraineeSubjectPageViewController){
  86. //计算-页数
  87. if (traineeDataModel != nil){
  88. let total = pageSize*self.page
  89. if(total<(traineeDataModel?.total)!){
  90. self.page+=1
  91. }else{
  92. vc.stopLoad()
  93. return //已经显示完
  94. }
  95. }
  96. if (self.type == .advancet){ //预报名
  97. self.cocahService.coachTempListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: "\(LocalManager.userInfo.id)", field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  98. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  99. self.traineeDataModel = traineeDataModel
  100. if(traineeDataModel.rows!.count>0){
  101. self.rows += traineeDataModel.rows!
  102. }
  103. itemsSubject.onNext(self.rows)//消息rx
  104. print("coachInfoListRequest成功")
  105. // vc.tableView.reloadData()
  106. vc.stopLoad()
  107. }, onError: { error in
  108. vc.stopLoad()
  109. })
  110. .disposed(by: vc.disposeBag)
  111. return
  112. }else if(self.type == .biandstu){ //绑定学员
  113. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "\(LocalManager.userInfo.id)", coachId: "", field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  114. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  115. self.traineeDataModel = traineeDataModel
  116. if(traineeDataModel.rows!.count>0){
  117. self.rows += traineeDataModel.rows!
  118. }
  119. itemsSubject.onNext(self.rows)//消息rx
  120. print("coachInfoListRequest成功")
  121. // vc.tableView.reloadData()
  122. vc.stopLoad()
  123. }, onError: { error in
  124. vc.stopLoad()
  125. })
  126. .disposed(by: vc.disposeBag)
  127. return
  128. }
  129. //请求网络-加载
  130. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: "\(LocalManager.userInfo.id)", field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  131. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  132. self.traineeDataModel = traineeDataModel
  133. if(traineeDataModel.rows!.count>0){
  134. self.rows += traineeDataModel.rows!
  135. }
  136. itemsSubject.onNext(self.rows)//消息rx
  137. print("coachInfoListRequest成功")
  138. // vc.tableView.reloadData()
  139. vc.stopLoad()
  140. }, onError: { error in
  141. vc.stopLoad()
  142. })
  143. .disposed(by: vc.disposeBag)
  144. }
  145. }