// // SwiftMoyaNetWorkServiceUser.swift // RainbowPlanet // // Created by 南鑫林 on 2019/3/29. // Copyright © 2019 南鑫林. All rights reserved. // import Foundation import Moya import SwiftyJSON import ObjectMapper public class SwiftMoyaNetWorkServiceUser: NSObject { private static let sharedInstance = SwiftMoyaNetWorkServiceUser() private override init() {} // 私有化init方法 public class func shared() -> SwiftMoyaNetWorkServiceUser { return sharedInstance } // MARK: - 第三方注册/登录 /// 第三方注册/登录 /// /// - Parameters: /// - loginType: 登录类型 /// - open_id: 微信 open_id /// - union_id: 微信 string /// - avatar: 头像 /// - username: 昵称 /// - gender: 性别 1男 2女 /// - completion: 回调 func userTripartiteRegisterTLoginApi(loginType:LoginType = .weixin,open_id:String,union_id:String,avatar:String,username:String,gender:Int,completion: @escaping successCallBack) { var parameters = Dictionary() parameters.updateValue(open_id, forKey: "open_id") parameters.updateValue(union_id, forKey: "union_id") parameters.updateValue(avatar, forKey: "avatar") parameters.updateValue(username, forKey: "username") parameters.updateValue(gender, forKey: "gender") parameters.updateValue(loginType.rawValue, forKey: "login_type") SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userWeiXinRegister(parameters: parameters))) { (userModel) in UserModel.shared().setModel(model: userModel as! UserModel) let userModel = userModel as! UserModel completion(userModel as Any) } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 手机注册/登录 /// 手机注册/登录 /// /// - Parameters: /// - mobile: 手机号 /// - sms_code: 短信验证码 /// - completion: 回调 func userMobileRegisterApi(mobile:String,sms_code:String,invitationCode:String,completion: @escaping successCallBack) { if isMobileVerification(mobile: mobile) { var parameters = Dictionary() parameters.updateValue(mobile, forKey: "mobile") parameters.updateValue(sms_code, forKey: "sms_code") parameters.updateValue(invitationCode, forKey: "invite_code") SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMobileRegister(parameters: parameters))) { (userModel) in UserModel.shared().setModel(model: userModel as! UserModel) completion("") } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } } // MARK: - 手机密码登录 /// 手机密码登录 /// /// - Parameters: /// - mobile: 手机号 /// - password: 密码 /// - completion: 回调 func userMobileLoginApi(mobile:String,password:String,completion: @escaping successCallBack) { if isMobileVerification(mobile: mobile) { var parameters = Dictionary() parameters.updateValue(mobile, forKey: "mobile") parameters.updateValue(password, forKey: "password") SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMobileLogin(parameters: parameters))) { (userModel) in UserModel.shared().setModel(model: userModel as! UserModel) completion("") } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } } // MARK: - 刷新令牌 /// 刷新令牌 /// /// - Parameters: /// - completion: 回调 func userRefreshApi(completion: @escaping successCallBack) { let parameters = Dictionary() SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userRefresh(parameters: parameters))) { (userModel) in UserModel.shared().setModel(model: userModel as! UserModel) completion("") } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 登出 /// 登出 /// /// - Parameters: /// - completion: 回调 func userLogoutApi() { let parameters = Dictionary() SwiftMoyaNetWorkManager.shared.requestAny(target: MultiTarget(SwiftMoyaServiceUserApi.userLogout(parameters: parameters))) { (data) in // 设置友盟别名 kAppDelegate.setLoginOut() } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 绑定手机号 /// 绑定手机号 /// /// - Parameters: /// - mobile: 手机号 /// - smsCode: 验证码 /// - unionId: 微信unioId /// - openId: 微信openId /// - completion: 回调 func userBindMobileApi(mobile:String,smsCode:String,unionId:String,openId:String,invitationCode:String,completion: @escaping successCallBack) { if isMobileVerification(mobile: mobile) { var parameters = Dictionary() parameters.updateValue(mobile, forKey: "mobile") parameters.updateValue(smsCode, forKey: "sms_code") parameters.updateValue(unionId, forKey: "union_id") parameters.updateValue(openId, forKey: "open_id") parameters.updateValue(invitationCode, forKey: "invite_code") SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userBindMobile(parameters: parameters))) { (userModel) in UserModel.shared().setModel(model: userModel as! UserModel) completion("") } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } } // MARK: - 换绑手机号码 /// 换绑手机号码 /// /// - Parameters: /// - mobile: 手机号 /// - smsCode: 验证码 /// - completion: 回调 func userchangeBindMobileApi(mobile:String,smsCode:String,completion: @escaping successCallBack) { if isMobileVerification(mobile: mobile) { var parameters = Dictionary() parameters.updateValue(mobile, forKey: "mobile") parameters.updateValue(smsCode, forKey: "sms_code") SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userchangeBindMobile(parameters: parameters))) { (userModel) in UserModel.shared().setModel(model: userModel as! UserModel) completion("") } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } } // MARK: - 检查是否绑定微信 绑定 /// 检查是否绑定微信 绑定 /// /// - Parameters: /// - umLoginModel: UMLoginModel /// - completion: 回调 func userIsBindTripartiteBindApi(loginType:LoginType = .weixin,umLoginModel:UMLoginModel,completion: @escaping successCallBack) { var parameters = Dictionary() parameters.updateValue(umLoginModel.union_id, forKey: "union_id") parameters.updateValue(umLoginModel.open_id, forKey: "open_id") SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userIsBindWeixin(parameters: parameters))) { [weak self] (rootModel) in if rootModel.code == 0 { self?.userBindTripartiteApi(loginType:loginType, mobile: UserModel.shared().getModel()?.mobile ?? "", umLoginModel: umLoginModel, completion: completion) }else if rootModel.code == 1 { var nameStr : String = "微信" if loginType == .weixin { nameStr = "微信" }else if loginType == .qq { nameStr = "QQ" } AlertSheetView.alert(title: rootModel.msg ?? "此\(nameStr)号被其他账号绑定,是否要将此\(nameStr)号绑定至本账号,并解绑另一起账号?", cancelTitle: "取消", sureTitle: "确认", cancelBlock: { (popupView, index, string) in }, confirmBlock: { (popupView, index, string) in AlertSheetView.alert(title: "确认后,原账号将无法以此\(nameStr)登录,请确保原账号有其他登录方式,否则原账号将无法登录", cancelTitle: "取消", sureTitle: "确认", cancelBlock: { (popupView, index, string) in }, confirmBlock: { [weak self] (popupView, index, string) in self?.userBindTripartiteApi(loginType:loginType,mobile: UserModel.shared().getModel()?.mobile ?? "", umLoginModel: umLoginModel, completion: completion) }) }) }else { SwiftProgressHUD.shared().showText(rootModel.msg ?? "信息有误") } } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 绑定手号 /// 绑定手机号 /// /// - Parameters:w /// - mobile: 手机号 /// - umLoginModel: 微信模型 /// - completion: 回调 func userBindTripartiteApi(loginType:LoginType = .weixin,mobile:String,umLoginModel:UMLoginModel,completion: @escaping successCallBack) { if isMobileVerification(mobile: mobile) { var parameters = Dictionary() parameters.updateValue(mobile, forKey: "mobile") parameters.updateValue(umLoginModel.open_id, forKey: "open_id") parameters.updateValue(umLoginModel.union_id, forKey: "union_id") parameters.updateValue(umLoginModel.avatar, forKey: "avatar") parameters.updateValue(umLoginModel.username, forKey: "username") parameters.updateValue(umLoginModel.gender, forKey: "gender") parameters.updateValue(umLoginModel.gender, forKey: "gender") SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userBindWeixin(parameters: parameters))) { (userModel) in UserModel.shared().setModel(model: userModel as! UserModel) completion("") } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } } // MARK: - 解绑微信 /// 解绑微信 /// /// - Parameters: /// - unionId: 微信unionId /// - openId: 微信openId /// - completion: 回调 func userUnbindWeixinApi(completion: @escaping successCallBack) { var parameters = Dictionary() let userModel = UserModel.shared().getModel() parameters.updateValue(userModel?.bindWeixinUserModel?.unionId as Any, forKey: "union_id") parameters.updateValue(userModel?.bindWeixinUserModel?.unionId as Any, forKey: "open_id") if userModel?.mobile == nil || userModel?.mobile == "" { SwiftProgressHUD.shared().showText("暂时不可以解绑,请先绑定手机号") }else { SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userUnbindWeixin(parameters: parameters))) {(userModel) in UserModel.shared().setModel(model: userModel as! UserModel) completion("") } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } } // MARK: - 设置密码 /// 设置密码 /// /// - Parameters: /// - mobile: 手机号 /// - password: 密码 /// - password_confirmation: 确认密码 /// - completion: 回调 func userSetPasswordApi(mobile:String,password:String,password_confirmation:String,completion: @escaping successCallBack) { if isMobileVerification(mobile: mobile) { var parameters = Dictionary() parameters.updateValue(mobile, forKey: "mobile") parameters.updateValue(password, forKey: "password") parameters.updateValue(password_confirmation, forKey: "password_confirmation") SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userSetPassword(parameters: parameters))) {(rootModel) in SwiftProgressHUD.shared().showText(rootModel.msg!) if rootModel.code == 0 { let userModel = UserModel.shared().getModel() let setPasswordModel = SetPasswordModel(JSONString: rootModel.data ?? "") userModel?.isPassword = setPasswordModel?.isPassword UserModel.shared().setModel(model: userModel!) completion("") } } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } } // MARK: - 用户自提点,快递地址列表 /// 用户自提点,快递地址列表 /// /// - Parameters: /// - type: 0所有列表,1自提列表,2快递 /// - city_id: 城市id /// - completion: 回调 func userSelfAndExpressAddressListApi(type:Int,completion: @escaping successCallBack) { var parameters = Dictionary() let loacationModel = LocationModel.shared().object() let baiduToCityModel = BaiduToCityFactory.shared.query(bjcityId: loacationModel!.cityCode) parameters.updateValue(baiduToCityModel.areaCode, forKey: "city_id") parameters.updateValue(type, forKey: "type") SwiftMoyaNetWorkManager.shared.requestObject(AddressManagerListModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userSelfAddressList(parameters: parameters))) {(addressManagerListModel) in completion(addressManagerListModel) } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - (新增、编辑)快递地址 /// 新增、编辑)快递地址 /// /// - Parameters: /// - id: 表id 修改适合传 /// - contactName: 收货人 /// - contactMobile: 联系电话 /// - provinceId: 省id /// - provinceName: 省份名称 /// - cityId: 城市id /// - cityName: 城市名称 /// - areaId: 区id /// - areaName: 区名称 /// - address: 详细地址 /// - zipcode: 邮政编码 710110 /// - completion: 回调 func userAddExpressAddressApi(expressAddresModel:ExpressAddresModel, completion: @escaping successCallBack) { if isMobileVerification(mobile: expressAddresModel.contactMobile ?? "") { var parameters = Dictionary() parameters.updateValue(expressAddresModel.id ?? "", forKey: "id") parameters.updateValue(expressAddresModel.contactName ?? "", forKey: "contact_name") parameters.updateValue(expressAddresModel.contactMobile ?? "", forKey: "contact_mobile") parameters.updateValue(expressAddresModel.provinceId ?? "", forKey: "province_id") parameters.updateValue(expressAddresModel.provinceName ?? "", forKey: "province_name") parameters.updateValue(expressAddresModel.cityId ?? "", forKey: "city_id") parameters.updateValue(expressAddresModel.cityName ?? "", forKey: "city_name") parameters.updateValue(expressAddresModel.areaId ?? "", forKey: "area_id") parameters.updateValue(expressAddresModel.areaName ?? "", forKey: "area_name") parameters.updateValue(expressAddresModel.address ?? "", forKey: "address") SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userAddExpressAddress(parameters: parameters))) {(rootModel) in SwiftProgressHUD.shared().showText(rootModel.msg!) if rootModel.code == 0 { completion("") } } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } } // MARK: - 设置(自提/快递)默认地址 /// 设置(自提/快递)默认地址 /// /// - Parameters: /// - id: 表id 修改适合传 func userAddressIsDefaultApi(id:Int = 0,completion: @escaping successCallBack) { var parameters = Dictionary() parameters.updateValue(id, forKey: "id") SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userAddressIsDefault(parameters: parameters))) { (rootModel) in SwiftProgressHUD.shared().showText(rootModel.msg!) if rootModel.code == 0 { completion("") } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } } // MARK: - 删除(自提/快递)地址 /// 删除(自提/快递)地址 /// /// - Parameters: /// - id: 地址Id func userAddressDeleteApi(id:Int = 0,completion: @escaping successCallBack) { var parameters = Dictionary() parameters.updateValue(id, forKey: "id") SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userAddressDelete(parameters: parameters))) { (rootModel) in SwiftProgressHUD.shared().showText(rootModel.msg!) if rootModel.code == 0 { completion("") } } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 自提点收货人列表 /// 自提点收货人列表 /// /// - Parameter completion: 成功回调 func userExpreesContactsListApi(completion: @escaping successCallBack) { let parameters = Dictionary() SwiftMoyaNetWorkManager.shared.requestObject(ContactListModel.self, target: MultiTarget(SwiftMoyaServiceUserApi.userExpreesContactsList(parameters: parameters))) { (contactListModel) in completion(contactListModel) } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 获取默认快递信息 /// 获取默认快递信息 /// /// - Parameter completion: 成功回调 func userDefaultExpressApi(completion: @escaping successCallBack) { let parameters = Dictionary() SwiftMoyaNetWorkManager.shared.requestObject(ExpressAddresModel.self, target: MultiTarget(SwiftMoyaServiceUserApi.userDefaultExpress(parameters: parameters))) { (expressAddrModel) in completion(expressAddrModel as Any) } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 获取默认快递信息 /// 获取默认快递信息 /// /// - Parameter completion: 成功回调 func userDefaultContactApi(completion: @escaping successCallBack) { let parameters = Dictionary() SwiftMoyaNetWorkManager.shared.requestObject(SelfMentionContactsModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userDefaultContact(parameters: parameters))) {(contactMdl) in completion(contactMdl as Any) } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 新增、编辑 自提地址收货人信息 /// 新增、编辑 自提地址收货人信息 /// /// - Parameters: /// - id: 收货人id /// - mobile: 手机号码 /// - name: 用户名 /// - completion: 完成 func userSaveExpreesContactsApi(id:Int = 0,mobile:String = "",name:String = "",completion: @escaping successCallBack) { if isMobileVerification(mobile: mobile) { if name.count <= 0 { SwiftProgressHUD.shared().showText("收货人信息不能为空") }else { var parameters = Dictionary() if id != 0 { parameters.updateValue(id, forKey: "id") } parameters.updateValue(mobile, forKey: "mobile") parameters.updateValue(name, forKey: "name") SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userSaveExpreesContacts(parameters: parameters))) { (rootModel) in SwiftProgressHUD.shared().showText(rootModel.msg!) if rootModel.code == 0 { completion("") } } } } } // MARK: - 删除自提点收货人信息 /// 删除自提点收货人信息 /// /// - Parameters: /// - id: 收货人id /// - completion: 完成 func userDelExpreesContactsApi(id:Int = 0,completion: @escaping successCallBack) { var parameters = Dictionary() parameters.updateValue(id, forKey: "id") SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userDelExpreesContacts(parameters: parameters))) { (rootModel) in SwiftProgressHUD.shared().showText(rootModel.msg!) if rootModel.code == 0 { completion("") } } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 自提点收货人信息,设置默认 /// 自提点收货人信息,设置默认 /// /// - Parameters: /// - id: 收货人id /// - completion: 完成 func userSetExpreesContactsDefaultApi(id:Int = 0,completion: @escaping successCallBack) { var parameters = Dictionary() parameters.updateValue(id, forKey: "id") SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userSetExpreesContactsDefault(parameters: parameters))) { (rootModel) in SwiftProgressHUD.shared().showText(rootModel.msg!) if rootModel.code == 0 { completion("") } } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 新增自提地址 /// 新增自提地址 /// /// - Parameters: /// - pickupNodeId: 自提点id /// - address: 详细地址 /// - completion: 完成 func userAddSelfAddressApi(cityId:Int = 0,cityName:String = "",pickupNodeId:Int = 0,address:String,completion: @escaping successCallBack) { var parameters = Dictionary() parameters.updateValue(cityId, forKey: "city_id") parameters.updateValue(cityName, forKey: "city_name") parameters.updateValue(pickupNodeId, forKey: "pickup_node_id") parameters.updateValue(address, forKey: "address") SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userAddSelfAddress(parameters: parameters))) { (rootModel) in SwiftProgressHUD.shared().showText(rootModel.msg!) if rootModel.code == 0 { completion("") } } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 设置用户配送方式 /// 设置用户配送方式 /// /// - Parameters: /// - deliveryMethodType: 0所有列表,1自提列表,2快递 /// - completion: 返回 func userSetDeliverTypeApi(deliveryMethodType:String = "2",completion: @escaping successCallBack) { var parameters = Dictionary() parameters.updateValue(deliveryMethodType, forKey: "deliver_type") SwiftMoyaNetWorkManager.shared.requestRootModel(target: MultiTarget(SwiftMoyaServiceUserApi.userSetDeliverType(parameters: parameters))) { (rootModel) in SwiftProgressHUD.shared().showText(rootModel.msg!) if rootModel.code == 0 { // 设置成功更新本地存储数据 let model = DeliveryMethodTypeModel.shared().getModel() model?.deliveryMethodType = deliveryMethodType DeliveryMethodTypeModel.shared().setModel(model: model!) completion("") } } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 修改用户性别 /// 修改用户性别 /// /// - Parameters: /// - gender: 0位置 1男 2女 /// - completion: 回调 func userGenderApi(gender:Int = 0,completion: @escaping successCallBack) { var parameters = Dictionary() parameters.updateValue(gender, forKey: "gender") SwiftMoyaNetWorkManager.shared.requestAny(target: MultiTarget(SwiftMoyaServiceUserApi.userMemberUpdateGender(parameters: parameters))) { (data) in // 设置成功更新本地存储数据 let model = UserModel.shared().getModel() model?.gender = gender UserModel.shared().setModel(model: model!) completion("") } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 用户信息详情 /// 用户信息详情 /// /// - Parameter completion: 回调UserDetailModel func userMemberDetailApi(uid:Int,completion: @escaping successCallBack) { var parameters = Dictionary() parameters.updateValue(uid, forKey: "uid") SwiftMoyaNetWorkManager.shared.requestObject(UserDetailModel.self, target: MultiTarget(SwiftMoyaServiceUserApi.userMemberDetail(parameters: parameters))) { (userDetailModel) in completion(userDetailModel) } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 更新用户信息详情 /// 更新用户信息详情 /// /// - Parameter completion: 回调UserDetailModel func userMemberDetailUpDateApi(avatar:String,userName:String,signature:String,completion: @escaping successCallBack) { if avatar == "" { SwiftProgressHUD.shared().showText("头像不能为空") return }else if userName == "" { SwiftProgressHUD.shared().showText("昵称不能为空") return } var parameters = Dictionary() parameters.updateValue(avatar, forKey: "avatar") parameters.updateValue(userName, forKey: "username") parameters.updateValue(signature, forKey: "signature") SwiftMoyaNetWorkManager.shared.requestAny(target: MultiTarget(SwiftMoyaServiceUserApi.userMemberDetailUpDate(parameters: parameters))) { (data) in let userModel = UserModel.shared().getModel() userModel?.avatarurl = avatar userModel?.username = userName UserModel.shared().setModel(model: userModel!) completion("") } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 用户关注列表 /// 用户关注列表 /// /// - Parameter completion: 回调UserDetailModel func userFollowsApi(uid:Int,page:Int = 1,completion: @escaping successCallBack,fail:@escaping failCallback) { var parameters = Dictionary() parameters.updateValue(uid, forKey: "uid") parameters.updateValue(page, forKey: "page") SwiftMoyaNetWorkManager.shared.requestObject(UserFollowsModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userFollows(parameters: parameters))) { (userFollowsModel) in completion(userFollowsModel) } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in fail(loadingStatus) } } // MARK: - 粉丝列表 /// 粉丝列表 /// /// - Parameter completion: 回调UserDetailModel func userFansApi(uid:Int,page:Int = 1,completion: @escaping successCallBack,fail:@escaping failCallback) { var parameters = Dictionary() parameters.updateValue(page, forKey: "page") parameters.updateValue(uid, forKey: "uid") SwiftMoyaNetWorkManager.shared.requestObject(UserFansModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userFans(parameters: parameters))) { (userFansModel) in completion(userFansModel) } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 关注 /// 关注 /// /// - Parameters: /// - followUid: 被关注人id /// - completion: 回调 func userFollowApi(followUid:Int,completion: @escaping successCallBack) { if UserModel.isTokenNil() { kAppDelegate.setLogin() }else { var parameters = Dictionary() parameters.updateValue(followUid, forKey: "follow_uid") SwiftMoyaNetWorkManager.shared.requestObject(FollowStatusModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userFollow(parameters: parameters))) { (followStatusModel) in let followStatusModel = followStatusModel as? FollowStatusModel followStatusModel?.uid = followUid NotificationCenter.default.post(name: NSNotification.Name(rawValue: "followApi"), object: followStatusModel) SwiftProgressHUD.shared().showText("已关注") completion(followStatusModel as Any) } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } } // MARK: - 取消关注 /// 取消关注 /// /// - Parameters: /// - followUid: 被取消关注人id /// - completion: 回调 func userCancelFollowApi(followUid:Int,completion: @escaping successCallBack) { if UserModel.isTokenNil() { kAppDelegate.setLogin() }else { var parameters = Dictionary() parameters.updateValue(followUid, forKey: "follow_uid") SwiftMoyaNetWorkManager.shared.requestObject(FollowStatusModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userCancelFollow(parameters: parameters))) { (followStatusModel) in let followStatusModel = followStatusModel as? FollowStatusModel followStatusModel?.uid = followUid NotificationCenter.default.post(name: NSNotification.Name(rawValue: "followApi"), object: followStatusModel) SwiftProgressHUD.shared().showText("已取消关注") completion(followStatusModel as Any) } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } } // MARK: - 用户消息消息首页 /// 用户消息消息首页 /// /// - Parameter completion: 回调 func userMemberMessageIndexApi(completion: @escaping successCallBack,fail:@escaping failCallback) { let parameters = Dictionary() SwiftMoyaNetWorkManager.shared.requestObject(MessageIndexModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMemberMessageIndex(parameters: parameters))) { (messageIndexModel) in MessageIndexModel.shared.saveObject(model: messageIndexModel as! MessageIndexModel) completion(messageIndexModel) } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in fail(loadingStatus) } } // MARK: - 用户消息列表 /// 用户消息列表 /// /// - Parameters: /// - messageShowTypes: 活动展示类型 0纯展示;1系统通知消息;2内容消息; 3活动消息; 4话题消息 ;5后台系统消息; 6评论消息; 7回复消息 ;8回复@ 消息;9攒内容消息 ;10收藏内容消息; 11分享内容消息 ;12关注消息 /// - page: 分页 /// - completion: 回调 func userMemberMessageListApi(messageShowTypes:String,page:Int,completion: @escaping successCallBack) { var parameters = Dictionary() parameters.updateValue(messageShowTypes, forKey: "message_show_types") parameters.updateValue(page, forKey: "page") SwiftMoyaNetWorkManager.shared.requestObject(MessageListModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMemberMessageList(parameters: parameters))) { (messageListModel) in completion(messageListModel) } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 用户消息阅读 /// 用户消息阅读 /// /// - Parameters: /// - messageShowTypes: 活动展示类型 0纯展示;1系统通知消息;2内容消息; 3活动消息; 4话题消息 ;5后台系统消息; 6评论消息; 7回复消息 ;8回复@ 消息;9攒内容消息 ;10收藏内容消息; 11分享内容消息 ;12关注消息 /// - completion: 回调 func userMemberReadMessageApi(messageShowTypes:String,completion: @escaping successCallBack) { var parameters = Dictionary() parameters.updateValue(messageShowTypes, forKey: "message_show_types") SwiftMoyaNetWorkManager.shared.requestAny(target: MultiTarget(SwiftMoyaServiceUserApi.userMemberReadMessage(parameters: parameters))) { (data) in completion("") } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 粉丝列表 /// 粉丝列表 /// /// - Parameter completion: 回调UserDetailModel func userMemberSearchMemberApi(userName:String,page:Int = 1,completion: @escaping successCallBack,fail: @escaping failCallback) { var parameters = Dictionary() parameters.updateValue(page, forKey: "page") parameters.updateValue(userName, forKey: "username") SwiftMoyaNetWorkManager.shared.requestObject(SearchMemberListModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMemberSearchMember(parameters: parameters))) { (searchMemberListModel) in completion(searchMemberListModel) } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in fail(loadingStatus) } } // MARK: - 获取U米 /// 获取U米 /// /// - Parameter completion: 回调 func userMemberGetTotalBeanApi(completion: @escaping successCallBack) { let parameters = Dictionary() SwiftMoyaNetWorkManager.shared.requestObject(TotalBeanModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMemberGetTotalBean(parameters: parameters))) { (totalBeanModel) in completion(totalBeanModel) } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } // MARK: - 手机号码一键登录 /// 手机号码一键登录 /// /// - Parameter completion: 回调 func userMobileAuthorizationLoginApi(token:String,completion: @escaping successCallBack) { var parameters = Dictionary() parameters.updateValue(token, forKey: "AccessToken") SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMobileAuthorizationLogin(parameters: parameters))) { (userModel) in UserModel.shared().setModel(model: userModel as! UserModel) completion(userModel) } SwiftMoyaNetWorkManager.shared.failCallback = { (loadingStatus) in } } }