MeTraineeSearchViewModel.swift 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  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. coachId = "\(LocalManager.userInfo.id)" //8-28 都传入coachId 都由服务端判断
  34. print("网络请求")
  35. var keyword:String = vc.search_textfield.text!.trimmingCharacters(in: .whitespacesAndNewlines)
  36. if keyword == "" {
  37. self.traineeDataModel?.total = 0
  38. self.rows.removeAll()
  39. vc.hideLoadAnimation()
  40. vc.stopRefresh()
  41. vc.tableView.reloadData()
  42. return
  43. }
  44. //非绑定的学员 并且 是开启预报名地区
  45. if appCoachId == "" && LocalManager.userInfo.cityPower == "1"{
  46. if schoolId>0 {//在校
  47. self.cocahService.yallSchoolStudentInfoListRequest(city: LocalManager.userInfo.city!, coachId:coachId, field: keyword, pageNum: page, pageSize: pageSize, schoolId: schoolId).subscribe(onSuccess: { [unowned self] traineeDataModel in
  48. self.rows.removeAll()
  49. self.traineeDataModel = traineeDataModel
  50. self.rows += traineeDataModel.rows!
  51. print("coachInfoListRequest成功")
  52. vc.isEmptyDisplay = true
  53. vc.hideLoadAnimation()
  54. vc.stopRefresh()
  55. vc.tableView.reloadData()
  56. }, onError: { error in
  57. vc.stopRefresh()
  58. })
  59. .disposed(by: vc.disposeBag)
  60. }else{//我的
  61. self.cocahService.yallStudentInfoListRequest(city: LocalManager.userInfo.city!, coachId:coachId, field: keyword, pageNum: page, pageSize: pageSize, schoolId: schoolId).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. }else{//绑定的学员+remark=1+ 走原始api
  76. // let coachIdStr = (appCoachId == "" ? coachId: "")
  77. if (schoolId==0 && appCoachId == "") {//我的 - 非绑定学员
  78. self.cocahService.coachInfoMyListRequest(city: LocalManager.userInfo.city!, appCoachId: appCoachId, coachId: coachId, field: keyword, pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  79. .subscribe(onSuccess: { [unowned self] traineeDataModel in
  80. self.rows.removeAll()
  81. self.traineeDataModel = traineeDataModel
  82. self.rows += traineeDataModel.rows!
  83. print("coachInfoMyListRequest成功")
  84. vc.isEmptyDisplay = true
  85. vc.hideLoadAnimation()
  86. vc.stopRefresh()
  87. vc.tableView.reloadData()
  88. }, onError: { error in
  89. vc.stopRefresh()
  90. })
  91. .disposed(by: vc.disposeBag)
  92. }else{//在校和绑定走同接口
  93. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: appCoachId, coachId: coachId, field: keyword, pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  94. .subscribe(onSuccess: { [unowned self] traineeDataModel in
  95. self.rows.removeAll()
  96. self.traineeDataModel = traineeDataModel
  97. self.rows += traineeDataModel.rows!
  98. print("coachInfoListRequest成功")
  99. vc.isEmptyDisplay = true
  100. vc.hideLoadAnimation()
  101. vc.stopRefresh()
  102. vc.tableView.reloadData()
  103. }, onError: { error in
  104. vc.stopRefresh()
  105. })
  106. .disposed(by: vc.disposeBag)
  107. }
  108. }
  109. }
  110. //更多
  111. func getLoadMore(vc:MeTraineeSearchPageViewController){
  112. coachId = "\(LocalManager.userInfo.id)" //8-28 都传入coachId 都由服务端判断
  113. //计算-页数
  114. if (traineeDataModel != nil){
  115. let total = pageSize*self.page
  116. if(total<(traineeDataModel?.total)!){
  117. self.page+=1
  118. }else{
  119. vc.stopLoad()
  120. return //已经显示完
  121. }
  122. }
  123. var keyword:String = vc.search_textfield.text!.trimmingCharacters(in: .whitespacesAndNewlines)
  124. //非绑定的学员 并且 是开启预报名地区
  125. if appCoachId == "" && LocalManager.userInfo.cityPower == "1"{
  126. if schoolId>0 {//在校
  127. self.cocahService.yallSchoolStudentInfoListRequest(city: LocalManager.userInfo.city!, coachId:coachId, field: keyword, pageNum: page, pageSize: pageSize, schoolId: schoolId).subscribe(onSuccess: { [unowned self] traineeDataModel in
  128. self.traineeDataModel = traineeDataModel
  129. if(traineeDataModel.rows!.count>0){
  130. self.rows += traineeDataModel.rows!
  131. }
  132. vc.tableView.reloadData()
  133. vc.stopLoad()
  134. }, onError: { error in
  135. vc.stopRefresh()
  136. })
  137. .disposed(by: vc.disposeBag)
  138. }else{//我的
  139. self.cocahService.yallStudentInfoListRequest(city: LocalManager.userInfo.city!, coachId:coachId, field: keyword, pageNum: page, pageSize: pageSize, schoolId: schoolId).subscribe(onSuccess: { [unowned self] traineeDataModel in
  140. self.traineeDataModel = traineeDataModel
  141. if(traineeDataModel.rows!.count>0){
  142. self.rows += traineeDataModel.rows!
  143. }
  144. vc.tableView.reloadData()
  145. vc.stopLoad()
  146. }, onError: { error in
  147. vc.stopRefresh()
  148. })
  149. .disposed(by: vc.disposeBag)
  150. }
  151. }else{//绑定的学员+remark=1+ 走原始api
  152. if schoolId>0 {//在校
  153. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: appCoachId, coachId: coachId, field: keyword, pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  154. .subscribe(onSuccess: { [unowned self] traineeDataModel in
  155. self.traineeDataModel = traineeDataModel
  156. if(traineeDataModel.rows!.count>0){
  157. self.rows += traineeDataModel.rows!
  158. }
  159. vc.tableView.reloadData()
  160. vc.stopLoad()
  161. }, onError: { error in
  162. vc.stopRefresh()
  163. })
  164. .disposed(by: vc.disposeBag)
  165. }else {
  166. self.cocahService.coachInfoMyListRequest(city: LocalManager.userInfo.city!, appCoachId: appCoachId, coachId: coachId, field: keyword, pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  167. .subscribe(onSuccess: { [unowned self] traineeDataModel in
  168. self.traineeDataModel = traineeDataModel
  169. if(traineeDataModel.rows!.count>0){
  170. self.rows += traineeDataModel.rows!
  171. }
  172. vc.tableView.reloadData()
  173. vc.stopLoad()
  174. }, onError: { error in
  175. vc.stopRefresh()
  176. })
  177. .disposed(by: vc.disposeBag)
  178. }
  179. }
  180. }
  181. }