SwiftMoyaNetWorkServiceUser.swift 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. //
  2. // SwiftMoyaNetWorkServiceUser.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2019/3/29.
  6. // Copyright © 2019 南鑫林. All rights reserved.
  7. //
  8. import Foundation
  9. import Moya
  10. import SwiftyJSON
  11. import ObjectMapper
  12. public class SwiftMoyaNetWorkServiceUser: NSObject {
  13. private static let sharedInstance = SwiftMoyaNetWorkServiceUser()
  14. private override init() {} // 私有化init方法
  15. public class func shared() -> SwiftMoyaNetWorkServiceUser {
  16. return sharedInstance
  17. }
  18. /// 数据回调
  19. typealias apiCallBack = (Any) -> (Void)
  20. /// 登录
  21. ///
  22. /// - Parameters:
  23. /// - mobile: 电话号码
  24. /// - password: 用户密码
  25. /// - completion: 回调
  26. func userLoginApi(mobile:String,password:String,completion: @escaping apiCallBack) {
  27. var parameters = Dictionary<String,Any>()
  28. parameters.updateValue(mobile, forKey: "mobile")
  29. parameters.updateValue(password, forKey: "password")
  30. SwiftProgressHUD.shared().showWait()
  31. SwiftMoyaNetWorkManager.shared().request(LoginModel.self ,target: MultiTarget(SwiftMoyaServiceUserApi.login(parameters: parameters))) { (loginModel) in
  32. LoginModel.shared().setLoginModel(loginModel: loginModel as! LoginModel)
  33. SwiftProgressHUD.shared().hide()
  34. completion("")
  35. }
  36. }
  37. /// 登出
  38. ///
  39. /// - Parameters:
  40. /// - completion: 回调
  41. func userLogoutApi() {
  42. let parameters = Dictionary<String,Any>()
  43. SwiftProgressHUD.shared().showWait()
  44. SwiftMoyaNetWorkManager.shared().request(target: MultiTarget(SwiftMoyaServiceUserApi.logout(parameters: parameters))) { (data) in
  45. LoginModel.shared().removeLoginModel()
  46. kAppDelegate.setLoginController()
  47. SwiftProgressHUD.shared().hide()
  48. }
  49. }
  50. /// 刷新令牌
  51. ///
  52. /// - Parameters:
  53. /// - completion: 回调
  54. func userRefreshApi(completion: @escaping apiCallBack) {
  55. let parameters = Dictionary<String,Any>()
  56. SwiftProgressHUD.shared().showWait()
  57. SwiftMoyaNetWorkManager.shared().request(target: MultiTarget(SwiftMoyaServiceUserApi.refresh(parameters: parameters))) { (loginModel) in
  58. LoginModel.shared().setLoginModel(loginModel: loginModel as! LoginModel)
  59. SwiftProgressHUD.shared().hide()
  60. completion("")
  61. }
  62. }
  63. /// 发送短信验证码
  64. ///
  65. /// - Parameters:
  66. /// - mobile: 手机号
  67. /// - completion: 回调
  68. func userSendSmsApi(mobile:String,completion: @escaping apiCallBack) {
  69. var parameters = Dictionary<String,Any>()
  70. parameters.updateValue(mobile, forKey: "mobile")
  71. SwiftProgressHUD.shared().showWait()
  72. SwiftMoyaNetWorkManager.shared().request(target: MultiTarget(SwiftMoyaServiceUserApi.sendSms(parameters: parameters))) { (rootModel) in
  73. let rootModel = rootModel as! RootModel
  74. SwiftProgressHUD.shared().showText(rootModel.msg!)
  75. completion("")
  76. }
  77. }
  78. /// 微信注册/登录
  79. ///
  80. /// - Parameters:
  81. /// - open_id: 微信 open_id
  82. /// - union_id: 微信 string
  83. /// - avatar: 头像
  84. /// - username: 昵称
  85. /// - gender: 性别 1男 2女
  86. /// - completion: 回调
  87. func userWeiXinRegisterApi(open_id:String,union_id:String,avatar:String,username:String,gender:Int,completion: @escaping apiCallBack) {
  88. var parameters = Dictionary<String,Any>()
  89. parameters.updateValue(open_id, forKey: "open_id")
  90. parameters.updateValue(union_id, forKey: "union_id")
  91. parameters.updateValue(avatar, forKey: "avatar")
  92. parameters.updateValue(username, forKey: "username")
  93. parameters.updateValue(gender, forKey: "gender")
  94. SwiftProgressHUD.shared().showWait()
  95. SwiftMoyaNetWorkManager.shared().request(LoginModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.weiXinRegister(parameters: parameters))) { (loginModel) in
  96. LoginModel.shared().setLoginModel(loginModel: loginModel as! LoginModel)
  97. SwiftProgressHUD.shared().hide()
  98. completion("")
  99. }
  100. }
  101. /// 手机注册/登录
  102. ///
  103. /// - Parameters:
  104. /// - mobile: 手机号
  105. /// - sms_code: 短信验证码
  106. /// - completion: 回调
  107. func userMobileRegisterApi(mobile:String,sms_code:String,completion: @escaping apiCallBack) {
  108. var parameters = Dictionary<String,Any>()
  109. parameters.updateValue(mobile, forKey: "mobile")
  110. parameters.updateValue(sms_code, forKey: "sms_code")
  111. SwiftProgressHUD.shared().showWait()
  112. SwiftMoyaNetWorkManager.shared().request(LoginModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.mobileRegister(parameters: parameters))) { (loginModel) in
  113. LoginModel.shared().setLoginModel(loginModel: loginModel as! LoginModel)
  114. SwiftProgressHUD.shared().hide()
  115. completion("")
  116. }
  117. }
  118. /// 手机密码登录
  119. ///
  120. /// - Parameters:
  121. /// - mobile: 手机号
  122. /// - password: 密码
  123. /// - completion: 回调
  124. func userMobileLoginApi(mobile:String,password:String,completion: @escaping apiCallBack) {
  125. var parameters = Dictionary<String,Any>()
  126. parameters.updateValue(mobile, forKey: "mobile")
  127. parameters.updateValue(password, forKey: "password")
  128. SwiftProgressHUD.shared().showWait()
  129. SwiftMoyaNetWorkManager.shared().request(LoginModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.mobileLogin(parameters: parameters))) { (loginModel) in
  130. LoginModel.shared().setLoginModel(loginModel: loginModel as! LoginModel)
  131. SwiftProgressHUD.shared().hide()
  132. completion("")
  133. }
  134. }
  135. /// 绑定微信
  136. ///
  137. /// - Parameters:
  138. /// - mobile: 手机号
  139. /// - umLoginModel: 微信模型
  140. /// - completion: 回调
  141. func userBindWeixinApi(mobile:String,umLoginModel:UMLoginModel,completion: @escaping apiCallBack) {
  142. var parameters = Dictionary<String,Any>()
  143. parameters.updateValue(mobile, forKey: "mobile")
  144. parameters.updateValue(umLoginModel.open_id, forKey: "open_id")
  145. parameters.updateValue(umLoginModel.union_id, forKey: "open_id")
  146. parameters.updateValue(umLoginModel.avatar, forKey: "open_id")
  147. parameters.updateValue(umLoginModel.username, forKey: "open_id")
  148. parameters.updateValue(umLoginModel.gender, forKey: "open_id")
  149. SwiftProgressHUD.shared().showWait()
  150. SwiftMoyaNetWorkManager.shared().request(target: MultiTarget(SwiftMoyaServiceUserApi.bindWeixin(parameters: parameters))) { (rootModel) in
  151. let rootModel = rootModel as! RootModel
  152. SwiftProgressHUD.shared().showText(rootModel.msg!)
  153. completion("")
  154. }
  155. }
  156. /// 绑定手机号
  157. ///
  158. /// - Parameters:
  159. /// - mobile: 手机号
  160. /// - smsCode: 验证码
  161. /// - completion: 回调
  162. func userBindMobileApi(mobile:String,smsCode:String,completion: @escaping apiCallBack) {
  163. var parameters = Dictionary<String,Any>()
  164. parameters.updateValue(mobile, forKey: "mobile")
  165. parameters.updateValue(smsCode, forKey: "sms_code")
  166. SwiftProgressHUD.shared().showWait()
  167. SwiftMoyaNetWorkManager.shared().request(target: MultiTarget(SwiftMoyaServiceUserApi.bindMobile(parameters: parameters))) { (rootModel) in
  168. let rootModel = rootModel as! RootModel
  169. SwiftProgressHUD.shared().showText(rootModel.msg!)
  170. completion("")
  171. }
  172. }
  173. /// 设置密码
  174. ///
  175. /// - Parameters:
  176. /// - mobile: 手机号
  177. /// - password: 密码
  178. /// - password_confirmation: 确认密码
  179. /// - completion: 回调
  180. func userSetPasswordApi(mobile:String,password:String,password_confirmation:String,completion: @escaping apiCallBack) {
  181. var parameters = Dictionary<String,Any>()
  182. parameters.updateValue(mobile, forKey: "mobile")
  183. parameters.updateValue(password, forKey: "password")
  184. parameters.updateValue(password_confirmation, forKey: "password_confirmation")
  185. SwiftProgressHUD.shared().showWait()
  186. SwiftMoyaNetWorkManager.shared().request(target: MultiTarget(SwiftMoyaServiceUserApi.setPassword(parameters: parameters))) { (rootModel) in
  187. let rootModel = rootModel as! RootModel
  188. SwiftProgressHUD.shared().showText(rootModel.msg!)
  189. completion("")
  190. }
  191. }
  192. }