CoachService.swift 4.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. //获取全局学员信息list
  18. func allStudentInfoListRequest(city:String,coachId:String,field:String ,pageNum:Int ,pageSize:Int ,schoolId:Int ) -> Single<TraineeDataModel>
  19. //获取我的预报名学员信息list
  20. func coachTempListRequest(city:String,appCoachId:String ,coachId:String ,field:String ,pageNum:Int ,pageSize:Int ,schoolId:Int ,state:String) -> Single<TraineeDataModel>
  21. //通过id获取学员详细
  22. func studentInfoByIdRequest(city:String,id:Int) -> Single<TraineeInfoModel>
  23. //通过id获取学员成绩
  24. func stuScoreByOutIdRequest(pageNum:Int ,pageSize:Int ,stuOutId:Int) -> Single<StuResultDataModel>
  25. //查询签到记录
  26. func stuTmsSignListByStuIdRequest(pageNum:Int ,pageSize:Int ,stuOutId:Int,city:String) -> Single<StuTmsSignDataModel>
  27. //查询人脸比对记录
  28. func stuLogFacListByStuIdRequest(pageNum:Int ,pageSize:Int ,stuOutId:Int,city:String) -> Single<StuLogFacDataModel>
  29. }
  30. final class CoachService: CoachServiceType {
  31. private let networking : CoachNetworking
  32. init(networking: CoachNetworking) {
  33. self.networking = networking
  34. }
  35. func coachInfoRequest(id: String, city: String) -> RxSwift.Single<UserInfo> {
  36. let api = CoachAPI.coachInfo(id: id, city: city)
  37. return networking.request(api).map(UserInfo.self)
  38. }
  39. func coachQrInfoRequest(id: String, city: String) -> RxSwift.Single<CoachJsonInfo> {
  40. let api = CoachAPI.coachQrInfo(id: id, city: city)
  41. return networking.request(api).map(CoachJsonInfo.self)
  42. }
  43. func coachInfoListRequest(city: String, appCoachId: String, coachId: String, field: String, pageNum: Int, pageSize: Int, schoolId: Int, state: String) -> RxSwift.Single<TraineeDataModel> {
  44. let api = CoachAPI.coachInfoList(city: city, appCoachId: appCoachId, coachId: coachId, field: field, pageNum: pageNum, pageSize: pageSize, schoolId: schoolId, state: state)
  45. return networking.request(api).map(TraineeDataModel.self,isModel: true)
  46. }
  47. func allStudentInfoListRequest(city: String,coachId:String, field: String, pageNum: Int, pageSize: Int, schoolId: Int) -> RxSwift.Single<TraineeDataModel> {
  48. let api = CoachAPI.allStudentInfoList(city: city, coachId: coachId , field: field, pageNum: pageNum, pageSize: pageSize, schoolId: schoolId)
  49. return networking.request(api).map(TraineeDataModel.self,isModel: true)
  50. }
  51. func coachTempListRequest(city: String, appCoachId: String, coachId: String, field: String, pageNum: Int, pageSize: Int, schoolId: Int, state: String) -> RxSwift.Single<TraineeDataModel> {
  52. let api = CoachAPI.coachTempList(city: city, appCoachId: appCoachId, coachId: coachId, field: field, pageNum: pageNum, pageSize: pageSize, schoolId: schoolId, state: state)
  53. return networking.request(api).map(TraineeDataModel.self,isModel: true)
  54. }
  55. func studentInfoByIdRequest(city: String, id: Int) -> RxSwift.Single<TraineeInfoModel> {
  56. let api = CoachAPI.studentInfoById(city: city, id: id)
  57. return networking.request(api).map(TraineeInfoModel.self)
  58. }
  59. func stuScoreByOutIdRequest(pageNum: Int, pageSize: Int, stuOutId: Int) -> RxSwift.Single<StuResultDataModel> {
  60. let api = CoachAPI.stuScoreByOutId(pageNum: pageNum, pageSize: pageSize, stuOutId: stuOutId)
  61. return networking.request(api).map(StuResultDataModel.self, isModel: true)
  62. }
  63. func stuTmsSignListByStuIdRequest(pageNum: Int, pageSize: Int, stuOutId: Int, city: String) -> RxSwift.Single<StuTmsSignDataModel> {
  64. let api = CoachAPI.stuTmsSignListByStuId(pageNum: pageNum, pageSize: pageSize, stuOutId: stuOutId, city: city)
  65. return networking.request(api).map(StuTmsSignDataModel.self, isModel: true)
  66. }
  67. func stuLogFacListByStuIdRequest(pageNum: Int, pageSize: Int, stuOutId: Int, city: String) -> RxSwift.Single<StuLogFacDataModel> {
  68. let api = CoachAPI.stuTmsLogFacListByStuId(pageNum: pageNum, pageSize: pageSize, stuOutId: stuOutId, city: city)
  69. return networking.request(api).map(StuLogFacDataModel.self, isModel: true)
  70. }
  71. }