SwiftMoyaNetWorkServiceUser.swift 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896
  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. // MARK: - 第三方注册/登录
  19. /// 第三方注册/登录
  20. ///
  21. /// - Parameters:
  22. /// - loginType: 登录类型
  23. /// - open_id: 微信 open_id
  24. /// - union_id: 微信 string
  25. /// - avatar: 头像
  26. /// - username: 昵称
  27. /// - gender: 性别 1男 2女
  28. /// - completion: 回调
  29. func userTripartiteRegisterTLoginApi(loginType:LoginType = .weixin,open_id:String,union_id:String,avatar:String,username:String,gender:Int,completion: @escaping successCallBack) {
  30. var parameters = Dictionary<String,Any>()
  31. parameters.updateValue(open_id, forKey: "open_id")
  32. parameters.updateValue(union_id, forKey: "union_id")
  33. parameters.updateValue(avatar, forKey: "avatar")
  34. parameters.updateValue(username, forKey: "username")
  35. parameters.updateValue(gender, forKey: "gender")
  36. parameters.updateValue(loginType.rawValue, forKey: "login_type")
  37. SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userWeiXinRegister(parameters: parameters))) { (userModel) in
  38. UserModel.shared().setModel(model: userModel as! UserModel)
  39. let userModel = userModel as! UserModel
  40. completion(userModel as Any)
  41. }
  42. SwiftMoyaNetWorkManager.shared.failCallback = {
  43. (loadingStatus) in
  44. }
  45. }
  46. // MARK: - 手机注册/登录
  47. /// 手机注册/登录
  48. ///
  49. /// - Parameters:
  50. /// - mobile: 手机号
  51. /// - sms_code: 短信验证码
  52. /// - completion: 回调
  53. func userMobileRegisterApi(mobile:String,sms_code:String,invitationCode:String,completion: @escaping successCallBack) {
  54. if isMobileVerification(mobile: mobile) {
  55. var parameters = Dictionary<String,Any>()
  56. parameters.updateValue(mobile, forKey: "mobile")
  57. parameters.updateValue(sms_code, forKey: "sms_code")
  58. parameters.updateValue(invitationCode, forKey: "invite_code")
  59. SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMobileRegister(parameters: parameters))) { (userModel) in
  60. UserModel.shared().setModel(model: userModel as! UserModel)
  61. completion("")
  62. }
  63. SwiftMoyaNetWorkManager.shared.failCallback = {
  64. (loadingStatus) in
  65. }
  66. }
  67. }
  68. // MARK: - 手机密码登录
  69. /// 手机密码登录
  70. ///
  71. /// - Parameters:
  72. /// - mobile: 手机号
  73. /// - password: 密码
  74. /// - completion: 回调
  75. func userMobileLoginApi(mobile:String,password:String,completion: @escaping successCallBack) {
  76. if isMobileVerification(mobile: mobile) {
  77. var parameters = Dictionary<String,Any>()
  78. parameters.updateValue(mobile, forKey: "mobile")
  79. parameters.updateValue(password, forKey: "password")
  80. SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMobileLogin(parameters: parameters))) { (userModel) in
  81. UserModel.shared().setModel(model: userModel as! UserModel)
  82. completion("")
  83. }
  84. SwiftMoyaNetWorkManager.shared.failCallback = {
  85. (loadingStatus) in
  86. }
  87. }
  88. }
  89. // MARK: - 刷新令牌
  90. /// 刷新令牌
  91. ///
  92. /// - Parameters:
  93. /// - completion: 回调
  94. func userRefreshApi(completion: @escaping successCallBack) {
  95. let parameters = Dictionary<String,Any>()
  96. SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userRefresh(parameters: parameters))) { (userModel) in
  97. UserModel.shared().setModel(model: userModel as! UserModel)
  98. completion("")
  99. }
  100. SwiftMoyaNetWorkManager.shared.failCallback = {
  101. (loadingStatus) in
  102. }
  103. }
  104. // MARK: - 登出
  105. /// 登出
  106. ///
  107. /// - Parameters:
  108. /// - completion: 回调
  109. func userLogoutApi() {
  110. let parameters = Dictionary<String,Any>()
  111. SwiftMoyaNetWorkManager.shared.requestAny(target: MultiTarget(SwiftMoyaServiceUserApi.userLogout(parameters: parameters))) { (data) in
  112. // 设置友盟别名
  113. kAppDelegate.setLoginOut()
  114. }
  115. SwiftMoyaNetWorkManager.shared.failCallback = {
  116. (loadingStatus) in
  117. }
  118. }
  119. // MARK: - 绑定手机号
  120. /// 绑定手机号
  121. ///
  122. /// - Parameters:
  123. /// - mobile: 手机号
  124. /// - smsCode: 验证码
  125. /// - unionId: 微信unioId
  126. /// - openId: 微信openId
  127. /// - completion: 回调
  128. func userBindMobileApi(mobile:String,smsCode:String,unionId:String,openId:String,invitationCode:String,completion: @escaping successCallBack) {
  129. if isMobileVerification(mobile: mobile) {
  130. var parameters = Dictionary<String,Any>()
  131. parameters.updateValue(mobile, forKey: "mobile")
  132. parameters.updateValue(smsCode, forKey: "sms_code")
  133. parameters.updateValue(unionId, forKey: "union_id")
  134. parameters.updateValue(openId, forKey: "open_id")
  135. parameters.updateValue(invitationCode, forKey: "invite_code")
  136. SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userBindMobile(parameters: parameters))) { (userModel) in
  137. UserModel.shared().setModel(model: userModel as! UserModel)
  138. completion("")
  139. }
  140. SwiftMoyaNetWorkManager.shared.failCallback = {
  141. (loadingStatus) in
  142. }
  143. }
  144. }
  145. // MARK: - 换绑手机号码
  146. /// 换绑手机号码
  147. ///
  148. /// - Parameters:
  149. /// - mobile: 手机号
  150. /// - smsCode: 验证码
  151. /// - completion: 回调
  152. func userchangeBindMobileApi(mobile:String,smsCode:String,completion: @escaping successCallBack) {
  153. if isMobileVerification(mobile: mobile) {
  154. var parameters = Dictionary<String,Any>()
  155. parameters.updateValue(mobile, forKey: "mobile")
  156. parameters.updateValue(smsCode, forKey: "sms_code")
  157. SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userchangeBindMobile(parameters: parameters))) { (userModel) in
  158. UserModel.shared().setModel(model: userModel as! UserModel)
  159. completion("")
  160. }
  161. SwiftMoyaNetWorkManager.shared.failCallback = {
  162. (loadingStatus) in
  163. }
  164. }
  165. }
  166. // MARK: - 检查是否绑定微信 绑定
  167. /// 检查是否绑定微信 绑定
  168. ///
  169. /// - Parameters:
  170. /// - umLoginModel: UMLoginModel
  171. /// - completion: 回调
  172. func userIsBindTripartiteBindApi(loginType:LoginType = .weixin,umLoginModel:UMLoginModel,completion: @escaping successCallBack) {
  173. var parameters = Dictionary<String,Any>()
  174. parameters.updateValue(umLoginModel.union_id, forKey: "union_id")
  175. parameters.updateValue(umLoginModel.open_id, forKey: "open_id")
  176. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userIsBindWeixin(parameters: parameters))) {
  177. [weak self] (rootModel) in
  178. if rootModel.code == 0 {
  179. self?.userBindTripartiteApi(loginType:loginType, mobile: UserModel.shared().getModel()?.mobile ?? "", umLoginModel: umLoginModel, completion: completion)
  180. }else if rootModel.code == 1 {
  181. var nameStr : String = "微信"
  182. if loginType == .weixin {
  183. nameStr = "微信"
  184. }else if loginType == .qq {
  185. nameStr = "QQ"
  186. }
  187. AlertSheetView.alert(title: rootModel.msg ?? "此\(nameStr)号被其他账号绑定,是否要将此\(nameStr)号绑定至本账号,并解绑另一起账号?", cancelTitle: "取消", sureTitle: "确认", cancelBlock: { (popupView, index, string) in
  188. }, confirmBlock: { (popupView, index, string) in
  189. AlertSheetView.alert(title: "确认后,原账号将无法以此\(nameStr)登录,请确保原账号有其他登录方式,否则原账号将无法登录", cancelTitle: "取消", sureTitle: "确认", cancelBlock: { (popupView, index, string) in
  190. }, confirmBlock: {
  191. [weak self] (popupView, index, string) in
  192. self?.userBindTripartiteApi(loginType:loginType,mobile: UserModel.shared().getModel()?.mobile ?? "", umLoginModel: umLoginModel, completion: completion)
  193. })
  194. })
  195. }else {
  196. SwiftProgressHUD.shared().showText(rootModel.msg ?? "信息有误")
  197. }
  198. }
  199. SwiftMoyaNetWorkManager.shared.failCallback = {
  200. (loadingStatus) in
  201. }
  202. }
  203. // MARK: - 绑定手号
  204. /// 绑定手机号
  205. ///
  206. /// - Parameters:w
  207. /// - mobile: 手机号
  208. /// - umLoginModel: 微信模型
  209. /// - completion: 回调
  210. func userBindTripartiteApi(loginType:LoginType = .weixin,mobile:String,umLoginModel:UMLoginModel,completion: @escaping successCallBack) {
  211. if isMobileVerification(mobile: mobile) {
  212. var parameters = Dictionary<String,Any>()
  213. parameters.updateValue(mobile, forKey: "mobile")
  214. parameters.updateValue(umLoginModel.open_id, forKey: "open_id")
  215. parameters.updateValue(umLoginModel.union_id, forKey: "union_id")
  216. parameters.updateValue(umLoginModel.avatar, forKey: "avatar")
  217. parameters.updateValue(umLoginModel.username, forKey: "username")
  218. parameters.updateValue(umLoginModel.gender, forKey: "gender")
  219. parameters.updateValue(umLoginModel.gender, forKey: "gender")
  220. SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userBindWeixin(parameters: parameters))) { (userModel) in
  221. UserModel.shared().setModel(model: userModel as! UserModel)
  222. completion("")
  223. }
  224. SwiftMoyaNetWorkManager.shared.failCallback = {
  225. (loadingStatus) in
  226. }
  227. }
  228. }
  229. // MARK: - 解绑微信
  230. /// 解绑微信
  231. ///
  232. /// - Parameters:
  233. /// - unionId: 微信unionId
  234. /// - openId: 微信openId
  235. /// - completion: 回调
  236. func userUnbindWeixinApi(completion: @escaping successCallBack) {
  237. var parameters = Dictionary<String,Any>()
  238. let userModel = UserModel.shared().getModel()
  239. parameters.updateValue(userModel?.bindWeixinUserModel?.unionId as Any, forKey: "union_id")
  240. parameters.updateValue(userModel?.bindWeixinUserModel?.unionId as Any, forKey: "open_id")
  241. if userModel?.mobile == nil || userModel?.mobile == "" {
  242. SwiftProgressHUD.shared().showText("暂时不可以解绑,请先绑定手机号")
  243. }else {
  244. SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userUnbindWeixin(parameters: parameters))) {(userModel) in
  245. UserModel.shared().setModel(model: userModel as! UserModel)
  246. completion("")
  247. }
  248. SwiftMoyaNetWorkManager.shared.failCallback = {
  249. (loadingStatus) in
  250. }
  251. }
  252. }
  253. // MARK: - 设置密码
  254. /// 设置密码
  255. ///
  256. /// - Parameters:
  257. /// - mobile: 手机号
  258. /// - password: 密码
  259. /// - password_confirmation: 确认密码
  260. /// - completion: 回调
  261. func userSetPasswordApi(mobile:String,password:String,password_confirmation:String,completion: @escaping successCallBack) {
  262. if isMobileVerification(mobile: mobile) {
  263. var parameters = Dictionary<String,Any>()
  264. parameters.updateValue(mobile, forKey: "mobile")
  265. parameters.updateValue(password, forKey: "password")
  266. parameters.updateValue(password_confirmation, forKey: "password_confirmation")
  267. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userSetPassword(parameters: parameters))) {(rootModel) in
  268. SwiftProgressHUD.shared().showText(rootModel.msg!)
  269. if rootModel.code == 0 {
  270. let userModel = UserModel.shared().getModel()
  271. let setPasswordModel = SetPasswordModel(JSONString: rootModel.data ?? "")
  272. userModel?.isPassword = setPasswordModel?.isPassword
  273. UserModel.shared().setModel(model: userModel!)
  274. completion("")
  275. }
  276. }
  277. SwiftMoyaNetWorkManager.shared.failCallback = {
  278. (loadingStatus) in
  279. }
  280. }
  281. }
  282. // MARK: - 用户自提点,快递地址列表
  283. /// 用户自提点,快递地址列表
  284. ///
  285. /// - Parameters:
  286. /// - type: 0所有列表,1自提列表,2快递
  287. /// - city_id: 城市id
  288. /// - completion: 回调
  289. func userSelfAndExpressAddressListApi(type:Int,completion: @escaping successCallBack) {
  290. var parameters = Dictionary<String,Any>()
  291. let loacationModel = LocationModel.shared().object()
  292. let baiduToCityModel = BaiduToCityFactory.shared.query(bjcityId: loacationModel!.cityCode)
  293. parameters.updateValue(baiduToCityModel.areaCode, forKey: "city_id")
  294. parameters.updateValue(type, forKey: "type")
  295. SwiftMoyaNetWorkManager.shared.requestObject(AddressManagerListModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userSelfAddressList(parameters: parameters))) {(addressManagerListModel) in
  296. completion(addressManagerListModel)
  297. }
  298. SwiftMoyaNetWorkManager.shared.failCallback = {
  299. (loadingStatus) in
  300. }
  301. }
  302. // MARK: - (新增、编辑)快递地址
  303. /// 新增、编辑)快递地址
  304. ///
  305. /// - Parameters:
  306. /// - id: 表id 修改适合传
  307. /// - contactName: 收货人
  308. /// - contactMobile: 联系电话
  309. /// - provinceId: 省id
  310. /// - provinceName: 省份名称
  311. /// - cityId: 城市id
  312. /// - cityName: 城市名称
  313. /// - areaId: 区id
  314. /// - areaName: 区名称
  315. /// - address: 详细地址
  316. /// - zipcode: 邮政编码 710110
  317. /// - completion: 回调
  318. func userAddExpressAddressApi(expressAddresModel:ExpressAddresModel, completion: @escaping successCallBack) {
  319. if isMobileVerification(mobile: expressAddresModel.contactMobile ?? "") {
  320. var parameters = Dictionary<String,Any>()
  321. parameters.updateValue(expressAddresModel.id ?? "", forKey: "id")
  322. parameters.updateValue(expressAddresModel.contactName ?? "", forKey: "contact_name")
  323. parameters.updateValue(expressAddresModel.contactMobile ?? "", forKey: "contact_mobile")
  324. parameters.updateValue(expressAddresModel.provinceId ?? "", forKey: "province_id")
  325. parameters.updateValue(expressAddresModel.provinceName ?? "", forKey: "province_name")
  326. parameters.updateValue(expressAddresModel.cityId ?? "", forKey: "city_id")
  327. parameters.updateValue(expressAddresModel.cityName ?? "", forKey: "city_name")
  328. parameters.updateValue(expressAddresModel.areaId ?? "", forKey: "area_id")
  329. parameters.updateValue(expressAddresModel.areaName ?? "", forKey: "area_name")
  330. parameters.updateValue(expressAddresModel.address ?? "", forKey: "address")
  331. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userAddExpressAddress(parameters: parameters))) {(rootModel) in
  332. SwiftProgressHUD.shared().showText(rootModel.msg!)
  333. if rootModel.code == 0 {
  334. completion("")
  335. }
  336. }
  337. SwiftMoyaNetWorkManager.shared.failCallback = {
  338. (loadingStatus) in
  339. }
  340. }
  341. }
  342. // MARK: - 设置(自提/快递)默认地址
  343. /// 设置(自提/快递)默认地址
  344. ///
  345. /// - Parameters:
  346. /// - id: 表id 修改适合传
  347. func userAddressIsDefaultApi(id:Int = 0,completion: @escaping successCallBack) {
  348. var parameters = Dictionary<String,Any>()
  349. parameters.updateValue(id, forKey: "id")
  350. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userAddressIsDefault(parameters: parameters))) {
  351. (rootModel) in
  352. SwiftProgressHUD.shared().showText(rootModel.msg!)
  353. if rootModel.code == 0 {
  354. completion("")
  355. }
  356. SwiftMoyaNetWorkManager.shared.failCallback = {
  357. (loadingStatus) in
  358. }
  359. }
  360. }
  361. // MARK: - 删除(自提/快递)地址
  362. /// 删除(自提/快递)地址
  363. ///
  364. /// - Parameters:
  365. /// - id: 地址Id
  366. func userAddressDeleteApi(id:Int = 0,completion: @escaping successCallBack) {
  367. var parameters = Dictionary<String,Any>()
  368. parameters.updateValue(id, forKey: "id")
  369. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userAddressDelete(parameters: parameters))) {
  370. (rootModel) in
  371. SwiftProgressHUD.shared().showText(rootModel.msg!)
  372. if rootModel.code == 0 {
  373. completion("")
  374. }
  375. }
  376. SwiftMoyaNetWorkManager.shared.failCallback = {
  377. (loadingStatus) in
  378. }
  379. }
  380. // MARK: - 自提点收货人列表
  381. /// 自提点收货人列表
  382. ///
  383. /// - Parameter completion: 成功回调
  384. func userExpreesContactsListApi(completion: @escaping successCallBack) {
  385. let parameters = Dictionary<String,Any>()
  386. SwiftMoyaNetWorkManager.shared.requestObject(ContactListModel.self, target: MultiTarget(SwiftMoyaServiceUserApi.userExpreesContactsList(parameters: parameters))) { (contactListModel) in
  387. completion(contactListModel)
  388. }
  389. SwiftMoyaNetWorkManager.shared.failCallback = {
  390. (loadingStatus) in
  391. }
  392. }
  393. // MARK: - 获取默认快递信息
  394. /// 获取默认快递信息
  395. ///
  396. /// - Parameter completion: 成功回调
  397. func userDefaultExpressApi(completion: @escaping successCallBack) {
  398. let parameters = Dictionary<String,Any>()
  399. SwiftMoyaNetWorkManager.shared.requestObject(ExpressAddresModel.self, target: MultiTarget(SwiftMoyaServiceUserApi.userDefaultExpress(parameters: parameters))) { (expressAddrModel) in
  400. completion(expressAddrModel as Any)
  401. }
  402. SwiftMoyaNetWorkManager.shared.failCallback = {
  403. (loadingStatus) in
  404. }
  405. }
  406. // MARK: - 获取默认快递信息
  407. /// 获取默认快递信息
  408. ///
  409. /// - Parameter completion: 成功回调
  410. func userDefaultContactApi(completion: @escaping successCallBack) {
  411. let parameters = Dictionary<String,Any>()
  412. SwiftMoyaNetWorkManager.shared.requestObject(SelfMentionContactsModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userDefaultContact(parameters: parameters))) {(contactMdl) in
  413. completion(contactMdl as Any)
  414. }
  415. SwiftMoyaNetWorkManager.shared.failCallback = {
  416. (loadingStatus) in
  417. }
  418. }
  419. // MARK: - 新增、编辑 自提地址收货人信息
  420. /// 新增、编辑 自提地址收货人信息
  421. ///
  422. /// - Parameters:
  423. /// - id: 收货人id
  424. /// - mobile: 手机号码
  425. /// - name: 用户名
  426. /// - completion: 完成
  427. func userSaveExpreesContactsApi(id:Int = 0,mobile:String = "",name:String = "",completion: @escaping successCallBack) {
  428. if isMobileVerification(mobile: mobile) {
  429. if name.count <= 0 {
  430. SwiftProgressHUD.shared().showText("收货人信息不能为空")
  431. }else {
  432. var parameters = Dictionary<String,Any>()
  433. if id != 0 {
  434. parameters.updateValue(id, forKey: "id")
  435. }
  436. parameters.updateValue(mobile, forKey: "mobile")
  437. parameters.updateValue(name, forKey: "name")
  438. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userSaveExpreesContacts(parameters: parameters))) {
  439. (rootModel) in
  440. SwiftProgressHUD.shared().showText(rootModel.msg!)
  441. if rootModel.code == 0 {
  442. completion("")
  443. }
  444. }
  445. }
  446. }
  447. }
  448. // MARK: - 删除自提点收货人信息
  449. /// 删除自提点收货人信息
  450. ///
  451. /// - Parameters:
  452. /// - id: 收货人id
  453. /// - completion: 完成
  454. func userDelExpreesContactsApi(id:Int = 0,completion: @escaping successCallBack) {
  455. var parameters = Dictionary<String,Any>()
  456. parameters.updateValue(id, forKey: "id")
  457. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userDelExpreesContacts(parameters: parameters))) {
  458. (rootModel) in
  459. SwiftProgressHUD.shared().showText(rootModel.msg!)
  460. if rootModel.code == 0 {
  461. completion("")
  462. }
  463. }
  464. SwiftMoyaNetWorkManager.shared.failCallback = {
  465. (loadingStatus) in
  466. }
  467. }
  468. // MARK: - 自提点收货人信息,设置默认
  469. /// 自提点收货人信息,设置默认
  470. ///
  471. /// - Parameters:
  472. /// - id: 收货人id
  473. /// - completion: 完成
  474. func userSetExpreesContactsDefaultApi(id:Int = 0,completion: @escaping successCallBack) {
  475. var parameters = Dictionary<String,Any>()
  476. parameters.updateValue(id, forKey: "id")
  477. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userSetExpreesContactsDefault(parameters: parameters))) {
  478. (rootModel) in
  479. SwiftProgressHUD.shared().showText(rootModel.msg!)
  480. if rootModel.code == 0 {
  481. completion("")
  482. }
  483. }
  484. SwiftMoyaNetWorkManager.shared.failCallback = {
  485. (loadingStatus) in
  486. }
  487. }
  488. // MARK: - 新增自提地址
  489. /// 新增自提地址
  490. ///
  491. /// - Parameters:
  492. /// - pickupNodeId: 自提点id
  493. /// - address: 详细地址
  494. /// - completion: 完成
  495. func userAddSelfAddressApi(cityId:Int = 0,cityName:String = "",pickupNodeId:Int = 0,address:String,completion: @escaping successCallBack) {
  496. var parameters = Dictionary<String,Any>()
  497. parameters.updateValue(cityId, forKey: "city_id")
  498. parameters.updateValue(cityName, forKey: "city_name")
  499. parameters.updateValue(pickupNodeId, forKey: "pickup_node_id")
  500. parameters.updateValue(address, forKey: "address")
  501. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userAddSelfAddress(parameters: parameters))) {
  502. (rootModel) in
  503. SwiftProgressHUD.shared().showText(rootModel.msg!)
  504. if rootModel.code == 0 {
  505. completion("")
  506. }
  507. }
  508. SwiftMoyaNetWorkManager.shared.failCallback = {
  509. (loadingStatus) in
  510. }
  511. }
  512. // MARK: - 设置用户配送方式
  513. /// 设置用户配送方式
  514. ///
  515. /// - Parameters:
  516. /// - deliveryMethodType: 0所有列表,1自提列表,2快递
  517. /// - completion: 返回
  518. func userSetDeliverTypeApi(deliveryMethodType:String = "2",completion: @escaping successCallBack) {
  519. var parameters = Dictionary<String,Any>()
  520. parameters.updateValue(deliveryMethodType, forKey: "deliver_type")
  521. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userSetDeliverType(parameters: parameters))) {
  522. (rootModel) in
  523. SwiftProgressHUD.shared().showText(rootModel.msg!)
  524. if rootModel.code == 0 {
  525. // 设置成功更新本地存储数据
  526. let model = DeliveryMethodTypeModel.shared().getModel()
  527. model?.deliveryMethodType = deliveryMethodType
  528. DeliveryMethodTypeModel.shared().setModel(model: model!)
  529. completion("")
  530. }
  531. }
  532. SwiftMoyaNetWorkManager.shared.failCallback = {
  533. (loadingStatus) in
  534. }
  535. }
  536. // MARK: - 修改用户性别
  537. /// 修改用户性别
  538. ///
  539. /// - Parameters:
  540. /// - gender: 0位置 1男 2女
  541. /// - completion: 回调
  542. func userGenderApi(gender:Int = 0,completion: @escaping successCallBack) {
  543. var parameters = Dictionary<String,Any>()
  544. parameters.updateValue(gender, forKey: "gender")
  545. SwiftMoyaNetWorkManager.shared.requestAny(target: MultiTarget(SwiftMoyaServiceUserApi.userMemberUpdateGender(parameters: parameters))) { (data) in
  546. // 设置成功更新本地存储数据
  547. let model = UserModel.shared().getModel()
  548. model?.gender = gender
  549. UserModel.shared().setModel(model: model!)
  550. completion("")
  551. }
  552. SwiftMoyaNetWorkManager.shared.failCallback = {
  553. (loadingStatus) in
  554. }
  555. }
  556. // MARK: - 用户信息详情
  557. /// 用户信息详情
  558. ///
  559. /// - Parameter completion: 回调UserDetailModel
  560. func userMemberDetailApi(uid:Int,completion: @escaping successCallBack) {
  561. var parameters = Dictionary<String,Any>()
  562. parameters.updateValue(uid, forKey: "uid")
  563. SwiftMoyaNetWorkManager.shared.requestObject(UserDetailModel.self, target: MultiTarget(SwiftMoyaServiceUserApi.userMemberDetail(parameters: parameters))) { (userDetailModel) in
  564. completion(userDetailModel)
  565. }
  566. SwiftMoyaNetWorkManager.shared.failCallback = {
  567. (loadingStatus) in
  568. }
  569. }
  570. // MARK: - 更新用户信息详情
  571. /// 更新用户信息详情
  572. ///
  573. /// - Parameter completion: 回调UserDetailModel
  574. func userMemberDetailUpDateApi(avatar:String,userName:String,signature:String,completion: @escaping successCallBack) {
  575. if avatar == "" {
  576. SwiftProgressHUD.shared().showText("头像不能为空")
  577. return
  578. }else if userName == "" {
  579. SwiftProgressHUD.shared().showText("昵称不能为空")
  580. return
  581. }
  582. var parameters = Dictionary<String,Any>()
  583. parameters.updateValue(avatar, forKey: "avatar")
  584. parameters.updateValue(userName, forKey: "username")
  585. parameters.updateValue(signature, forKey: "signature")
  586. SwiftMoyaNetWorkManager.shared.requestAny(target: MultiTarget(SwiftMoyaServiceUserApi.userMemberDetailUpDate(parameters: parameters))) { (data) in
  587. let userModel = UserModel.shared().getModel()
  588. userModel?.avatarurl = avatar
  589. userModel?.username = userName
  590. UserModel.shared().setModel(model: userModel!)
  591. completion("")
  592. }
  593. SwiftMoyaNetWorkManager.shared.failCallback = {
  594. (loadingStatus) in
  595. }
  596. }
  597. // MARK: - 用户关注列表
  598. /// 用户关注列表
  599. ///
  600. /// - Parameter completion: 回调UserDetailModel
  601. func userFollowsApi(uid:Int,page:Int = 1,completion: @escaping successCallBack,fail:@escaping failCallback) {
  602. var parameters = Dictionary<String,Any>()
  603. parameters.updateValue(uid, forKey: "uid")
  604. parameters.updateValue(page, forKey: "page")
  605. SwiftMoyaNetWorkManager.shared.requestObject(UserFollowsModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userFollows(parameters: parameters))) { (userFollowsModel) in
  606. completion(userFollowsModel)
  607. }
  608. SwiftMoyaNetWorkManager.shared.failCallback = {
  609. (loadingStatus) in
  610. fail(loadingStatus)
  611. }
  612. }
  613. // MARK: - 粉丝列表
  614. /// 粉丝列表
  615. ///
  616. /// - Parameter completion: 回调UserDetailModel
  617. func userFansApi(uid:Int,page:Int = 1,completion: @escaping successCallBack,fail:@escaping failCallback) {
  618. var parameters = Dictionary<String,Any>()
  619. parameters.updateValue(page, forKey: "page")
  620. parameters.updateValue(uid, forKey: "uid")
  621. SwiftMoyaNetWorkManager.shared.requestObject(UserFansModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userFans(parameters: parameters))) { (userFansModel) in
  622. completion(userFansModel)
  623. }
  624. SwiftMoyaNetWorkManager.shared.failCallback = {
  625. (loadingStatus) in
  626. }
  627. }
  628. // MARK: - 关注
  629. /// 关注
  630. ///
  631. /// - Parameters:
  632. /// - followUid: 被关注人id
  633. /// - completion: 回调
  634. func userFollowApi(followUid:Int,completion: @escaping successCallBack) {
  635. if UserModel.isTokenNil() {
  636. kAppDelegate.setLogin()
  637. }else {
  638. var parameters = Dictionary<String,Any>()
  639. parameters.updateValue(followUid, forKey: "follow_uid")
  640. SwiftMoyaNetWorkManager.shared.requestObject(FollowStatusModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userFollow(parameters: parameters))) { (followStatusModel) in
  641. let followStatusModel = followStatusModel as? FollowStatusModel
  642. followStatusModel?.uid = followUid
  643. NotificationCenter.default.post(name: NSNotification.Name(rawValue: "followApi"), object: followStatusModel)
  644. SwiftProgressHUD.shared().showText("已关注")
  645. completion(followStatusModel as Any)
  646. }
  647. SwiftMoyaNetWorkManager.shared.failCallback = {
  648. (loadingStatus) in
  649. }
  650. }
  651. }
  652. // MARK: - 取消关注
  653. /// 取消关注
  654. ///
  655. /// - Parameters:
  656. /// - followUid: 被取消关注人id
  657. /// - completion: 回调
  658. func userCancelFollowApi(followUid:Int,completion: @escaping successCallBack) {
  659. if UserModel.isTokenNil() {
  660. kAppDelegate.setLogin()
  661. }else {
  662. var parameters = Dictionary<String,Any>()
  663. parameters.updateValue(followUid, forKey: "follow_uid")
  664. SwiftMoyaNetWorkManager.shared.requestObject(FollowStatusModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userCancelFollow(parameters: parameters))) { (followStatusModel) in
  665. let followStatusModel = followStatusModel as? FollowStatusModel
  666. followStatusModel?.uid = followUid
  667. NotificationCenter.default.post(name: NSNotification.Name(rawValue: "followApi"), object: followStatusModel)
  668. SwiftProgressHUD.shared().showText("已取消关注")
  669. completion(followStatusModel as Any)
  670. }
  671. SwiftMoyaNetWorkManager.shared.failCallback = {
  672. (loadingStatus) in
  673. }
  674. }
  675. }
  676. // MARK: - 用户消息消息首页
  677. /// 用户消息消息首页
  678. ///
  679. /// - Parameter completion: 回调
  680. func userMemberMessageIndexApi(completion: @escaping successCallBack,fail:@escaping failCallback) {
  681. let parameters = Dictionary<String,Any>()
  682. SwiftMoyaNetWorkManager.shared.requestObject(MessageIndexModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMemberMessageIndex(parameters: parameters))) { (messageIndexModel) in
  683. MessageIndexModel.shared.saveObject(model: messageIndexModel as! MessageIndexModel)
  684. completion(messageIndexModel)
  685. }
  686. SwiftMoyaNetWorkManager.shared.failCallback = {
  687. (loadingStatus) in
  688. fail(loadingStatus)
  689. }
  690. }
  691. // MARK: - 用户消息列表
  692. /// 用户消息列表
  693. ///
  694. /// - Parameters:
  695. /// - messageShowTypes: 活动展示类型 0纯展示;1系统通知消息;2内容消息; 3活动消息; 4话题消息 ;5后台系统消息; 6评论消息; 7回复消息 ;8回复@ 消息;9攒内容消息 ;10收藏内容消息; 11分享内容消息 ;12关注消息
  696. /// - page: 分页
  697. /// - completion: 回调
  698. func userMemberMessageListApi(messageShowTypes:String,page:Int,completion: @escaping successCallBack) {
  699. var parameters = Dictionary<String,Any>()
  700. parameters.updateValue(messageShowTypes, forKey: "message_show_types")
  701. parameters.updateValue(page, forKey: "page")
  702. SwiftMoyaNetWorkManager.shared.requestObject(MessageListModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMemberMessageList(parameters: parameters))) { (messageListModel) in
  703. completion(messageListModel)
  704. }
  705. SwiftMoyaNetWorkManager.shared.failCallback = {
  706. (loadingStatus) in
  707. }
  708. }
  709. // MARK: - 用户消息阅读
  710. /// 用户消息阅读
  711. ///
  712. /// - Parameters:
  713. /// - messageShowTypes: 活动展示类型 0纯展示;1系统通知消息;2内容消息; 3活动消息; 4话题消息 ;5后台系统消息; 6评论消息; 7回复消息 ;8回复@ 消息;9攒内容消息 ;10收藏内容消息; 11分享内容消息 ;12关注消息
  714. /// - completion: 回调
  715. func userMemberReadMessageApi(messageShowTypes:String,completion: @escaping successCallBack) {
  716. var parameters = Dictionary<String,Any>()
  717. parameters.updateValue(messageShowTypes, forKey: "message_show_types")
  718. SwiftMoyaNetWorkManager.shared.requestAny(target: MultiTarget(SwiftMoyaServiceUserApi.userMemberReadMessage(parameters: parameters))) { (data) in
  719. completion("")
  720. }
  721. SwiftMoyaNetWorkManager.shared.failCallback = {
  722. (loadingStatus) in
  723. }
  724. }
  725. // MARK: - 粉丝列表
  726. /// 粉丝列表
  727. ///
  728. /// - Parameter completion: 回调UserDetailModel
  729. func userMemberSearchMemberApi(userName:String,page:Int = 1,completion: @escaping successCallBack,fail: @escaping failCallback) {
  730. var parameters = Dictionary<String,Any>()
  731. parameters.updateValue(page, forKey: "page")
  732. parameters.updateValue(userName, forKey: "username")
  733. SwiftMoyaNetWorkManager.shared.requestObject(SearchMemberListModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMemberSearchMember(parameters: parameters))) { (searchMemberListModel) in
  734. completion(searchMemberListModel)
  735. }
  736. SwiftMoyaNetWorkManager.shared.failCallback = {
  737. (loadingStatus) in
  738. fail(loadingStatus)
  739. }
  740. }
  741. // MARK: - 获取U米
  742. /// 获取U米
  743. ///
  744. /// - Parameter completion: 回调
  745. func userMemberGetTotalBeanApi(completion: @escaping successCallBack) {
  746. let parameters = Dictionary<String,Any>()
  747. SwiftMoyaNetWorkManager.shared.requestObject(TotalBeanModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMemberGetTotalBean(parameters: parameters))) { (totalBeanModel) in
  748. completion(totalBeanModel)
  749. }
  750. SwiftMoyaNetWorkManager.shared.failCallback = {
  751. (loadingStatus) in
  752. }
  753. }
  754. // MARK: - 手机号码一键登录
  755. /// 手机号码一键登录
  756. ///
  757. /// - Parameter completion: 回调
  758. func userMobileAuthorizationLoginApi(token:String,completion: @escaping successCallBack) {
  759. var parameters = Dictionary<String,Any>()
  760. parameters.updateValue(token, forKey: "AccessToken")
  761. SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMobileAuthorizationLogin(parameters: parameters))) { (userModel) in
  762. UserModel.shared().setModel(model: userModel as! UserModel)
  763. completion(userModel)
  764. }
  765. SwiftMoyaNetWorkManager.shared.failCallback = {
  766. (loadingStatus) in
  767. }
  768. }
  769. }