StatisticsStuListViewModel.swift 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  1. //
  2. // StatisticsStuListViewModel.swift
  3. // JiaPeiManage
  4. //
  5. // Created by Ning.ge on 2024/4/3.
  6. //
  7. import UIKit
  8. import RxSwift
  9. class StatisticsStuListViewModel: 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. var startDate = ""
  25. var endDate = ""
  26. override init() {
  27. super.init()
  28. // searchCoachInfoList()
  29. }
  30. func getCoachInfoList(vc:StatisticsStuListPageController)
  31. {
  32. page = 1
  33. let coachId = "\(LocalManager.userInfo.id)" //8-28 都传入coachId 都由服务端判断
  34. if (self.type == .advancet){ //预报名
  35. if state == "0" {
  36. if (schoolId>0){//在校
  37. self.cocahService.coachTempListDateRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: "",startDate: startDate, endDate: endDate)
  38. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  39. self.rows.removeAll()
  40. self.traineeDataModel = traineeDataModel
  41. self.rows += traineeDataModel.rows!
  42. itemsSubject.onNext(self.rows)//消息rx
  43. print("coachInfoListRequest成功")
  44. vc.isEmptyDisplay = true
  45. vc.hideLoadAnimation()
  46. vc.tableView.reloadData()
  47. vc.stopRefresh()
  48. }, onError: { error in
  49. vc.stopRefresh()
  50. })
  51. .disposed(by: vc.disposeBag)
  52. }else {//我的
  53. self.cocahService.mycoachTempListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: "")
  54. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  55. self.rows.removeAll()
  56. self.traineeDataModel = traineeDataModel
  57. self.rows += traineeDataModel.rows!
  58. itemsSubject.onNext(self.rows)//消息rx
  59. print("coachInfoListRequest成功")
  60. vc.isEmptyDisplay = true
  61. vc.hideLoadAnimation()
  62. vc.tableView.reloadData()
  63. vc.stopRefresh()
  64. }, onError: { error in
  65. vc.stopRefresh()
  66. })
  67. .disposed(by: vc.disposeBag)
  68. }
  69. }else {
  70. if (schoolId>0){//在校
  71. self.cocahService.coachInfoListDateRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state,startDate: startDate, endDate: endDate)
  72. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  73. self.rows.removeAll()
  74. self.traineeDataModel = traineeDataModel
  75. self.rows += traineeDataModel.rows!
  76. itemsSubject.onNext(self.rows)//消息rx
  77. print("coachInfoListRequest成功")
  78. vc.isEmptyDisplay = true
  79. vc.hideLoadAnimation()
  80. vc.tableView.reloadData()
  81. vc.stopRefresh()
  82. }, onError: { error in
  83. vc.stopRefresh()
  84. })
  85. .disposed(by: vc.disposeBag)
  86. }else{//我的
  87. self.cocahService.coachInfoMyListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  88. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  89. self.rows.removeAll()
  90. self.traineeDataModel = traineeDataModel
  91. self.rows += traineeDataModel.rows!
  92. itemsSubject.onNext(self.rows)//消息rx
  93. print("coachInfoListRequest成功")
  94. vc.isEmptyDisplay = true
  95. vc.hideLoadAnimation()
  96. vc.tableView.reloadData()
  97. vc.stopRefresh()
  98. }, onError: { error in
  99. vc.stopRefresh()
  100. })
  101. .disposed(by: vc.disposeBag)
  102. }
  103. }
  104. return
  105. }
  106. if schoolId>0 {//在校
  107. self.cocahService.coachInfoListDateRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state,startDate: startDate, endDate: endDate)
  108. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  109. self.rows.removeAll()
  110. self.traineeDataModel = traineeDataModel
  111. self.rows += traineeDataModel.rows!
  112. itemsSubject.onNext(self.rows)//消息rx
  113. print("coachInfoListRequest成功")
  114. vc.isEmptyDisplay = true
  115. vc.hideLoadAnimation()
  116. vc.tableView.reloadData()
  117. vc.stopRefresh()
  118. }, onError: { error in
  119. vc.stopRefresh()
  120. })
  121. .disposed(by: vc.disposeBag)
  122. }else{//我的
  123. //schoolId = LocalManager.userInfo.schoolId
  124. self.cocahService.coachInfoMyListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  125. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  126. self.rows.removeAll()
  127. self.traineeDataModel = traineeDataModel
  128. self.rows += traineeDataModel.rows!
  129. itemsSubject.onNext(self.rows)//消息rx
  130. print("coachInfoListRequest成功")
  131. vc.isEmptyDisplay = true
  132. vc.hideLoadAnimation()
  133. vc.tableView.reloadData()
  134. vc.stopRefresh()
  135. }, onError: { error in
  136. vc.stopRefresh()
  137. })
  138. .disposed(by: vc.disposeBag)
  139. }
  140. }
  141. //更多
  142. func getLoadMore(vc:StatisticsStuListPageController){
  143. //计算-页数
  144. if (traineeDataModel != nil){
  145. let total = pageSize*self.page
  146. if(total<(traineeDataModel?.total)!){
  147. self.page+=1
  148. }else{
  149. vc.stopLoad()
  150. return //已经显示完
  151. }
  152. }
  153. let coachId = "\(LocalManager.userInfo.id)" //8-28 都传入coachId 都由服务端判断
  154. if (self.type == .advancet){ //预报名
  155. if state == "0" {
  156. if (schoolId>0){//在校
  157. self.cocahService.coachTempListDateRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: "",startDate: startDate, endDate: endDate)
  158. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  159. self.traineeDataModel = traineeDataModel
  160. if(traineeDataModel.rows!.count>0){
  161. self.rows += traineeDataModel.rows!
  162. }
  163. itemsSubject.onNext(self.rows)//消息rx
  164. print("coachInfoListRequest成功")
  165. // vc.tableView.reloadData()
  166. vc.stopLoad()
  167. }, onError: { error in
  168. vc.stopRefresh()
  169. })
  170. .disposed(by: vc.disposeBag)
  171. }else {//我的
  172. self.cocahService.mycoachTempListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: "")
  173. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  174. self.traineeDataModel = traineeDataModel
  175. if(traineeDataModel.rows!.count>0){
  176. self.rows += traineeDataModel.rows!
  177. }
  178. itemsSubject.onNext(self.rows)//消息rx
  179. print("coachInfoListRequest成功")
  180. // vc.tableView.reloadData()
  181. vc.stopLoad()
  182. }, onError: { error in
  183. vc.stopRefresh()
  184. })
  185. .disposed(by: vc.disposeBag)
  186. }
  187. }else {
  188. if (schoolId>0){//在校
  189. self.cocahService.coachInfoListDateRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state,startDate: startDate, endDate: endDate)
  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.stopRefresh()
  201. })
  202. .disposed(by: vc.disposeBag)
  203. }else {//我的
  204. self.cocahService.coachInfoMyListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  205. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  206. self.traineeDataModel = traineeDataModel
  207. if(traineeDataModel.rows!.count>0){
  208. self.rows += traineeDataModel.rows!
  209. }
  210. itemsSubject.onNext(self.rows)//消息rx
  211. print("coachInfoListRequest成功")
  212. // vc.tableView.reloadData()
  213. vc.stopLoad()
  214. }, onError: { error in
  215. vc.stopRefresh()
  216. })
  217. .disposed(by: vc.disposeBag)
  218. }
  219. }
  220. return
  221. }
  222. if schoolId>0 {//在校
  223. //请求网络-加载
  224. self.cocahService.coachInfoListDateRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state,startDate: startDate, endDate: endDate)
  225. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  226. self.traineeDataModel = traineeDataModel
  227. if(traineeDataModel.rows!.count>0){
  228. self.rows += traineeDataModel.rows!
  229. }
  230. itemsSubject.onNext(self.rows)//消息rx
  231. print("coachInfoListDateRequest成功")
  232. // vc.tableView.reloadData()
  233. vc.stopLoad()
  234. }, onError: { error in
  235. vc.stopLoad()
  236. })
  237. .disposed(by: vc.disposeBag)
  238. }else{//我的
  239. //请求网络-加载
  240. self.cocahService.coachInfoMyListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: coachId, field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  241. .subscribe(onSuccess: {[unowned self] traineeDataModel in
  242. self.traineeDataModel = traineeDataModel
  243. if(traineeDataModel.rows!.count>0){
  244. self.rows += traineeDataModel.rows!
  245. }
  246. itemsSubject.onNext(self.rows)//消息rx
  247. print("coachInfoListRequest成功")
  248. // vc.tableView.reloadData()
  249. vc.stopLoad()
  250. }, onError: { error in
  251. vc.stopLoad()
  252. })
  253. .disposed(by: vc.disposeBag)
  254. }
  255. }
  256. }