CoachService.swift 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. //
  2. // CoachService.swift
  3. // JiaPeiManage
  4. //
  5. // Created by Ning.ge on 2023/6/13.
  6. //
  7. import RxSwift
  8. import RxCocoa
  9. import SwiftyJSON
  10. protocol CoachServiceType {
  11. //获取教练信息
  12. func coachInfoRequest(id:String ,city:String) -> Single<UserInfo>
  13. //获取教练二维码
  14. func coachQrInfoRequest(id:String ,city:String) -> Single<CoachJsonInfo>
  15. //获取我的学员信息list
  16. func coachInfoListRequest(city:String,appCoachId:String ,coachId:String ,field:String ,pageNum:Int ,pageSize:Int ,schoolId:Int ,state:String) -> Single<TraineeDataModel>
  17. func coachInfoListDateRequest(city:String,appCoachId:String ,coachId:String ,field:String ,pageNum:Int ,pageSize:Int ,schoolId:Int ,state:String ,startDate:String ,endDate:String) -> Single<TraineeDataModel>
  18. func coachInfoMyListRequest(city:String,appCoachId:String ,coachId:String ,field:String ,pageNum:Int ,pageSize:Int ,schoolId:Int ,state:String) -> Single<TraineeDataModel>
  19. //获取全局学员信息list
  20. func allStudentInfoListRequest(city:String,coachId:String,field:String ,pageNum:Int ,pageSize:Int ,schoolId:Int ) -> Single<TraineeDataModel>
  21. //预报名-我的学员-搜索
  22. func yallStudentInfoListRequest(city:String,coachId:String,field:String ,pageNum:Int ,pageSize:Int ,schoolId:Int ) -> Single<TraineeDataModel>
  23. //预报名-在校学员-搜索
  24. func yallSchoolStudentInfoListRequest(city:String,coachId:String,field:String ,pageNum:Int ,pageSize:Int ,schoolId:Int ) -> Single<TraineeDataModel>
  25. //获取我的预报名学员信息list
  26. func mycoachTempListRequest(city:String,appCoachId:String ,coachId:String ,field:String ,pageNum:Int ,pageSize:Int ,schoolId:Int ,state:String) -> Single<TraineeDataModel>
  27. //获取在校预报名学员信息list
  28. func coachTempListRequest(city:String,appCoachId:String ,coachId:String ,field:String ,pageNum:Int ,pageSize:Int ,schoolId:Int ,state:String) -> Single<TraineeDataModel>
  29. func coachTempListDateRequest(city:String,appCoachId:String ,coachId:String ,field:String ,pageNum:Int ,pageSize:Int ,schoolId:Int ,state:String, startDate:String ,endDate:String) -> Single<TraineeDataModel>
  30. //通过id获取学员详细
  31. func studentInfoByIdRequest(city:String,id:Int) -> Single<TraineeInfoModel>
  32. //通过id获temp取学员详细
  33. func studentInfoTempByIdRequest(city:String,id:Int) -> Single<TraineeInfoModel>
  34. //温州通过id获取学员详细
  35. func studentInfoApplyByIdRequest(city:String,id:Int,applyDate:String) -> Single<TraineeInfoModel>
  36. //通过id获取学员成绩
  37. func stuScoreByOutIdRequest(pageNum:Int ,pageSize:Int ,stuOutId:Int) -> Single<StuResultDataModel>
  38. //查询签到记录
  39. func stuTmsSignListByStuIdRequest(pageNum:Int ,pageSize:Int ,stuOutId:Int,city:String) -> Single<StuTmsSignDataModel>
  40. //查询人脸比对记录
  41. func stuLogFaceListByStuIdRequest(pageNum:Int ,pageSize:Int ,stuOutId:Int,city:String) -> Single<StuLogFaceDataModel>
  42. }
  43. final class CoachService: CoachServiceType {
  44. private let networking : CoachNetworking
  45. init(networking: CoachNetworking) {
  46. self.networking = networking
  47. }
  48. func coachInfoRequest(id: String, city: String) -> RxSwift.Single<UserInfo> {
  49. let api = CoachAPI.coachInfo(id: id, city: city)
  50. return networking.request(api).map(UserInfo.self)
  51. }
  52. func coachQrInfoRequest(id: String, city: String) -> RxSwift.Single<CoachJsonInfo> {
  53. let api = CoachAPI.coachQrInfo(id: id, city: city)
  54. return networking.request(api).map(CoachJsonInfo.self)
  55. }
  56. func coachInfoListRequest(city: String, appCoachId: String, coachId: String, field: String, pageNum: Int, pageSize: Int, schoolId: Int, state: String) -> RxSwift.Single<TraineeDataModel> {
  57. let api = CoachAPI.coachInfoList(city: city, appCoachId: appCoachId, coachId: coachId, field: field, pageNum: pageNum, pageSize: pageSize, schoolId: schoolId, state: state)
  58. return networking.request(api).map(TraineeDataModel.self,isModel: true)
  59. }
  60. func coachInfoListDateRequest(city: String, appCoachId: String, coachId: String, field: String, pageNum: Int, pageSize: Int, schoolId: Int, state: String, startDate: String, endDate: String) -> RxSwift.Single<TraineeDataModel> {
  61. let api = CoachAPI.coachInfoListDate(city: city, appCoachId: appCoachId, coachId: coachId, field: field, pageNum: pageNum, pageSize: pageSize, schoolId: schoolId, state: state, startDate: startDate, endDate: endDate)
  62. return networking.request(api).map(TraineeDataModel.self,isModel: true)
  63. }
  64. func coachInfoMyListRequest(city: String, appCoachId: String, coachId: String, field: String, pageNum: Int, pageSize: Int, schoolId: Int, state: String) -> RxSwift.Single<TraineeDataModel> {
  65. let api = CoachAPI.coachInfoMyList(city: city, appCoachId: appCoachId, coachId: coachId, field: field, pageNum: pageNum, pageSize: pageSize, schoolId: schoolId, state: state)
  66. return networking.request(api).map(TraineeDataModel.self,isModel: true)
  67. }
  68. func allStudentInfoListRequest(city: String,coachId:String, field: String, pageNum: Int, pageSize: Int, schoolId: Int) -> RxSwift.Single<TraineeDataModel> {
  69. let api = CoachAPI.allStudentInfoList(city: city, coachId: coachId , field: field, pageNum: pageNum, pageSize: pageSize, schoolId: schoolId)
  70. return networking.request(api).map(TraineeDataModel.self,isModel: true)
  71. }
  72. func yallStudentInfoListRequest(city: String, coachId: String, field: String, pageNum: Int, pageSize: Int, schoolId: Int) -> RxSwift.Single<TraineeDataModel> {
  73. let api = CoachAPI.yallStudentInfoList(city: city, coachId: coachId , field: field, pageNum: pageNum, pageSize: pageSize, schoolId: schoolId)
  74. return networking.request(api).map(TraineeDataModel.self,isModel: true)
  75. }
  76. func yallSchoolStudentInfoListRequest(city: String, coachId: String, field: String, pageNum: Int, pageSize: Int, schoolId: Int) -> RxSwift.Single<TraineeDataModel> {
  77. let api = CoachAPI.yallSchoolStudentInfoList(city: city, coachId: coachId , field: field, pageNum: pageNum, pageSize: pageSize, schoolId: schoolId)
  78. return networking.request(api).map(TraineeDataModel.self,isModel: true)
  79. }
  80. func coachTempListRequest(city: String, appCoachId: String, coachId: String, field: String, pageNum: Int, pageSize: Int, schoolId: Int, state: String) -> RxSwift.Single<TraineeDataModel> {
  81. let api = CoachAPI.coachTempList(city: city, appCoachId: appCoachId, coachId: coachId, field: field, pageNum: pageNum, pageSize: pageSize, schoolId: schoolId, state: state)
  82. return networking.request(api).map(TraineeDataModel.self,isModel: true)
  83. }
  84. func coachTempListDateRequest(city: String, appCoachId: String, coachId: String, field: String, pageNum: Int, pageSize: Int, schoolId: Int, state: String, startDate: String, endDate: String) -> RxSwift.Single<TraineeDataModel> {
  85. let api = CoachAPI.coachTempListDate(city: city, appCoachId: appCoachId, coachId: coachId, field: field, pageNum: pageNum, pageSize: pageSize, schoolId: schoolId, state: state, startDate: startDate, endDate: endDate)
  86. return networking.request(api).map(TraineeDataModel.self,isModel: true)
  87. }
  88. func mycoachTempListRequest(city: String, appCoachId: String, coachId: String, field: String, pageNum: Int, pageSize: Int, schoolId: Int, state: String) -> RxSwift.Single<TraineeDataModel> {
  89. let api = CoachAPI.mycoachTempList(city: city, appCoachId: appCoachId, coachId: coachId, field: field, pageNum: pageNum, pageSize: pageSize, schoolId: schoolId, state: state)
  90. return networking.request(api).map(TraineeDataModel.self,isModel: true)
  91. }
  92. func studentInfoByIdRequest(city: String, id: Int) -> RxSwift.Single<TraineeInfoModel> {
  93. let api = CoachAPI.studentInfoById(city: city, id: id)
  94. return networking.request(api).map(TraineeInfoModel.self)
  95. }
  96. func studentInfoTempByIdRequest(city: String, id: Int) -> RxSwift.Single<TraineeInfoModel> {
  97. let api = CoachAPI.studentInfoTempById(city: city, id: id)
  98. return networking.request(api).map(TraineeInfoModel.self)
  99. }
  100. func studentInfoApplyByIdRequest(city:String,id:Int,applyDate:String) -> RxSwift.Single<TraineeInfoModel> {
  101. let api = CoachAPI.studentInfoApplyById(city: city, id: id, applyDate: applyDate)
  102. return networking.request(api).map(TraineeInfoModel.self)
  103. }
  104. func stuScoreByOutIdRequest(pageNum: Int, pageSize: Int, stuOutId: Int) -> RxSwift.Single<StuResultDataModel> {
  105. let api = CoachAPI.stuScoreByOutId(pageNum: pageNum, pageSize: pageSize, stuOutId: stuOutId)
  106. return networking.request(api).map(StuResultDataModel.self, isModel: true)
  107. }
  108. func stuTmsSignListByStuIdRequest(pageNum: Int, pageSize: Int, stuOutId: Int, city: String) -> RxSwift.Single<StuTmsSignDataModel> {
  109. let api = CoachAPI.stuTmsSignListByStuId(pageNum: pageNum, pageSize: pageSize, stuOutId: stuOutId, city: city)
  110. return networking.request(api).map(StuTmsSignDataModel.self, isModel: true)
  111. }
  112. func stuLogFaceListByStuIdRequest(pageNum: Int, pageSize: Int, stuOutId: Int, city: String) -> RxSwift.Single<StuLogFaceDataModel> {
  113. let api = CoachAPI.stuTmsLogFaceListByStuId(pageNum: pageNum, pageSize: pageSize, stuOutId: stuOutId, city: city)
  114. return networking.request(api).map(StuLogFaceDataModel.self, isModel: true)
  115. }
  116. }