SwiftMoyaNetWorkServiceUser.swift 37 KB

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