MeTraineeSubjectViewModel.swift 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  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 = "\(LocalManager.userInfo.id)" //8-28 都传入coachId 都由服务端判断
  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. if (schoolId>0){//在校
  52. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  53. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  54. self.rows.removeAll()
  55. self.traineeDataModel = traineeDataModel
  56. self.rows += traineeDataModel.rows!
  57. itemsSubject.onNext(self.rows)//消息rx
  58. print("coachInfoListRequest成功")
  59. vc.isEmptyDisplay = true
  60. vc.hideLoadAnimation()
  61. vc.tableView.reloadData()
  62. vc.stopRefresh()
  63. NotificationCenter.default.post(name: Notification.updateItemTopTotalNameNotification, object: [traineeDataModel.total,Int(self.state)!])
  64. }, onError: { error in
  65. vc.stopRefresh()
  66. })
  67. .disposed(by: vc.disposeBag)
  68. }else{//我的
  69. schoolId = LocalManager.userInfo.schoolId
  70. self.cocahService.coachInfoMyListRequest(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)!])
  82. }, onError: { error in
  83. vc.stopRefresh()
  84. })
  85. .disposed(by: vc.disposeBag)
  86. }
  87. }
  88. return
  89. }else if(self.type == .biandstu){ //绑定学员
  90. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: coachId, coachId: "", field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  91. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  92. self.rows.removeAll()
  93. self.traineeDataModel = traineeDataModel
  94. self.rows += traineeDataModel.rows!
  95. itemsSubject.onNext(self.rows)//消息rx
  96. print("coachInfoListRequest成功")
  97. vc.isEmptyDisplay = true
  98. vc.hideLoadAnimation()
  99. vc.tableView.reloadData()
  100. vc.stopRefresh()
  101. NotificationCenter.default.post(name: Notification.updateItemTopTotalNameNotification, object: [traineeDataModel.total,Int(self.state)!-1])
  102. }, onError: { error in
  103. vc.stopRefresh()
  104. })
  105. .disposed(by: vc.disposeBag)
  106. return
  107. }
  108. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  109. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  110. self.rows.removeAll()
  111. self.traineeDataModel = traineeDataModel
  112. self.rows += traineeDataModel.rows!
  113. itemsSubject.onNext(self.rows)//消息rx
  114. print("coachInfoListRequest成功")
  115. vc.isEmptyDisplay = true
  116. vc.hideLoadAnimation()
  117. vc.tableView.reloadData()
  118. vc.stopRefresh()
  119. NotificationCenter.default.post(name: Notification.updateItemTopTotalNameNotification, object: [traineeDataModel.total,Int(self.state)!-1])
  120. }, onError: { error in
  121. vc.stopRefresh()
  122. })
  123. .disposed(by: vc.disposeBag)
  124. }
  125. //更多
  126. func getLoadMore(vc:MeTraineeSubjectPageViewController){
  127. //计算-页数
  128. if (traineeDataModel != nil){
  129. let total = pageSize*self.page
  130. if(total<(traineeDataModel?.total)!){
  131. self.page+=1
  132. }else{
  133. vc.stopLoad()
  134. return //已经显示完
  135. }
  136. }
  137. let coachId = "\(LocalManager.userInfo.id)" //8-28 都传入coachId 都由服务端判断
  138. if (self.type == .advancet){ //预报名
  139. if state == "0" {
  140. self.cocahService.coachTempListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: "")
  141. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  142. self.traineeDataModel = traineeDataModel
  143. if(traineeDataModel.rows!.count>0){
  144. self.rows += traineeDataModel.rows!
  145. }
  146. itemsSubject.onNext(self.rows)//消息rx
  147. print("coachInfoListRequest成功")
  148. // vc.tableView.reloadData()
  149. vc.stopLoad()
  150. }, onError: { error in
  151. vc.stopRefresh()
  152. })
  153. .disposed(by: vc.disposeBag)
  154. }else {
  155. if (schoolId>0){//在校
  156. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  157. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  158. self.traineeDataModel = traineeDataModel
  159. if(traineeDataModel.rows!.count>0){
  160. self.rows += traineeDataModel.rows!
  161. }
  162. itemsSubject.onNext(self.rows)//消息rx
  163. print("coachInfoListRequest成功")
  164. // vc.tableView.reloadData()
  165. vc.stopLoad()
  166. }, onError: { error in
  167. vc.stopRefresh()
  168. })
  169. .disposed(by: vc.disposeBag)
  170. }else {//我的
  171. self.cocahService.coachInfoMyListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  172. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  173. self.traineeDataModel = traineeDataModel
  174. if(traineeDataModel.rows!.count>0){
  175. self.rows += traineeDataModel.rows!
  176. }
  177. itemsSubject.onNext(self.rows)//消息rx
  178. print("coachInfoListRequest成功")
  179. // vc.tableView.reloadData()
  180. vc.stopLoad()
  181. }, onError: { error in
  182. vc.stopRefresh()
  183. })
  184. .disposed(by: vc.disposeBag)
  185. }
  186. }
  187. return
  188. }else if(self.type == .biandstu){ //绑定学员
  189. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: coachId, coachId: "", field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  190. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  191. self.traineeDataModel = traineeDataModel
  192. if(traineeDataModel.rows!.count>0){
  193. self.rows += traineeDataModel.rows!
  194. }
  195. itemsSubject.onNext(self.rows)//消息rx
  196. print("coachInfoListRequest成功")
  197. // vc.tableView.reloadData()
  198. vc.stopLoad()
  199. }, onError: { error in
  200. vc.stopLoad()
  201. })
  202. .disposed(by: vc.disposeBag)
  203. return
  204. }
  205. //请求网络-加载
  206. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  207. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  208. self.traineeDataModel = traineeDataModel
  209. if(traineeDataModel.rows!.count>0){
  210. self.rows += traineeDataModel.rows!
  211. }
  212. itemsSubject.onNext(self.rows)//消息rx
  213. print("coachInfoListRequest成功")
  214. // vc.tableView.reloadData()
  215. vc.stopLoad()
  216. }, onError: { error in
  217. vc.stopLoad()
  218. })
  219. .disposed(by: vc.disposeBag)
  220. }
  221. }