// // CoachService.swift // JiaPeiManage // // Created by Ning.ge on 2023/6/13. // import RxSwift import RxCocoa import SwiftyJSON protocol CoachServiceType { //获取教练信息 func coachInfoRequest(id:String ,city:String) -> Single //获取教练二维码 func coachQrInfoRequest(id:String ,city:String) -> Single //获取我的学员信息list func coachInfoListRequest(city:String,appCoachId:String ,coachId:String ,field:String ,pageNum:Int ,pageSize:Int ,schoolId:Int ,state:String) -> Single //获取全局学员信息list func allStudentInfoListRequest(city:String,coachId:String,field:String ,pageNum:Int ,pageSize:Int ,schoolId:Int ) -> Single //预报名-我的学员-搜索 func yallStudentInfoListRequest(city:String,coachId:String,field:String ,pageNum:Int ,pageSize:Int ,schoolId:Int ) -> Single //预报名-在校学员-搜索 func yallSchoolStudentInfoListRequest(city:String,coachId:String,field:String ,pageNum:Int ,pageSize:Int ,schoolId:Int ) -> Single //获取我的预报名学员信息list func coachTempListRequest(city:String,appCoachId:String ,coachId:String ,field:String ,pageNum:Int ,pageSize:Int ,schoolId:Int ,state:String) -> Single //通过id获取学员详细 func studentInfoByIdRequest(city:String,id:Int) -> Single //通过id获取学员成绩 func stuScoreByOutIdRequest(pageNum:Int ,pageSize:Int ,stuOutId:Int) -> Single //查询签到记录 func stuTmsSignListByStuIdRequest(pageNum:Int ,pageSize:Int ,stuOutId:Int,city:String) -> Single //查询人脸比对记录 func stuLogFaceListByStuIdRequest(pageNum:Int ,pageSize:Int ,stuOutId:Int,city:String) -> Single } final class CoachService: CoachServiceType { private let networking : CoachNetworking init(networking: CoachNetworking) { self.networking = networking } func coachInfoRequest(id: String, city: String) -> RxSwift.Single { let api = CoachAPI.coachInfo(id: id, city: city) return networking.request(api).map(UserInfo.self) } func coachQrInfoRequest(id: String, city: String) -> RxSwift.Single { let api = CoachAPI.coachQrInfo(id: id, city: city) return networking.request(api).map(CoachJsonInfo.self) } func coachInfoListRequest(city: String, appCoachId: String, coachId: String, field: String, pageNum: Int, pageSize: Int, schoolId: Int, state: String) -> RxSwift.Single { let api = CoachAPI.coachInfoList(city: city, appCoachId: appCoachId, coachId: coachId, field: field, pageNum: pageNum, pageSize: pageSize, schoolId: schoolId, state: state) return networking.request(api).map(TraineeDataModel.self,isModel: true) } func allStudentInfoListRequest(city: String,coachId:String, field: String, pageNum: Int, pageSize: Int, schoolId: Int) -> RxSwift.Single { let api = CoachAPI.allStudentInfoList(city: city, coachId: coachId , field: field, pageNum: pageNum, pageSize: pageSize, schoolId: schoolId) return networking.request(api).map(TraineeDataModel.self,isModel: true) } func yallStudentInfoListRequest(city: String, coachId: String, field: String, pageNum: Int, pageSize: Int, schoolId: Int) -> RxSwift.Single { let api = CoachAPI.yallStudentInfoList(city: city, coachId: coachId , field: field, pageNum: pageNum, pageSize: pageSize, schoolId: schoolId) return networking.request(api).map(TraineeDataModel.self,isModel: true) } func yallSchoolStudentInfoListRequest(city: String, coachId: String, field: String, pageNum: Int, pageSize: Int, schoolId: Int) -> RxSwift.Single { let api = CoachAPI.yallSchoolStudentInfoList(city: city, coachId: coachId , field: field, pageNum: pageNum, pageSize: pageSize, schoolId: schoolId) return networking.request(api).map(TraineeDataModel.self,isModel: true) } func coachTempListRequest(city: String, appCoachId: String, coachId: String, field: String, pageNum: Int, pageSize: Int, schoolId: Int, state: String) -> RxSwift.Single { let api = CoachAPI.coachTempList(city: city, appCoachId: appCoachId, coachId: coachId, field: field, pageNum: pageNum, pageSize: pageSize, schoolId: schoolId, state: state) return networking.request(api).map(TraineeDataModel.self,isModel: true) } func studentInfoByIdRequest(city: String, id: Int) -> RxSwift.Single { let api = CoachAPI.studentInfoById(city: city, id: id) return networking.request(api).map(TraineeInfoModel.self) } func stuScoreByOutIdRequest(pageNum: Int, pageSize: Int, stuOutId: Int) -> RxSwift.Single { let api = CoachAPI.stuScoreByOutId(pageNum: pageNum, pageSize: pageSize, stuOutId: stuOutId) return networking.request(api).map(StuResultDataModel.self, isModel: true) } func stuTmsSignListByStuIdRequest(pageNum: Int, pageSize: Int, stuOutId: Int, city: String) -> RxSwift.Single { let api = CoachAPI.stuTmsSignListByStuId(pageNum: pageNum, pageSize: pageSize, stuOutId: stuOutId, city: city) return networking.request(api).map(StuTmsSignDataModel.self, isModel: true) } func stuLogFaceListByStuIdRequest(pageNum: Int, pageSize: Int, stuOutId: Int, city: String) -> RxSwift.Single { let api = CoachAPI.stuTmsLogFaceListByStuId(pageNum: pageNum, pageSize: pageSize, stuOutId: stuOutId, city: city) return networking.request(api).map(StuLogFaceDataModel.self, isModel: true) } }