SwiftMoyaNetWorkServiceUser.swift 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656
  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. // MARK: - 微信注册/登录
  21. /// 微信注册/登录
  22. ///
  23. /// - Parameters:
  24. /// - open_id: 微信 open_id
  25. /// - union_id: 微信 string
  26. /// - avatar: 头像
  27. /// - username: 昵称
  28. /// - gender: 性别 1男 2女
  29. /// - completion: 回调
  30. func userWeiXinRegisterApi(open_id:String,union_id:String,avatar:String,username:String,gender:Int,completion: @escaping apiCallBack) {
  31. var parameters = Dictionary<String,Any>()
  32. parameters.updateValue(open_id, forKey: "open_id")
  33. parameters.updateValue(union_id, forKey: "union_id")
  34. parameters.updateValue(avatar, forKey: "avatar")
  35. parameters.updateValue(username, forKey: "username")
  36. parameters.updateValue(gender, forKey: "gender")
  37. SwiftProgressHUD.shared().showWait()
  38. SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userWeiXinRegister(parameters: parameters))) { (userModel) in
  39. let userModel = userModel as! UserModel
  40. SwiftProgressHUD.shared().hide()
  41. completion(userModel as Any)
  42. }
  43. }
  44. // MARK: - 手机注册/登录
  45. /// 手机注册/登录
  46. ///
  47. /// - Parameters:
  48. /// - mobile: 手机号
  49. /// - sms_code: 短信验证码
  50. /// - completion: 回调
  51. func userMobileRegisterApi(mobile:String,sms_code:String,invitationCode:String,completion: @escaping apiCallBack) {
  52. if isMobileVerification(mobile: mobile) {
  53. var parameters = Dictionary<String,Any>()
  54. parameters.updateValue(mobile, forKey: "mobile")
  55. parameters.updateValue(sms_code, forKey: "sms_code")
  56. parameters.updateValue(invitationCode, forKey: "invite_code")
  57. SwiftProgressHUD.shared().showWait()
  58. SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMobileRegister(parameters: parameters))) { (userModel) in
  59. UserModel.shared().setModel(model: userModel as! UserModel)
  60. SwiftProgressHUD.shared().hide()
  61. completion("")
  62. }
  63. }
  64. }
  65. // MARK: - 手机密码登录
  66. /// 手机密码登录
  67. ///
  68. /// - Parameters:
  69. /// - mobile: 手机号
  70. /// - password: 密码
  71. /// - completion: 回调
  72. func userMobileLoginApi(mobile:String,password:String,completion: @escaping apiCallBack) {
  73. if isMobileVerification(mobile: mobile) {
  74. var parameters = Dictionary<String,Any>()
  75. parameters.updateValue(mobile, forKey: "mobile")
  76. parameters.updateValue(password, forKey: "password")
  77. SwiftProgressHUD.shared().showWait()
  78. SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMobileLogin(parameters: parameters))) { (userModel) in
  79. UserModel.shared().setModel(model: userModel as! UserModel)
  80. SwiftProgressHUD.shared().hide()
  81. completion("")
  82. }
  83. }
  84. }
  85. // MARK: - 刷新令牌
  86. /// 刷新令牌
  87. ///
  88. /// - Parameters:
  89. /// - completion: 回调
  90. func userRefreshApi(completion: @escaping apiCallBack) {
  91. let parameters = Dictionary<String,Any>()
  92. SwiftProgressHUD.shared().showWait()
  93. SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userRefresh(parameters: parameters))) { (userModel) in
  94. UserModel.shared().setModel(model: userModel as! UserModel)
  95. SwiftProgressHUD.shared().hide()
  96. completion("")
  97. }
  98. }
  99. // MARK: - 登出
  100. /// 登出
  101. ///
  102. /// - Parameters:
  103. /// - completion: 回调
  104. func userLogoutApi() {
  105. let parameters = Dictionary<String,Any>()
  106. SwiftProgressHUD.shared().showWait()
  107. SwiftMoyaNetWorkManager.shared.requestAny(target: MultiTarget(SwiftMoyaServiceUserApi.userLogout(parameters: parameters))) { (data) in
  108. kAppDelegate.setLoginController()
  109. SwiftProgressHUD.shared().hide()
  110. }
  111. }
  112. // MARK: - 绑定手机号
  113. /// 绑定手机号
  114. ///
  115. /// - Parameters:
  116. /// - mobile: 手机号
  117. /// - smsCode: 验证码
  118. /// - unionId: 微信unioId
  119. /// - openId: 微信openId
  120. /// - completion: 回调
  121. func userBindMobileApi(mobile:String,smsCode:String,unionId:String,openId:String,invitationCode:String,completion: @escaping apiCallBack) {
  122. if isMobileVerification(mobile: mobile) {
  123. var parameters = Dictionary<String,Any>()
  124. parameters.updateValue(mobile, forKey: "mobile")
  125. parameters.updateValue(smsCode, forKey: "sms_code")
  126. parameters.updateValue(unionId, forKey: "union_id")
  127. parameters.updateValue(openId, forKey: "open_id")
  128. parameters.updateValue(invitationCode, forKey: "invite_code")
  129. SwiftProgressHUD.shared().showWait()
  130. SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userBindMobile(parameters: parameters))) { (userModel) in
  131. UserModel.shared().setModel(model: userModel as! UserModel)
  132. SwiftProgressHUD.shared().hide()
  133. completion("")
  134. }
  135. }
  136. }
  137. // MARK: - 检查是否绑定微信 绑定
  138. /// 检查是否绑定微信 绑定
  139. ///
  140. /// - Parameters:
  141. /// - umLoginModel: UMLoginModel
  142. /// - completion: 回调
  143. func userIsBindWeixinBindApi(umLoginModel:UMLoginModel,completion: @escaping apiCallBack) {
  144. var parameters = Dictionary<String,Any>()
  145. parameters.updateValue(umLoginModel.union_id, forKey: "union_id")
  146. parameters.updateValue(umLoginModel.open_id, forKey: "open_id")
  147. SwiftProgressHUD.shared().showWait()
  148. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userIsBindWeixin(parameters: parameters))) {
  149. [weak self] (rootModel) in
  150. if rootModel.code == 0 {
  151. SwiftProgressHUD.shared().hide()
  152. self?.userBindWeixinApi(mobile: UserModel.shared().getModel()?.mobile ?? "", umLoginModel: umLoginModel, completion: completion)
  153. }else if rootModel.code == 1 {
  154. SwiftProgressHUD.shared().hide()
  155. AlertSheetView.alert(title: rootModel.msg ?? "此微信号被其他账号绑定,是否要将此微信号绑定至本账号,并解绑另一起账号?", cancelTitle: "取消", sureTitle: "确认", cancelBlock: { (popupView, index, string) in
  156. }, confirmBlock: { (popupView, index, string) in
  157. AlertSheetView.alert(title: "确认后,原账号将无法以此微信登录,请确保原账号有其他登录方式,否则原账号将无法登录", cancelTitle: "取消", sureTitle: "确认", cancelBlock: { (popupView, index, string) in
  158. }, confirmBlock: {
  159. [weak self] (popupView, index, string) in
  160. self?.userBindWeixinApi(mobile: UserModel.shared().getModel()?.mobile ?? "", umLoginModel: umLoginModel, completion: completion)
  161. })
  162. })
  163. }else {
  164. SwiftProgressHUD.shared().showText(rootModel.msg ?? "信息有误")
  165. }
  166. }
  167. }
  168. // MARK: - 绑定手号
  169. /// 绑定手机号
  170. ///
  171. /// - Parameters:w
  172. /// - mobile: 手机号
  173. /// - umLoginModel: 微信模型
  174. /// - completion: 回调
  175. func userBindWeixinApi(mobile:String,umLoginModel:UMLoginModel,completion: @escaping apiCallBack) {
  176. if isMobileVerification(mobile: mobile) {
  177. var parameters = Dictionary<String,Any>()
  178. parameters.updateValue(mobile, forKey: "mobile")
  179. parameters.updateValue(umLoginModel.open_id, forKey: "open_id")
  180. parameters.updateValue(umLoginModel.union_id, forKey: "union_id")
  181. parameters.updateValue(umLoginModel.avatar, forKey: "avatar")
  182. parameters.updateValue(umLoginModel.username, forKey: "username")
  183. parameters.updateValue(umLoginModel.gender, forKey: "gender")
  184. SwiftProgressHUD.shared().showWait()
  185. SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userBindWeixin(parameters: parameters))) { (userModel) in
  186. UserModel.shared().setModel(model: userModel as! UserModel)
  187. SwiftProgressHUD.shared().hide()
  188. completion("")
  189. }
  190. }
  191. }
  192. // MARK: - 解绑微信
  193. /// 解绑微信
  194. ///
  195. /// - Parameters:
  196. /// - unionId: 微信unionId
  197. /// - openId: 微信openId
  198. /// - completion: 回调
  199. func userUnbindWeixinApi(completion: @escaping apiCallBack) {
  200. var parameters = Dictionary<String,Any>()
  201. let userModel = UserModel.shared().getModel()
  202. parameters.updateValue(userModel!.unionId! as Any, forKey: "union_id")
  203. parameters.updateValue(userModel!.openId! as Any, forKey: "open_id")
  204. if userModel?.mobile == nil || userModel?.mobile == "" {
  205. SwiftProgressHUD.shared().showText("暂时不可以解绑,请先绑定手机号")
  206. }else {
  207. SwiftProgressHUD.shared().showWait()
  208. SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userUnbindWeixin(parameters: parameters))) {(userModel) in
  209. UserModel.shared().setModel(model: userModel as! UserModel)
  210. SwiftProgressHUD.shared().hide()
  211. completion("")
  212. }
  213. }
  214. }
  215. // MARK: - 设置密码
  216. /// 设置密码
  217. ///
  218. /// - Parameters:
  219. /// - mobile: 手机号
  220. /// - password: 密码
  221. /// - password_confirmation: 确认密码
  222. /// - completion: 回调
  223. func userSetPasswordApi(mobile:String,password:String,password_confirmation:String,completion: @escaping apiCallBack) {
  224. if isMobileVerification(mobile: mobile) {
  225. var parameters = Dictionary<String,Any>()
  226. parameters.updateValue(mobile, forKey: "mobile")
  227. parameters.updateValue(password, forKey: "password")
  228. parameters.updateValue(password_confirmation, forKey: "password_confirmation")
  229. SwiftProgressHUD.shared().showWait()
  230. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userSetPassword(parameters: parameters))) {(rootModel) in
  231. SwiftProgressHUD.shared().showText(rootModel.msg!)
  232. if rootModel.code == 0 {
  233. let userModel = UserModel.shared().getModel()
  234. let setPasswordModel = SetPasswordModel(JSONString: rootModel.data ?? "")
  235. userModel?.isPassword = setPasswordModel?.isPassword
  236. UserModel.shared().setModel(model: userModel!)
  237. completion("")
  238. }
  239. }
  240. }
  241. }
  242. // MARK: - 用户自提点,快递地址列表
  243. /// 用户自提点,快递地址列表
  244. ///
  245. /// - Parameters:
  246. /// - type: 0所有列表,1自提列表,2快递
  247. /// - city_id: 城市id
  248. /// - completion: 回调
  249. func userSelfAndExpressAddressListApi(type:Int,completion: @escaping apiCallBack) {
  250. var parameters = Dictionary<String,Any>()
  251. let loacationModel = LocationModel.shared().getLocationModel()
  252. let baiduToCityModel = BaiduToCityFactory.shared.query(bjcityId: loacationModel!.cityCode)
  253. parameters.updateValue(baiduToCityModel.areaCode, forKey: "city_id")
  254. parameters.updateValue(type, forKey: "type")
  255. SwiftProgressHUD.shared().showWait()
  256. SwiftMoyaNetWorkManager.shared.requestObject(AddressManagerListModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userSelfAddressList(parameters: parameters))) {(addressManagerListModel) in
  257. SwiftProgressHUD.shared().hide()
  258. completion(addressManagerListModel)
  259. }
  260. }
  261. // MARK: - (新增、编辑)快递地址
  262. /// 新增、编辑)快递地址
  263. ///
  264. /// - Parameters:
  265. /// - id: 表id 修改适合传
  266. /// - contactName: 收货人
  267. /// - contactMobile: 联系电话
  268. /// - provinceId: 省id
  269. /// - provinceName: 省份名称
  270. /// - cityId: 城市id
  271. /// - cityName: 城市名称
  272. /// - areaId: 区id
  273. /// - areaName: 区名称
  274. /// - address: 详细地址
  275. /// - zipcode: 邮政编码 710110
  276. /// - completion: 回调
  277. func userAddExpressAddressApi(expressAddresModel:ExpressAddresModel, completion: @escaping apiCallBack) {
  278. if isMobileVerification(mobile: expressAddresModel.contactMobile ?? "") {
  279. var parameters = Dictionary<String,Any>()
  280. parameters.updateValue(expressAddresModel.id ?? "", forKey: "id")
  281. parameters.updateValue(expressAddresModel.contactName ?? "", forKey: "contact_name")
  282. parameters.updateValue(expressAddresModel.contactMobile ?? "", forKey: "contact_mobile")
  283. parameters.updateValue(expressAddresModel.provinceId ?? "", forKey: "province_id")
  284. parameters.updateValue(expressAddresModel.provinceName ?? "", forKey: "province_name")
  285. parameters.updateValue(expressAddresModel.cityId ?? "", forKey: "city_id")
  286. parameters.updateValue(expressAddresModel.cityName ?? "", forKey: "city_name")
  287. parameters.updateValue(expressAddresModel.areaId ?? "", forKey: "area_id")
  288. parameters.updateValue(expressAddresModel.areaName ?? "", forKey: "area_name")
  289. parameters.updateValue(expressAddresModel.address ?? "", forKey: "address")
  290. SwiftProgressHUD.shared().showWait()
  291. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userAddExpressAddress(parameters: parameters))) {(rootModel) in
  292. SwiftProgressHUD.shared().showText(rootModel.msg!)
  293. if rootModel.code == 0 {
  294. completion("")
  295. }
  296. }
  297. }
  298. }
  299. // MARK: - 设置(自提/快递)默认地址
  300. /// 设置(自提/快递)默认地址
  301. ///
  302. /// - Parameters:
  303. /// - id: 表id 修改适合传
  304. func userAddressIsDefaultApi(id:Int = 0,completion: @escaping apiCallBack) {
  305. var parameters = Dictionary<String,Any>()
  306. parameters.updateValue(id, forKey: "id")
  307. SwiftProgressHUD.shared().showWait()
  308. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userAddressIsDefault(parameters: parameters))) {
  309. (rootModel) in
  310. SwiftProgressHUD.shared().showText(rootModel.msg!)
  311. if rootModel.code == 0 {
  312. completion("")
  313. }
  314. }
  315. }
  316. // MARK: - 删除(自提/快递)地址
  317. /// 删除(自提/快递)地址
  318. ///
  319. /// - Parameters:
  320. /// - id: 地址Id
  321. func userAddressDeleteApi(id:Int = 0,completion: @escaping apiCallBack) {
  322. var parameters = Dictionary<String,Any>()
  323. parameters.updateValue(id, forKey: "id")
  324. SwiftProgressHUD.shared().showWait()
  325. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userAddressDelete(parameters: parameters))) {
  326. (rootModel) in
  327. SwiftProgressHUD.shared().showText(rootModel.msg!)
  328. if rootModel.code == 0 {
  329. completion("")
  330. }
  331. }
  332. }
  333. // MARK: - 自提点收货人列表
  334. /// 自提点收货人列表
  335. ///
  336. /// - Parameter completion: 成功回调
  337. func userExpreesContactsListApi(completion: @escaping apiCallBack) {
  338. let parameters = Dictionary<String,Any>()
  339. SwiftProgressHUD.shared().showWait()
  340. SwiftMoyaNetWorkManager.shared.requestObject(ContactListModel.self, target: MultiTarget(SwiftMoyaServiceUserApi.userExpreesContactsList(parameters: parameters))) { (contactListModel) in
  341. SwiftProgressHUD.shared().hide()
  342. completion(contactListModel)
  343. }
  344. }
  345. // MARK: - 获取默认快递信息
  346. /// 获取默认快递信息
  347. ///
  348. /// - Parameter completion: 成功回调
  349. func userDefaultExpressApi(completion: @escaping apiCallBack) {
  350. let parameters = Dictionary<String,Any>()
  351. SwiftProgressHUD.shared().showWait()
  352. SwiftMoyaNetWorkManager.shared.requestObject(ExpressAddresModel.self, target: MultiTarget(SwiftMoyaServiceUserApi.userDefaultExpress(parameters: parameters))) { (expressAddrModel) in
  353. SwiftProgressHUD.shared().hide()
  354. completion(expressAddrModel as Any)
  355. }
  356. }
  357. // MARK: - 获取默认快递信息
  358. /// 获取默认快递信息
  359. ///
  360. /// - Parameter completion: 成功回调
  361. func userDefaultContactApi(completion: @escaping apiCallBack) {
  362. let parameters = Dictionary<String,Any>()
  363. SwiftProgressHUD.shared().showWait()
  364. SwiftMoyaNetWorkManager.shared.requestObject(SelfMentionContactsModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userDefaultContact(parameters: parameters))) {(contactMdl) in
  365. SwiftProgressHUD.shared().hide()
  366. completion(contactMdl as Any)
  367. }
  368. }
  369. // MARK: - 新增、编辑 自提地址收货人信息
  370. /// 新增、编辑 自提地址收货人信息
  371. ///
  372. /// - Parameters:
  373. /// - id: 收货人id
  374. /// - mobile: 手机号码
  375. /// - name: 用户名
  376. /// - completion: 完成
  377. func userSaveExpreesContactsApi(id:Int = 0,mobile:String = "",name:String = "",completion: @escaping apiCallBack) {
  378. if isMobileVerification(mobile: mobile) {
  379. if name.count <= 0 {
  380. SwiftProgressHUD.shared().showText("收货人信息不能为空")
  381. }else {
  382. var parameters = Dictionary<String,Any>()
  383. if id != 0 {
  384. parameters.updateValue(id, forKey: "id")
  385. }
  386. parameters.updateValue(mobile, forKey: "mobile")
  387. parameters.updateValue(name, forKey: "name")
  388. SwiftProgressHUD.shared().showWait()
  389. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userSaveExpreesContacts(parameters: parameters))) {
  390. (rootModel) in
  391. SwiftProgressHUD.shared().showText(rootModel.msg!)
  392. if rootModel.code == 0 {
  393. completion("")
  394. }
  395. }
  396. }
  397. }
  398. }
  399. // MARK: - 删除自提点收货人信息
  400. /// 删除自提点收货人信息
  401. ///
  402. /// - Parameters:
  403. /// - id: 收货人id
  404. /// - completion: 完成
  405. func userDelExpreesContactsApi(id:Int = 0,completion: @escaping apiCallBack) {
  406. var parameters = Dictionary<String,Any>()
  407. parameters.updateValue(id, forKey: "id")
  408. SwiftProgressHUD.shared().showWait()
  409. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userDelExpreesContacts(parameters: parameters))) {
  410. (rootModel) in
  411. SwiftProgressHUD.shared().showText(rootModel.msg!)
  412. if rootModel.code == 0 {
  413. completion("")
  414. }
  415. }
  416. }
  417. // MARK: - 自提点收货人信息,设置默认
  418. /// 自提点收货人信息,设置默认
  419. ///
  420. /// - Parameters:
  421. /// - id: 收货人id
  422. /// - completion: 完成
  423. func userSetExpreesContactsDefaultApi(id:Int = 0,completion: @escaping apiCallBack) {
  424. var parameters = Dictionary<String,Any>()
  425. parameters.updateValue(id, forKey: "id")
  426. SwiftProgressHUD.shared().showWait()
  427. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userSetExpreesContactsDefault(parameters: parameters))) {
  428. (rootModel) in
  429. SwiftProgressHUD.shared().showText(rootModel.msg!)
  430. if rootModel.code == 0 {
  431. completion("")
  432. }
  433. }
  434. }
  435. // MARK: - 新增自提地址
  436. /// 新增自提地址
  437. ///
  438. /// - Parameters:
  439. /// - pickupNodeId: 自提点id
  440. /// - address: 详细地址
  441. /// - completion: 完成
  442. func userAddSelfAddressApi(cityId:Int = 0,cityName:String = "",pickupNodeId:Int = 0,address:String,completion: @escaping apiCallBack) {
  443. var parameters = Dictionary<String,Any>()
  444. parameters.updateValue(cityId, forKey: "city_id")
  445. parameters.updateValue(cityName, forKey: "city_name")
  446. parameters.updateValue(pickupNodeId, forKey: "pickup_node_id")
  447. parameters.updateValue(address, forKey: "address")
  448. SwiftProgressHUD.shared().showWait()
  449. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userAddSelfAddress(parameters: parameters))) {
  450. (rootModel) in
  451. SwiftProgressHUD.shared().showText(rootModel.msg!)
  452. if rootModel.code == 0 {
  453. completion("")
  454. }
  455. }
  456. }
  457. // MARK: - 设置用户配送方式
  458. /// 设置用户配送方式
  459. ///
  460. /// - Parameters:
  461. /// - deliveryMethodType: 0所有列表,1自提列表,2快递
  462. /// - completion: 返回
  463. func userSetDeliverTypeApi(deliveryMethodType:String = "2",completion: @escaping apiCallBack) {
  464. var parameters = Dictionary<String,Any>()
  465. parameters.updateValue(deliveryMethodType, forKey: "deliver_type")
  466. SwiftProgressHUD.shared().showWait()
  467. SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userSetDeliverType(parameters: parameters))) {
  468. (rootModel) in
  469. SwiftProgressHUD.shared().showText(rootModel.msg!)
  470. if rootModel.code == 0 {
  471. // 设置成功更新本地存储数据
  472. let model = DeliveryMethodTypeModel.shared().getModel()
  473. model?.deliveryMethodType = deliveryMethodType
  474. DeliveryMethodTypeModel.shared().setModel(model: model!)
  475. completion("")
  476. }
  477. }
  478. }
  479. // MARK: - 修改用户性别
  480. /// 修改用户性别
  481. ///
  482. /// - Parameters:
  483. /// - gender: 0位置 1男 2女
  484. /// - completion: 回调
  485. func userGenderApi(gender:Int = 0,completion: @escaping apiCallBack) {
  486. var parameters = Dictionary<String,Any>()
  487. parameters.updateValue(gender, forKey: "gender")
  488. SwiftProgressHUD.shared().showWait()
  489. SwiftMoyaNetWorkManager.shared.requestAny(target: MultiTarget(SwiftMoyaServiceUserApi.userMemberUpdateGender(parameters: parameters))) { (data) in
  490. // 设置成功更新本地存储数据
  491. let model = UserModel.shared().getModel()
  492. model?.gender = gender
  493. UserModel.shared().setModel(model: model!)
  494. SwiftProgressHUD.shared().hide()
  495. completion("")
  496. }
  497. }
  498. // MARK: - 用户信息详情
  499. /// 用户信息详情
  500. ///
  501. /// - Parameter completion: 回调UserDetailModel
  502. func userMemberDetailApi(uid:Int,completion: @escaping apiCallBack) {
  503. var parameters = Dictionary<String,Any>()
  504. parameters.updateValue(uid, forKey: "uid")
  505. SwiftProgressHUD.shared().showWait()
  506. SwiftMoyaNetWorkManager.shared.requestObject(UserDetailModel.self, target: MultiTarget(SwiftMoyaServiceUserApi.userMemberDetail(parameters: parameters))) { (userDetailModel) in
  507. SwiftProgressHUD.shared().hide()
  508. completion(userDetailModel)
  509. }
  510. }
  511. // MARK: - 更新用户信息详情
  512. /// 更新用户信息详情
  513. ///
  514. /// - Parameter completion: 回调UserDetailModel
  515. func userMemberDetailUpDateApi(avatar:String,userName:String,signature:String,completion: @escaping apiCallBack) {
  516. if avatar == "" {
  517. SwiftProgressHUD.shared().showText("头像不能为空")
  518. return
  519. }else if userName == "" {
  520. SwiftProgressHUD.shared().showText("昵称不能为空")
  521. return
  522. }
  523. var parameters = Dictionary<String,Any>()
  524. parameters.updateValue(avatar, forKey: "avatar")
  525. parameters.updateValue(userName, forKey: "username")
  526. parameters.updateValue(signature, forKey: "signature")
  527. SwiftProgressHUD.shared().showWait()
  528. SwiftMoyaNetWorkManager.shared.requestAny(target: MultiTarget(SwiftMoyaServiceUserApi.userMemberDetailUpDate(parameters: parameters))) { (data) in
  529. SwiftProgressHUD.shared().hide()
  530. let userModel = UserModel.shared().getModel()
  531. userModel?.avatarurl = avatar
  532. userModel?.username = userName
  533. UserModel.shared().setModel(model: userModel!)
  534. completion("")
  535. }
  536. }
  537. // MARK: - 用户关注列表
  538. /// 用户关注列表
  539. ///
  540. /// - Parameter completion: 回调UserDetailModel
  541. func userFollowsApi(uid:Int,page:Int = 1,completion: @escaping apiCallBack) {
  542. var parameters = Dictionary<String,Any>()
  543. parameters.updateValue(uid, forKey: "uid")
  544. parameters.updateValue(page, forKey: "page")
  545. SwiftProgressHUD.shared().showWait()
  546. SwiftMoyaNetWorkManager.shared.requestObject(UserFollowsModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userFollows(parameters: parameters))) { (userFollowsModel) in
  547. SwiftProgressHUD.shared().hide()
  548. completion(userFollowsModel)
  549. }
  550. }
  551. // MARK: - 粉丝列表
  552. /// 粉丝列表
  553. ///
  554. /// - Parameter completion: 回调UserDetailModel
  555. func userFansApi(uid:Int,page:Int = 1,completion: @escaping apiCallBack) {
  556. var parameters = Dictionary<String,Any>()
  557. parameters.updateValue(page, forKey: "page")
  558. parameters.updateValue(uid, forKey: "uid")
  559. SwiftProgressHUD.shared().showWait()
  560. SwiftMoyaNetWorkManager.shared.requestObject(UserFansModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userFans(parameters: parameters))) { (userFansModel) in
  561. SwiftProgressHUD.shared().hide()
  562. completion(userFansModel)
  563. }
  564. }
  565. // MARK: - 关注
  566. /// 关注
  567. ///
  568. /// - Parameters:
  569. /// - followUid: 被关注人id
  570. /// - completion: 回调
  571. func userFollowApi(followUid:Int,completion: @escaping apiCallBack) {
  572. var parameters = Dictionary<String,Any>()
  573. parameters.updateValue(followUid, forKey: "follow_uid")
  574. SwiftProgressHUD.shared().showWait()
  575. SwiftMoyaNetWorkManager.shared.requestObject(FollowStatusModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userFollow(parameters: parameters))) { (followStatusModel) in
  576. SwiftProgressHUD.shared().showText("已关注")
  577. completion(followStatusModel)
  578. }
  579. }
  580. // MARK: - 取消关注
  581. /// 取消关注
  582. ///
  583. /// - Parameters:
  584. /// - followUid: 被取消关注人id
  585. /// - completion: 回调
  586. func userCancelFollowApi(followUid:Int,completion: @escaping apiCallBack) {
  587. var parameters = Dictionary<String,Any>()
  588. parameters.updateValue(followUid, forKey: "follow_uid")
  589. SwiftProgressHUD.shared().showWait()
  590. SwiftMoyaNetWorkManager.shared.requestObject(FollowStatusModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userCancelFollow(parameters: parameters))) { (followStatusModel) in
  591. SwiftProgressHUD.shared().showText("已取消关注")
  592. completion(followStatusModel)
  593. }
  594. }
  595. }