MeTraineeSearchViewModel.swift 5.0 KB

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