MeTraineeSearchViewModel.swift 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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.isEmptyDisplay = true
  39. vc.hideLoadAnimation()
  40. vc.stopRefresh()
  41. vc.tableView.reloadData()
  42. return
  43. }
  44. //非绑定的学员 并且 是开启预报名地区
  45. if appCoachId == "" && LocalManager.userInfo.cityPower == "1"{
  46. self.cocahService.allStudentInfoListRequest(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{//绑定的学员+remark=1+ 走原始api
  60. let coachIdStr = (appCoachId == "" ? coachId: "")
  61. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: appCoachId, coachId: coachIdStr, field: keyword, pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  62. .subscribe(onSuccess: { [unowned self] traineeDataModel in
  63. self.rows.removeAll()
  64. self.traineeDataModel = traineeDataModel
  65. self.rows += traineeDataModel.rows!
  66. print("coachInfoListRequest成功")
  67. vc.isEmptyDisplay = true
  68. vc.hideLoadAnimation()
  69. vc.stopRefresh()
  70. vc.tableView.reloadData()
  71. }, onError: { error in
  72. vc.stopRefresh()
  73. })
  74. .disposed(by: vc.disposeBag)
  75. }
  76. }
  77. //更多
  78. func getLoadMore(vc:MeTraineeSearchPageViewController){
  79. //计算-页数
  80. if (traineeDataModel != nil){
  81. let total = pageSize*self.page
  82. if(total<(traineeDataModel?.total)!){
  83. self.page+=1
  84. }else{
  85. vc.stopLoad()
  86. return //已经显示完
  87. }
  88. }
  89. var keyword:String = vc.search_textfield.text!.trimmingCharacters(in: .whitespacesAndNewlines)
  90. //非绑定的学员 并且 是开启预报名地区
  91. if appCoachId == "" && LocalManager.userInfo.cityPower == "1"{
  92. self.cocahService.allStudentInfoListRequest(city: LocalManager.userInfo.city!, coachId:coachId, field: keyword, pageNum: page, pageSize: pageSize, schoolId: schoolId).subscribe(onSuccess: { [unowned self] traineeDataModel in
  93. self.traineeDataModel = traineeDataModel
  94. if(traineeDataModel.rows!.count>0){
  95. self.rows += traineeDataModel.rows!
  96. }
  97. vc.tableView.reloadData()
  98. vc.stopLoad()
  99. }, onError: { error in
  100. vc.stopRefresh()
  101. })
  102. .disposed(by: vc.disposeBag)
  103. }else{//绑定的学员+remark=1+ 走原始api
  104. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: appCoachId, coachId: "", field: keyword, pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  105. .subscribe(onSuccess: { [unowned self] traineeDataModel in
  106. self.traineeDataModel = traineeDataModel
  107. if(traineeDataModel.rows!.count>0){
  108. self.rows += traineeDataModel.rows!
  109. }
  110. vc.tableView.reloadData()
  111. vc.stopLoad()
  112. }, onError: { error in
  113. vc.stopRefresh()
  114. })
  115. .disposed(by: vc.disposeBag)
  116. }
  117. }
  118. }