MeTraineeSearchViewModel.swift 6.7 KB

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