LoginService.swift 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //
  2. // LoginService.swift
  3. // JiaPeiManage
  4. //
  5. // Created by Ning.ge on 2023/6/12.
  6. //
  7. import RxSwift
  8. import RxCocoa
  9. import SwiftyJSON
  10. protocol LoginServiceType {
  11. func loginRequest(user_name: String, user_password: String, city:String) -> Single<UserInfo>
  12. func updateRequest(user_name: String, user_password: String,new_password: String, city:String) -> Single<UpdateDataModel>
  13. func dictRequest(dictType:String) -> Single<[CityItem]>
  14. //授权
  15. func authorizationRequest(code: String, city:String) -> Single<AuthorizationDataModel>
  16. //绑定
  17. func biandUserRequest(idcard:String, user_password:String, openid:String,city:String) -> Single<UserInfo>
  18. //解绑
  19. func unbiandUserRequest(idcard:String, user_password:String, city:String) -> Single<JpMsgDataModel>
  20. }
  21. final class LoginService: LoginServiceType {
  22. private let networking : LoginNetworking
  23. init(networking: LoginNetworking) {
  24. self.networking = networking
  25. }
  26. //登录
  27. func loginRequest(user_name: String, user_password: String,city:String) -> RxSwift.Single<UserInfo> {
  28. let api = LoginAPI.loginUser(user_name: user_name, user_password: user_password,city: city)
  29. return networking.request(api).map(UserInfo.self)
  30. }
  31. //修改密码
  32. func updateRequest(user_name: String, user_password: String, new_password: String, city: String) -> RxSwift.Single<UpdateDataModel> {
  33. let api = LoginAPI.updateUser(user_name: user_name, user_password: user_password, new_password: new_password, city: city)
  34. return networking.request(api).map(UpdateDataModel.self, isModel: true)
  35. }
  36. //获取地区字典
  37. func dictRequest(dictType: String) -> RxSwift.Single<[CityItem]> {
  38. let api = LoginAPI.dictUser(dictType: dictType)
  39. return networking.request(api).map(CityItem.self)
  40. }
  41. func authorizationRequest(code: String, city: String) -> RxSwift.Single<AuthorizationDataModel> {
  42. let api = LoginAPI.authorizationCode(code: code, city: city)
  43. return networking.request(api).map(AuthorizationDataModel.self,isModel: true)
  44. }
  45. func biandUserRequest(idcard: String, user_password: String, openid: String, city: String) -> RxSwift.Single<UserInfo> {
  46. let api = LoginAPI.biandUser(idcard: idcard, user_password: user_password, openid: openid, city: city)
  47. return networking.request(api).map(UserInfo.self)
  48. }
  49. func unbiandUserRequest(idcard: String, user_password: String, city: String) -> RxSwift.Single<JpMsgDataModel> {
  50. let api = LoginAPI.unbiandUser(idcard: idcard, user_password: user_password, city: city)
  51. return networking.request(api).map(JpMsgDataModel.self,isModel: true)
  52. }
  53. }