MeTraineeSubjectViewModel.swift 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  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. if schoolId>0 {//在校
  109. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  110. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  111. self.rows.removeAll()
  112. self.traineeDataModel = traineeDataModel
  113. self.rows += traineeDataModel.rows!
  114. itemsSubject.onNext(self.rows)//消息rx
  115. print("coachInfoListRequest成功")
  116. vc.isEmptyDisplay = true
  117. vc.hideLoadAnimation()
  118. vc.tableView.reloadData()
  119. vc.stopRefresh()
  120. NotificationCenter.default.post(name: Notification.updateItemTopTotalNameNotification, object: [traineeDataModel.total,Int(self.state)!-1])
  121. }, onError: { error in
  122. vc.stopRefresh()
  123. })
  124. .disposed(by: vc.disposeBag)
  125. }else{//我的
  126. schoolId = LocalManager.userInfo.schoolId
  127. self.cocahService.coachInfoMyListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  128. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  129. self.rows.removeAll()
  130. self.traineeDataModel = traineeDataModel
  131. self.rows += traineeDataModel.rows!
  132. itemsSubject.onNext(self.rows)//消息rx
  133. print("coachInfoListRequest成功")
  134. vc.isEmptyDisplay = true
  135. vc.hideLoadAnimation()
  136. vc.tableView.reloadData()
  137. vc.stopRefresh()
  138. NotificationCenter.default.post(name: Notification.updateItemTopTotalNameNotification, object: [traineeDataModel.total,Int(self.state)!-1])
  139. }, onError: { error in
  140. vc.stopRefresh()
  141. })
  142. .disposed(by: vc.disposeBag)
  143. }
  144. }
  145. //更多
  146. func getLoadMore(vc:MeTraineeSubjectPageViewController){
  147. //计算-页数
  148. if (traineeDataModel != nil){
  149. let total = pageSize*self.page
  150. if(total<(traineeDataModel?.total)!){
  151. self.page+=1
  152. }else{
  153. vc.stopLoad()
  154. return //已经显示完
  155. }
  156. }
  157. let coachId = "\(LocalManager.userInfo.id)" //8-28 都传入coachId 都由服务端判断
  158. if (self.type == .advancet){ //预报名
  159. if state == "0" {
  160. self.cocahService.coachTempListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: "")
  161. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  162. self.traineeDataModel = traineeDataModel
  163. if(traineeDataModel.rows!.count>0){
  164. self.rows += traineeDataModel.rows!
  165. }
  166. itemsSubject.onNext(self.rows)//消息rx
  167. print("coachInfoListRequest成功")
  168. // vc.tableView.reloadData()
  169. vc.stopLoad()
  170. }, onError: { error in
  171. vc.stopRefresh()
  172. })
  173. .disposed(by: vc.disposeBag)
  174. }else {
  175. if (schoolId>0){//在校
  176. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  177. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  178. self.traineeDataModel = traineeDataModel
  179. if(traineeDataModel.rows!.count>0){
  180. self.rows += traineeDataModel.rows!
  181. }
  182. itemsSubject.onNext(self.rows)//消息rx
  183. print("coachInfoListRequest成功")
  184. // vc.tableView.reloadData()
  185. vc.stopLoad()
  186. }, onError: { error in
  187. vc.stopRefresh()
  188. })
  189. .disposed(by: vc.disposeBag)
  190. }else {//我的
  191. self.cocahService.coachInfoMyListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  192. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  193. self.traineeDataModel = traineeDataModel
  194. if(traineeDataModel.rows!.count>0){
  195. self.rows += traineeDataModel.rows!
  196. }
  197. itemsSubject.onNext(self.rows)//消息rx
  198. print("coachInfoListRequest成功")
  199. // vc.tableView.reloadData()
  200. vc.stopLoad()
  201. }, onError: { error in
  202. vc.stopRefresh()
  203. })
  204. .disposed(by: vc.disposeBag)
  205. }
  206. }
  207. return
  208. }else if(self.type == .biandstu){ //绑定学员
  209. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: coachId, coachId: "", field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  210. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  211. self.traineeDataModel = traineeDataModel
  212. if(traineeDataModel.rows!.count>0){
  213. self.rows += traineeDataModel.rows!
  214. }
  215. itemsSubject.onNext(self.rows)//消息rx
  216. print("coachInfoListRequest成功")
  217. // vc.tableView.reloadData()
  218. vc.stopLoad()
  219. }, onError: { error in
  220. vc.stopLoad()
  221. })
  222. .disposed(by: vc.disposeBag)
  223. return
  224. }
  225. //请求网络-加载
  226. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  227. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  228. self.traineeDataModel = traineeDataModel
  229. if(traineeDataModel.rows!.count>0){
  230. self.rows += traineeDataModel.rows!
  231. }
  232. itemsSubject.onNext(self.rows)//消息rx
  233. print("coachInfoListRequest成功")
  234. // vc.tableView.reloadData()
  235. vc.stopLoad()
  236. }, onError: { error in
  237. vc.stopLoad()
  238. })
  239. .disposed(by: vc.disposeBag)
  240. }
  241. }