MeTraineeSubjectViewModel.swift 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  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. let coachId = schoolId > 0 ? "" : "\(LocalManager.userInfo.id)"
  32. if (self.type == .advancet){ //预报名
  33. if state == "0" {
  34. self.cocahService.coachTempListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: "")
  35. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  36. self.rows.removeAll()
  37. self.traineeDataModel = traineeDataModel
  38. self.rows += traineeDataModel.rows!
  39. itemsSubject.onNext(self.rows)//消息rx
  40. print("coachInfoListRequest成功")
  41. vc.isEmptyDisplay = true
  42. vc.hideLoadAnimation()
  43. vc.tableView.reloadData()
  44. vc.stopRefresh()
  45. NotificationCenter.default.post(name: Notification.updateItemTopTotalNameNotification, object: [traineeDataModel.total,Int(self.state)!])
  46. }, onError: { error in
  47. vc.stopRefresh()
  48. })
  49. .disposed(by: vc.disposeBag)
  50. }else {
  51. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  52. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  53. self.rows.removeAll()
  54. self.traineeDataModel = traineeDataModel
  55. self.rows += traineeDataModel.rows!
  56. itemsSubject.onNext(self.rows)//消息rx
  57. print("coachInfoListRequest成功")
  58. vc.isEmptyDisplay = true
  59. vc.hideLoadAnimation()
  60. vc.tableView.reloadData()
  61. vc.stopRefresh()
  62. NotificationCenter.default.post(name: Notification.updateItemTopTotalNameNotification, object: [traineeDataModel.total,Int(self.state)!])
  63. }, onError: { error in
  64. vc.stopRefresh()
  65. })
  66. .disposed(by: vc.disposeBag)
  67. }
  68. return
  69. }else if(self.type == .biandstu){ //绑定学员
  70. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: coachId, coachId: "", field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  71. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  72. self.rows.removeAll()
  73. self.traineeDataModel = traineeDataModel
  74. self.rows += traineeDataModel.rows!
  75. itemsSubject.onNext(self.rows)//消息rx
  76. print("coachInfoListRequest成功")
  77. vc.isEmptyDisplay = true
  78. vc.hideLoadAnimation()
  79. vc.tableView.reloadData()
  80. vc.stopRefresh()
  81. NotificationCenter.default.post(name: Notification.updateItemTopTotalNameNotification, object: [traineeDataModel.total,Int(self.state)!-1])
  82. }, onError: { error in
  83. vc.stopRefresh()
  84. })
  85. .disposed(by: vc.disposeBag)
  86. return
  87. }
  88. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  89. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  90. self.rows.removeAll()
  91. self.traineeDataModel = traineeDataModel
  92. self.rows += traineeDataModel.rows!
  93. itemsSubject.onNext(self.rows)//消息rx
  94. print("coachInfoListRequest成功")
  95. vc.isEmptyDisplay = true
  96. vc.hideLoadAnimation()
  97. vc.tableView.reloadData()
  98. vc.stopRefresh()
  99. NotificationCenter.default.post(name: Notification.updateItemTopTotalNameNotification, object: [traineeDataModel.total,Int(self.state)!-1])
  100. }, onError: { error in
  101. vc.stopRefresh()
  102. })
  103. .disposed(by: vc.disposeBag)
  104. }
  105. //更多
  106. func getLoadMore(vc:MeTraineeSubjectPageViewController){
  107. //计算-页数
  108. if (traineeDataModel != nil){
  109. let total = pageSize*self.page
  110. if(total<(traineeDataModel?.total)!){
  111. self.page+=1
  112. }else{
  113. vc.stopLoad()
  114. return //已经显示完
  115. }
  116. }
  117. let coachId = schoolId > 0 ? "" : "\(LocalManager.userInfo.id)"
  118. if (self.type == .advancet){ //预报名
  119. if state == "0" {
  120. self.cocahService.coachTempListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: "")
  121. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  122. self.traineeDataModel = traineeDataModel
  123. if(traineeDataModel.rows!.count>0){
  124. self.rows += traineeDataModel.rows!
  125. }
  126. itemsSubject.onNext(self.rows)//消息rx
  127. print("coachInfoListRequest成功")
  128. // vc.tableView.reloadData()
  129. vc.stopLoad()
  130. }, onError: { error in
  131. vc.stopRefresh()
  132. })
  133. .disposed(by: vc.disposeBag)
  134. }else {
  135. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  136. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  137. self.traineeDataModel = traineeDataModel
  138. if(traineeDataModel.rows!.count>0){
  139. self.rows += traineeDataModel.rows!
  140. }
  141. itemsSubject.onNext(self.rows)//消息rx
  142. print("coachInfoListRequest成功")
  143. // vc.tableView.reloadData()
  144. vc.stopLoad()
  145. }, onError: { error in
  146. vc.stopRefresh()
  147. })
  148. .disposed(by: vc.disposeBag)
  149. }
  150. return
  151. }else if(self.type == .biandstu){ //绑定学员
  152. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: coachId, coachId: "", field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  153. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  154. self.traineeDataModel = traineeDataModel
  155. if(traineeDataModel.rows!.count>0){
  156. self.rows += traineeDataModel.rows!
  157. }
  158. itemsSubject.onNext(self.rows)//消息rx
  159. print("coachInfoListRequest成功")
  160. // vc.tableView.reloadData()
  161. vc.stopLoad()
  162. }, onError: { error in
  163. vc.stopLoad()
  164. })
  165. .disposed(by: vc.disposeBag)
  166. return
  167. }
  168. //请求网络-加载
  169. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  170. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  171. self.traineeDataModel = traineeDataModel
  172. if(traineeDataModel.rows!.count>0){
  173. self.rows += traineeDataModel.rows!
  174. }
  175. itemsSubject.onNext(self.rows)//消息rx
  176. print("coachInfoListRequest成功")
  177. // vc.tableView.reloadData()
  178. vc.stopLoad()
  179. }, onError: { error in
  180. vc.stopLoad()
  181. })
  182. .disposed(by: vc.disposeBag)
  183. }
  184. }